# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.1.0

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property

import winrt._winrt
import winrt.system
import winrt.windows.devices.bluetooth as windows_devices_bluetooth
import winrt.windows.devices.bluetooth.advertisement as windows_devices_bluetooth_advertisement
import winrt.windows.devices.bluetooth.genericattributeprofile as windows_devices_bluetooth_genericattributeprofile
import winrt.windows.devices.bluetooth.rfcomm as windows_devices_bluetooth_rfcomm
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.networking.sockets as windows_networking_sockets
import winrt.windows.storage.streams as windows_storage_streams

from winrt.windows.devices.bluetooth.background import BluetoothEventTriggeringMode

Self = typing.TypeVar('Self')

@typing.final
class BluetoothLEAdvertisementPublisherTriggerDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BluetoothLEAdvertisementPublisherTriggerDetails: ...
    @_property
    def error(self) -> windows_devices_bluetooth.BluetoothError: ...
    @_property
    def status(self) -> windows_devices_bluetooth_advertisement.BluetoothLEAdvertisementPublisherStatus: ...
    @_property
    def selected_transmit_power_level_in_d_bm(self) -> typing.Optional[typing.Optional[winrt.system.Int16]]: ...

@typing.final
class BluetoothLEAdvertisementWatcherTriggerDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> BluetoothLEAdvertisementWatcherTriggerDetails: ...
    @_property
    def advertisements(self) -> typing.Optional[windows_foundation_collections.IVectorView[windows_devices_bluetooth_advertisement.BluetoothLEAdvertisementReceivedEventArgs]]: ...
    @_property
    def error(self) -> windows_devices_bluetooth.BluetoothError: ...
    @_property
    def signal_strength_filter(self) -> typing.Optional[windows_devices_bluetooth.BluetoothSignalStrengthFilter]: ...

@typing.final
class GattCharacteristicNotificationTriggerDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> GattCharacteristicNotificationTriggerDetails: ...
    @_property
    def characteristic(self) -> typing.Optional[windows_devices_bluetooth_genericattributeprofile.GattCharacteristic]: ...
    @_property
    def value(self) -> typing.Optional[windows_storage_streams.IBuffer]: ...
    @_property
    def error(self) -> windows_devices_bluetooth.BluetoothError: ...
    @_property
    def event_triggering_mode(self) -> BluetoothEventTriggeringMode: ...
    @_property
    def value_changed_events(self) -> typing.Optional[windows_foundation_collections.IVectorView[windows_devices_bluetooth_genericattributeprofile.GattValueChangedEventArgs]]: ...

@typing.final
class GattServiceProviderConnection_Static(type):
    @_property
    def all_services(cls) -> typing.Optional[windows_foundation_collections.IMapView[str, GattServiceProviderConnection]]: ...

@typing.final
class GattServiceProviderConnection(winrt.system.Object, metaclass=GattServiceProviderConnection_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> GattServiceProviderConnection: ...
    def start(self) -> None: ...
    @_property
    def service(self) -> typing.Optional[windows_devices_bluetooth_genericattributeprofile.GattLocalService]: ...
    @_property
    def trigger_id(self) -> str: ...

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

@typing.final
class RfcommConnectionTriggerDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> RfcommConnectionTriggerDetails: ...
    @_property
    def incoming(self) -> bool: ...
    @_property
    def remote_device(self) -> typing.Optional[windows_devices_bluetooth.BluetoothDevice]: ...
    @_property
    def socket(self) -> typing.Optional[windows_networking_sockets.StreamSocket]: ...

@typing.final
class RfcommInboundConnectionInformation(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> RfcommInboundConnectionInformation: ...
    @_property
    def service_capabilities(self) -> windows_devices_bluetooth.BluetoothServiceCapabilities: ...
    @service_capabilities.setter
    def service_capabilities(self, value: windows_devices_bluetooth.BluetoothServiceCapabilities) -> None: ...
    @_property
    def sdp_record(self) -> typing.Optional[windows_storage_streams.IBuffer]: ...
    @sdp_record.setter
    def sdp_record(self, value: typing.Optional[windows_storage_streams.IBuffer]) -> None: ...
    @_property
    def local_service_id(self) -> typing.Optional[windows_devices_bluetooth_rfcomm.RfcommServiceId]: ...
    @local_service_id.setter
    def local_service_id(self, value: typing.Optional[windows_devices_bluetooth_rfcomm.RfcommServiceId]) -> None: ...

@typing.final
class RfcommOutboundConnectionInformation(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> RfcommOutboundConnectionInformation: ...
    @_property
    def remote_service_id(self) -> typing.Optional[windows_devices_bluetooth_rfcomm.RfcommServiceId]: ...
    @remote_service_id.setter
    def remote_service_id(self, value: typing.Optional[windows_devices_bluetooth_rfcomm.RfcommServiceId]) -> None: ...

