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

import enum
import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
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(_winrt.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[_winrt.Int16]]
    @staticmethod
    def _from(obj: _winrt.Object) -> BluetoothLEAdvertisementPublisherTriggerDetails: ...

class BluetoothLEAdvertisementWatcherTriggerDetails(_winrt.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: _winrt.Object) -> BluetoothLEAdvertisementWatcherTriggerDetails: ...

class GattCharacteristicNotificationTriggerDetails(_winrt.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: _winrt.Object) -> GattCharacteristicNotificationTriggerDetails: ...

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

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

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

class RfcommInboundConnectionInformation(_winrt.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: _winrt.Object) -> RfcommInboundConnectionInformation: ...

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

