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

from winrt.windows.devices.bluetooth.advertisement import BluetoothLEAdvertisementFlags, BluetoothLEAdvertisementPhyType, BluetoothLEAdvertisementPublisherStatus, BluetoothLEAdvertisementType, BluetoothLEAdvertisementWatcherStatus, BluetoothLEScanningMode

Self = typing.TypeVar('Self')

@typing.final
class BluetoothLEAdvertisement(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData> Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement::GetManufacturerDataByCompanyId(System.UInt16)
    def get_manufacturer_data_by_company_id(self, company_id: winrt.system.UInt16, /) -> typing.Sequence[BluetoothLEManufacturerData]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection> Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement::GetSectionsByType(System.Byte)
    def get_sections_by_type(self, type: winrt.system.UInt8, /) -> typing.Sequence[BluetoothLEAdvertisementDataSection]: ...
    # System.String Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement::get_LocalName()
    @_property
    def local_name(self) -> str: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement::put_LocalName(System.String)
    @local_name.setter
    def local_name(self, value: str) -> None: ...
    # Windows.Foundation.IReference`1<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFlags> Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement::get_Flags()
    @_property
    def flags(self) -> typing.Optional[BluetoothLEAdvertisementFlags]: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement::put_Flags(Windows.Foundation.IReference`1<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFlags>)
    @flags.setter
    def flags(self, value: typing.Optional[BluetoothLEAdvertisementFlags]) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection> Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement::get_DataSections()
    @_property
    def data_sections(self) -> typing.MutableSequence[BluetoothLEAdvertisementDataSection]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData> Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement::get_ManufacturerData()
    @_property
    def manufacturer_data(self) -> typing.MutableSequence[BluetoothLEManufacturerData]: ...
    # Windows.Foundation.Collections.IVector`1<System.Guid> Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement::get_ServiceUuids()
    @_property
    def service_uuids(self) -> typing.MutableSequence[_uuid.UUID]: ...

@typing.final
class BluetoothLEAdvertisementBytePattern(winrt.system.Object):
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], data_type: winrt.system.UInt8, offset: winrt.system.Int16, data: winrt.system.Buffer) -> Self: ...
    # System.Int16 Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern::get_Offset()
    @_property
    def offset(self) -> winrt.system.Int16: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern::put_Offset(System.Int16)
    @offset.setter
    def offset(self, value: winrt.system.Int16) -> None: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern::get_DataType()
    @_property
    def data_type(self) -> winrt.system.UInt8: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern::put_DataType(System.Byte)
    @data_type.setter
    def data_type(self, value: winrt.system.UInt8) -> None: ...
    # Windows.Storage.Streams.IBuffer Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern::get_Data()
    @_property
    def data(self) -> winrt.system.Buffer: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern::put_Data(Windows.Storage.Streams.IBuffer)
    @data.setter
    def data(self, value: winrt.system.Buffer) -> None: ...

@typing.final
class BluetoothLEAdvertisementDataSection(winrt.system.Object):
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], data_type: winrt.system.UInt8, data: winrt.system.Buffer) -> Self: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection::get_DataType()
    @_property
    def data_type(self) -> winrt.system.UInt8: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection::put_DataType(System.Byte)
    @data_type.setter
    def data_type(self, value: winrt.system.UInt8) -> None: ...
    # Windows.Storage.Streams.IBuffer Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection::get_Data()
    @_property
    def data(self) -> winrt.system.Buffer: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection::put_Data(Windows.Storage.Streams.IBuffer)
    @data.setter
    def data(self, value: winrt.system.Buffer) -> None: ...

@typing.final
class BluetoothLEAdvertisementDataTypes_Static(winrt._winrt.IInspectable_Static):
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_AdvertisingInterval()
    @_property
    def advertising_interval(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_Appearance()
    @_property
    def appearance(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_CompleteLocalName()
    @_property
    def complete_local_name(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_CompleteService128BitUuids()
    @_property
    def complete_service128_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_CompleteService16BitUuids()
    @_property
    def complete_service16_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_CompleteService32BitUuids()
    @_property
    def complete_service32_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_Flags()
    @_property
    def flags(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_IncompleteService128BitUuids()
    @_property
    def incomplete_service128_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_IncompleteService16BitUuids()
    @_property
    def incomplete_service16_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_IncompleteService32BitUuids()
    @_property
    def incomplete_service32_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_ManufacturerSpecificData()
    @_property
    def manufacturer_specific_data(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_PeripheralConnectionIntervalRange()
    @_property
    def peripheral_connection_interval_range(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_PublicTargetAddress()
    @_property
    def public_target_address(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_RandomTargetAddress()
    @_property
    def random_target_address(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_ServiceData128BitUuids()
    @_property
    def service_data128_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_ServiceData16BitUuids()
    @_property
    def service_data16_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_ServiceData32BitUuids()
    @_property
    def service_data32_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_ServiceSolicitation128BitUuids()
    @_property
    def service_solicitation128_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_ServiceSolicitation16BitUuids()
    @_property
    def service_solicitation16_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_ServiceSolicitation32BitUuids()
    @_property
    def service_solicitation32_bit_uuids(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_ShortenedLocalName()
    @_property
    def shortened_local_name(cls) -> winrt.system.UInt8: ...
    # System.Byte Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes::get_TxPowerLevel()
    @_property
    def tx_power_level(cls) -> winrt.system.UInt8: ...

@typing.final
class BluetoothLEAdvertisementDataTypes(winrt.system.Object, metaclass=BluetoothLEAdvertisementDataTypes_Static):
    pass

@typing.final
class BluetoothLEAdvertisementFilter(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter::get_Advertisement()
    @_property
    def advertisement(self) -> BluetoothLEAdvertisement: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter::put_Advertisement(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement)
    @advertisement.setter
    def advertisement(self, value: BluetoothLEAdvertisement) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern> Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter::get_BytePatterns()
    @_property
    def byte_patterns(self) -> typing.MutableSequence[BluetoothLEAdvertisementBytePattern]: ...

@typing.final
class BluetoothLEAdvertisementPublisher(winrt.system.Object):
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], advertisement: BluetoothLEAdvertisement) -> Self: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::Start()
    def start(self) -> None: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::Stop()
    def stop(self) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::add_StatusChanged(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher,Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatusChangedEventArgs>)
    def add_status_changed(self, handler: windows_foundation.TypedEventHandler[BluetoothLEAdvertisementPublisher, BluetoothLEAdvertisementPublisherStatusChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::remove_StatusChanged(Windows.Foundation.EventRegistrationToken)
    def remove_status_changed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::get_Advertisement()
    @_property
    def advertisement(self) -> BluetoothLEAdvertisement: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatus Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::get_Status()
    @_property
    def status(self) -> BluetoothLEAdvertisementPublisherStatus: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::get_UseExtendedAdvertisement()
    @_property
    def use_extended_advertisement(self) -> bool: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::put_UseExtendedAdvertisement(System.Boolean)
    @use_extended_advertisement.setter
    def use_extended_advertisement(self, value: bool) -> None: ...
    # Windows.Foundation.IReference`1<System.Int16> Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::get_PreferredTransmitPowerLevelInDBm()
    @_property
    def preferred_transmit_power_level_in_dbm(self) -> typing.Optional[winrt.system.Int16]: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::put_PreferredTransmitPowerLevelInDBm(Windows.Foundation.IReference`1<System.Int16>)
    @preferred_transmit_power_level_in_dbm.setter
    def preferred_transmit_power_level_in_dbm(self, value: typing.Optional[winrt.system.Int16]) -> None: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::get_IsAnonymous()
    @_property
    def is_anonymous(self) -> bool: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::put_IsAnonymous(System.Boolean)
    @is_anonymous.setter
    def is_anonymous(self, value: bool) -> None: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::get_IncludeTransmitPowerLevel()
    @_property
    def include_transmit_power_level(self) -> bool: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::put_IncludeTransmitPowerLevel(System.Boolean)
    @include_transmit_power_level.setter
    def include_transmit_power_level(self, value: bool) -> None: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::get_SecondaryPhy()
    @_property
    def secondary_phy(self) -> BluetoothLEAdvertisementPhyType: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::put_SecondaryPhy(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType)
    @secondary_phy.setter
    def secondary_phy(self, value: BluetoothLEAdvertisementPhyType) -> None: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::get_PrimaryPhy()
    @_property
    def primary_phy(self) -> BluetoothLEAdvertisementPhyType: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher::put_PrimaryPhy(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType)
    @primary_phy.setter
    def primary_phy(self, value: BluetoothLEAdvertisementPhyType) -> None: ...

@typing.final
class BluetoothLEAdvertisementPublisherStatusChangedEventArgs(winrt.system.Object):
    # Windows.Devices.Bluetooth.BluetoothError Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatusChangedEventArgs::get_Error()
    @_property
    def error(self) -> windows_devices_bluetooth.BluetoothError: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatus Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatusChangedEventArgs::get_Status()
    @_property
    def status(self) -> BluetoothLEAdvertisementPublisherStatus: ...
    # Windows.Foundation.IReference`1<System.Int16> Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatusChangedEventArgs::get_SelectedTransmitPowerLevelInDBm()
    @_property
    def selected_transmit_power_level_in_dbm(self) -> typing.Optional[winrt.system.Int16]: ...

@typing.final
class BluetoothLEAdvertisementReceivedEventArgs(winrt.system.Object):
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_Advertisement()
    @_property
    def advertisement(self) -> BluetoothLEAdvertisement: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementType Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_AdvertisementType()
    @_property
    def advertisement_type(self) -> BluetoothLEAdvertisementType: ...
    # System.UInt64 Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_BluetoothAddress()
    @_property
    def bluetooth_address(self) -> winrt.system.UInt64: ...
    # System.Int16 Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_RawSignalStrengthInDBm()
    @_property
    def raw_signal_strength_in_dbm(self) -> winrt.system.Int16: ...
    # Windows.Foundation.DateTime Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_Timestamp()
    @_property
    def timestamp(self) -> datetime.datetime: ...
    # Windows.Devices.Bluetooth.BluetoothAddressType Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_BluetoothAddressType()
    @_property
    def bluetooth_address_type(self) -> windows_devices_bluetooth.BluetoothAddressType: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_IsAnonymous()
    @_property
    def is_anonymous(self) -> bool: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_IsConnectable()
    @_property
    def is_connectable(self) -> bool: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_IsDirected()
    @_property
    def is_directed(self) -> bool: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_IsScanResponse()
    @_property
    def is_scan_response(self) -> bool: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_IsScannable()
    @_property
    def is_scannable(self) -> bool: ...
    # Windows.Foundation.IReference`1<System.Int16> Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_TransmitPowerLevelInDBm()
    @_property
    def transmit_power_level_in_dbm(self) -> typing.Optional[winrt.system.Int16]: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_PrimaryPhy()
    @_property
    def primary_phy(self) -> BluetoothLEAdvertisementPhyType: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs::get_SecondaryPhy()
    @_property
    def secondary_phy(self) -> BluetoothLEAdvertisementPhyType: ...

@typing.final
class BluetoothLEAdvertisementScanParameters_Static(winrt._winrt.IInspectable_Static):
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters::CoexistenceOptimized()
    def coexistence_optimized(cls) -> BluetoothLEAdvertisementScanParameters: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters::LowLatency()
    def low_latency(cls) -> BluetoothLEAdvertisementScanParameters: ...

@typing.final
class BluetoothLEAdvertisementScanParameters(winrt.system.Object, metaclass=BluetoothLEAdvertisementScanParameters_Static):
    # System.UInt16 Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters::get_ScanInterval()
    @_property
    def scan_interval(self) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters::get_ScanWindow()
    @_property
    def scan_window(self) -> winrt.system.UInt16: ...

@typing.final
class BluetoothLEAdvertisementWatcher(winrt.system.Object):
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], advertisement_filter: BluetoothLEAdvertisementFilter) -> Self: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::Start()
    def start(self) -> None: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::Stop()
    def stop(self) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::add_Received(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher,Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs>)
    def add_received(self, handler: windows_foundation.TypedEventHandler[BluetoothLEAdvertisementWatcher, BluetoothLEAdvertisementReceivedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::remove_Received(Windows.Foundation.EventRegistrationToken)
    def remove_received(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::add_Stopped(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher,Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStoppedEventArgs>)
    def add_stopped(self, handler: windows_foundation.TypedEventHandler[BluetoothLEAdvertisementWatcher, BluetoothLEAdvertisementWatcherStoppedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::remove_Stopped(Windows.Foundation.EventRegistrationToken)
    def remove_stopped(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Devices.Bluetooth.BluetoothSignalStrengthFilter Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_SignalStrengthFilter()
    @_property
    def signal_strength_filter(self) -> windows_devices_bluetooth.BluetoothSignalStrengthFilter: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::put_SignalStrengthFilter(Windows.Devices.Bluetooth.BluetoothSignalStrengthFilter)
    @signal_strength_filter.setter
    def signal_strength_filter(self, value: windows_devices_bluetooth.BluetoothSignalStrengthFilter) -> None: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEScanningMode Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_ScanningMode()
    @_property
    def scanning_mode(self) -> BluetoothLEScanningMode: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::put_ScanningMode(Windows.Devices.Bluetooth.Advertisement.BluetoothLEScanningMode)
    @scanning_mode.setter
    def scanning_mode(self, value: BluetoothLEScanningMode) -> None: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_AdvertisementFilter()
    @_property
    def advertisement_filter(self) -> BluetoothLEAdvertisementFilter: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::put_AdvertisementFilter(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter)
    @advertisement_filter.setter
    def advertisement_filter(self, value: BluetoothLEAdvertisementFilter) -> None: ...
    # Windows.Foundation.TimeSpan Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_MaxOutOfRangeTimeout()
    @_property
    def max_out_of_range_timeout(self) -> datetime.timedelta: ...
    # Windows.Foundation.TimeSpan Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_MaxSamplingInterval()
    @_property
    def max_sampling_interval(self) -> datetime.timedelta: ...
    # Windows.Foundation.TimeSpan Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_MinOutOfRangeTimeout()
    @_property
    def min_out_of_range_timeout(self) -> datetime.timedelta: ...
    # Windows.Foundation.TimeSpan Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_MinSamplingInterval()
    @_property
    def min_sampling_interval(self) -> datetime.timedelta: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStatus Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_Status()
    @_property
    def status(self) -> BluetoothLEAdvertisementWatcherStatus: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_AllowExtendedAdvertisements()
    @_property
    def allow_extended_advertisements(self) -> bool: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::put_AllowExtendedAdvertisements(System.Boolean)
    @allow_extended_advertisements.setter
    def allow_extended_advertisements(self, value: bool) -> None: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_UseUncoded1MPhy()
    @_property
    def use_uncoded1_m_phy(self) -> bool: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::put_UseUncoded1MPhy(System.Boolean)
    @use_uncoded1_m_phy.setter
    def use_uncoded1_m_phy(self, value: bool) -> None: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_UseHardwareFilter()
    @_property
    def use_hardware_filter(self) -> bool: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::put_UseHardwareFilter(System.Boolean)
    @use_hardware_filter.setter
    def use_hardware_filter(self, value: bool) -> None: ...
    # System.Boolean Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_UseCodedPhy()
    @_property
    def use_coded_phy(self) -> bool: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::put_UseCodedPhy(System.Boolean)
    @use_coded_phy.setter
    def use_coded_phy(self, value: bool) -> None: ...
    # Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::get_ScanParameters()
    @_property
    def scan_parameters(self) -> BluetoothLEAdvertisementScanParameters: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher::put_ScanParameters(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters)
    @scan_parameters.setter
    def scan_parameters(self, value: BluetoothLEAdvertisementScanParameters) -> None: ...

@typing.final
class BluetoothLEAdvertisementWatcherStoppedEventArgs(winrt.system.Object):
    # Windows.Devices.Bluetooth.BluetoothError Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStoppedEventArgs::get_Error()
    @_property
    def error(self) -> windows_devices_bluetooth.BluetoothError: ...

@typing.final
class BluetoothLEManufacturerData(winrt.system.Object):
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], company_id: winrt.system.UInt16, data: winrt.system.Buffer) -> Self: ...
    # Windows.Storage.Streams.IBuffer Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData::get_Data()
    @_property
    def data(self) -> winrt.system.Buffer: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData::put_Data(Windows.Storage.Streams.IBuffer)
    @data.setter
    def data(self, value: winrt.system.Buffer) -> None: ...
    # System.UInt16 Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData::get_CompanyId()
    @_property
    def company_id(self) -> winrt.system.UInt16: ...
    # System.Void Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData::put_CompanyId(System.UInt16)
    @company_id.setter
    def company_id(self, value: winrt.system.UInt16) -> None: ...

