# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.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.enumeration as windows_devices_enumeration
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.networking as windows_networking
import winrt.windows.networking.sockets as windows_networking_sockets
import winrt.windows.storage.streams as windows_storage_streams

Self = typing.TypeVar('Self')

@typing.final
class RfcommDeviceService_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService> Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::FromIdAsync(System.String)
    def from_id_async(cls, device_id: str, /) -> windows_foundation.IAsyncOperation[RfcommDeviceService]: ...
    # System.String Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::GetDeviceSelector(Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId)
    def get_device_selector(cls, service_id: RfcommServiceId, /) -> str: ...
    # System.String Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::GetDeviceSelectorForBluetoothDevice(Windows.Devices.Bluetooth.BluetoothDevice)
    def get_device_selector_for_bluetooth_device(cls, bluetooth_device: windows_devices_bluetooth.BluetoothDevice, /) -> str: ...
    # System.String Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::GetDeviceSelectorForBluetoothDeviceAndServiceId(Windows.Devices.Bluetooth.BluetoothDevice,Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId)
    def get_device_selector_for_bluetooth_device_and_service_id(cls, bluetooth_device: windows_devices_bluetooth.BluetoothDevice, service_id: RfcommServiceId, /) -> str: ...
    # System.String Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::GetDeviceSelectorForBluetoothDeviceAndServiceId(Windows.Devices.Bluetooth.BluetoothDevice,Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId,Windows.Devices.Bluetooth.BluetoothCacheMode)
    def get_device_selector_for_bluetooth_device_and_service_id_with_cache_mode(cls, bluetooth_device: windows_devices_bluetooth.BluetoothDevice, service_id: RfcommServiceId, cache_mode: windows_devices_bluetooth.BluetoothCacheMode, /) -> str: ...
    # System.String Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::GetDeviceSelectorForBluetoothDevice(Windows.Devices.Bluetooth.BluetoothDevice,Windows.Devices.Bluetooth.BluetoothCacheMode)
    def get_device_selector_for_bluetooth_device_with_cache_mode(cls, bluetooth_device: windows_devices_bluetooth.BluetoothDevice, cache_mode: windows_devices_bluetooth.BluetoothCacheMode, /) -> str: ...

@typing.final
class RfcommDeviceService(winrt.system.Object, windows_foundation.IClosable, metaclass=RfcommDeviceService_Static):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::Close()
    def close(self) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMapView`2<System.UInt32,Windows.Storage.Streams.IBuffer>> Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::GetSdpRawAttributesAsync()
    def get_sdp_raw_attributes_async(self) -> windows_foundation.IAsyncOperation[typing.Mapping[winrt.system.UInt32, windows_storage_streams.IBuffer]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMapView`2<System.UInt32,Windows.Storage.Streams.IBuffer>> Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::GetSdpRawAttributesAsync(Windows.Devices.Bluetooth.BluetoothCacheMode)
    def get_sdp_raw_attributes_with_cache_mode_async(self, cache_mode: windows_devices_bluetooth.BluetoothCacheMode, /) -> windows_foundation.IAsyncOperation[typing.Mapping[winrt.system.UInt32, windows_storage_streams.IBuffer]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceAccessStatus> Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::RequestAccessAsync()
    def request_access_async(self) -> windows_foundation.IAsyncOperation[windows_devices_enumeration.DeviceAccessStatus]: ...
    # Windows.Networking.HostName Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::get_ConnectionHostName()
    @_property
    def connection_host_name(self) -> windows_networking.HostName: ...
    # System.String Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::get_ConnectionServiceName()
    @_property
    def connection_service_name(self) -> str: ...
    # Windows.Networking.Sockets.SocketProtectionLevel Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::get_MaxProtectionLevel()
    @_property
    def max_protection_level(self) -> windows_networking_sockets.SocketProtectionLevel: ...
    # Windows.Networking.Sockets.SocketProtectionLevel Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::get_ProtectionLevel()
    @_property
    def protection_level(self) -> windows_networking_sockets.SocketProtectionLevel: ...
    # Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::get_ServiceId()
    @_property
    def service_id(self) -> RfcommServiceId: ...
    # Windows.Devices.Bluetooth.BluetoothDevice Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::get_Device()
    @_property
    def device(self) -> windows_devices_bluetooth.BluetoothDevice: ...
    # Windows.Devices.Enumeration.DeviceAccessInformation Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService::get_DeviceAccessInformation()
    @_property
    def device_access_information(self) -> windows_devices_enumeration.DeviceAccessInformation: ...

@typing.final
class RfcommDeviceServicesResult(winrt.system.Object):
    # Windows.Devices.Bluetooth.BluetoothError Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceServicesResult::get_Error()
    @_property
    def error(self) -> windows_devices_bluetooth.BluetoothError: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService> Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceServicesResult::get_Services()
    @_property
    def services(self) -> typing.Sequence[RfcommDeviceService]: ...

@typing.final
class RfcommServiceId_Static(winrt._winrt.IInspectable_Static):
    # Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::FromShortId(System.UInt32)
    def from_short_id(cls, short_id: winrt.system.UInt32, /) -> RfcommServiceId: ...
    # Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::FromUuid(System.Guid)
    def from_uuid(cls, uuid: _uuid.UUID, /) -> RfcommServiceId: ...
    # Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::get_GenericFileTransfer()
    @_property
    def generic_file_transfer(cls) -> RfcommServiceId: ...
    # Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::get_ObexFileTransfer()
    @_property
    def obex_file_transfer(cls) -> RfcommServiceId: ...
    # Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::get_ObexObjectPush()
    @_property
    def obex_object_push(cls) -> RfcommServiceId: ...
    # Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::get_PhoneBookAccessPce()
    @_property
    def phone_book_access_pce(cls) -> RfcommServiceId: ...
    # Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::get_PhoneBookAccessPse()
    @_property
    def phone_book_access_pse(cls) -> RfcommServiceId: ...
    # Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::get_SerialPort()
    @_property
    def serial_port(cls) -> RfcommServiceId: ...

@typing.final
class RfcommServiceId(winrt.system.Object, metaclass=RfcommServiceId_Static):
    # System.UInt32 Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::AsShortId()
    def as_short_id(self) -> winrt.system.UInt32: ...
    # System.String Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::AsString()
    def as_string(self) -> str: ...
    # System.Guid Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId::get_Uuid()
    @_property
    def uuid(self) -> _uuid.UUID: ...

@typing.final
class RfcommServiceProvider_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Bluetooth.Rfcomm.RfcommServiceProvider> Windows.Devices.Bluetooth.Rfcomm.RfcommServiceProvider::CreateAsync(Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId)
    def create_async(cls, service_id: RfcommServiceId, /) -> windows_foundation.IAsyncOperation[RfcommServiceProvider]: ...

@typing.final
class RfcommServiceProvider(winrt.system.Object, metaclass=RfcommServiceProvider_Static):
    # System.Void Windows.Devices.Bluetooth.Rfcomm.RfcommServiceProvider::StartAdvertising(Windows.Networking.Sockets.StreamSocketListener)
    def start_advertising(self, listener: windows_networking_sockets.StreamSocketListener, /) -> None: ...
    # System.Void Windows.Devices.Bluetooth.Rfcomm.RfcommServiceProvider::StartAdvertising(Windows.Networking.Sockets.StreamSocketListener,System.Boolean)
    def start_advertising_with_radio_discoverability(self, listener: windows_networking_sockets.StreamSocketListener, radio_discoverable: bool, /) -> None: ...
    # System.Void Windows.Devices.Bluetooth.Rfcomm.RfcommServiceProvider::StopAdvertising()
    def stop_advertising(self) -> None: ...
    # Windows.Foundation.Collections.IMap`2<System.UInt32,Windows.Storage.Streams.IBuffer> Windows.Devices.Bluetooth.Rfcomm.RfcommServiceProvider::get_SdpRawAttributes()
    @_property
    def sdp_raw_attributes(self) -> typing.MutableMapping[winrt.system.UInt32, windows_storage_streams.IBuffer]: ...
    # Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId Windows.Devices.Bluetooth.Rfcomm.RfcommServiceProvider::get_ServiceId()
    @_property
    def service_id(self) -> RfcommServiceId: ...

