# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.10

import enum
import datetime
import sys
import types
import typing

import winsdk.system
import winsdk.windows.devices.bluetooth
import winsdk.windows.devices.bluetooth.advertisement
import winsdk.windows.devices.bluetooth.genericattributeprofile
import winsdk.windows.devices.bluetooth.rfcomm
import winsdk.windows.foundation
import winsdk.windows.foundation.collections
import winsdk.windows.networking.sockets
import winsdk.windows.storage.streams

class BluetoothEventTriggeringMode(enum.IntEnum):
    SERIAL = 0
    BATCH = 1
    KEEP_LATEST = 2

Self = typing.TypeVar('Self')

class BluetoothLEAdvertisementPublisherTriggerDetails(winsdk.system.Object):
    error: winsdk.windows.devices.bluetooth.BluetoothError
    status: winsdk.windows.devices.bluetooth.advertisement.BluetoothLEAdvertisementPublisherStatus
    selected_transmit_power_level_in_d_bm: typing.Optional[typing.Optional[winsdk.system.Int16]]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> BluetoothLEAdvertisementPublisherTriggerDetails: ...

class BluetoothLEAdvertisementWatcherTriggerDetails(winsdk.system.Object):
    advertisements: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.devices.bluetooth.advertisement.BluetoothLEAdvertisementReceivedEventArgs]]
    error: winsdk.windows.devices.bluetooth.BluetoothError
    signal_strength_filter: typing.Optional[winsdk.windows.devices.bluetooth.BluetoothSignalStrengthFilter]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> BluetoothLEAdvertisementWatcherTriggerDetails: ...

class GattCharacteristicNotificationTriggerDetails(winsdk.system.Object):
    characteristic: typing.Optional[winsdk.windows.devices.bluetooth.genericattributeprofile.GattCharacteristic]
    value: typing.Optional[winsdk.windows.storage.streams.IBuffer]
    error: winsdk.windows.devices.bluetooth.BluetoothError
    event_triggering_mode: BluetoothEventTriggeringMode
    value_changed_events: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.devices.bluetooth.genericattributeprofile.GattValueChangedEventArgs]]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> GattCharacteristicNotificationTriggerDetails: ...

class GattServiceProviderConnection(winsdk.system.Object):
    service: typing.Optional[winsdk.windows.devices.bluetooth.genericattributeprofile.GattLocalService]
    trigger_id: str
    all_services: typing.ClassVar[typing.Optional[winsdk.windows.foundation.collections.IMapView[str, GattServiceProviderConnection]]]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> GattServiceProviderConnection: ...
    def start(self) -> None: ...

class GattServiceProviderTriggerDetails(winsdk.system.Object):
    connection: typing.Optional[GattServiceProviderConnection]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> GattServiceProviderTriggerDetails: ...

class RfcommConnectionTriggerDetails(winsdk.system.Object):
    incoming: winsdk.system.Boolean
    remote_device: typing.Optional[winsdk.windows.devices.bluetooth.BluetoothDevice]
    socket: typing.Optional[winsdk.windows.networking.sockets.StreamSocket]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> RfcommConnectionTriggerDetails: ...

class RfcommInboundConnectionInformation(winsdk.system.Object):
    service_capabilities: winsdk.windows.devices.bluetooth.BluetoothServiceCapabilities
    sdp_record: typing.Optional[winsdk.windows.storage.streams.IBuffer]
    local_service_id: typing.Optional[winsdk.windows.devices.bluetooth.rfcomm.RfcommServiceId]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> RfcommInboundConnectionInformation: ...

class RfcommOutboundConnectionInformation(winsdk.system.Object):
    remote_service_id: typing.Optional[winsdk.windows.devices.bluetooth.rfcomm.RfcommServiceId]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> RfcommOutboundConnectionInformation: ...

