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

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

import winrt._winrt
import winrt.system
import winrt.windows.applicationmodel.background as windows_applicationmodel_background
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.security.credentials as windows_security_credentials
import winrt.windows.storage.streams as windows_storage_streams
import winrt.windows.ui as windows_ui
import winrt.windows.ui.popups as windows_ui_popups

from winrt.windows.devices.enumeration import DeviceAccessStatus, DeviceClass, DeviceInformationKind, DevicePairingAddPairingSetMemberStatus, DevicePairingKinds, DevicePairingProtectionLevel, DevicePairingResultStatus, DevicePickerDisplayStatusOptions, DeviceUnpairingResultStatus, DeviceWatcherEventKind, DeviceWatcherStatus, Panel

Self = typing.TypeVar('Self')

@typing.final
class DeviceAccessChangedEventArgs(winrt.system.Object):
    # Windows.Devices.Enumeration.DeviceAccessStatus Windows.Devices.Enumeration.DeviceAccessChangedEventArgs::get_Status()
    @_property
    def status(self) -> DeviceAccessStatus: ...
    # System.String Windows.Devices.Enumeration.DeviceAccessChangedEventArgs::get_Id()
    @_property
    def id(self) -> str: ...
    # System.Boolean Windows.Devices.Enumeration.DeviceAccessChangedEventArgs::get_UserPromptRequired()
    @_property
    def user_prompt_required(self) -> bool: ...

@typing.final
class DeviceAccessInformation_Static(winrt._winrt.IInspectable_Static):
    # Windows.Devices.Enumeration.DeviceAccessInformation Windows.Devices.Enumeration.DeviceAccessInformation::CreateFromDeviceClass(Windows.Devices.Enumeration.DeviceClass)
    def create_from_device_class(cls, device_class: DeviceClass, /) -> DeviceAccessInformation: ...
    # Windows.Devices.Enumeration.DeviceAccessInformation Windows.Devices.Enumeration.DeviceAccessInformation::CreateFromDeviceClassId(System.Guid)
    def create_from_device_class_id(cls, device_class_id: _uuid.UUID, /) -> DeviceAccessInformation: ...
    # Windows.Devices.Enumeration.DeviceAccessInformation Windows.Devices.Enumeration.DeviceAccessInformation::CreateFromId(System.String)
    def create_from_id(cls, device_id: str, /) -> DeviceAccessInformation: ...

@typing.final
class DeviceAccessInformation(winrt.system.Object, metaclass=DeviceAccessInformation_Static):
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DeviceAccessInformation::add_AccessChanged(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DeviceAccessInformation,Windows.Devices.Enumeration.DeviceAccessChangedEventArgs>)
    def add_access_changed(self, handler: windows_foundation.TypedEventHandler[DeviceAccessInformation, DeviceAccessChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DeviceAccessInformation::remove_AccessChanged(Windows.Foundation.EventRegistrationToken)
    def remove_access_changed(self, cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Devices.Enumeration.DeviceAccessStatus Windows.Devices.Enumeration.DeviceAccessInformation::get_CurrentStatus()
    @_property
    def current_status(self) -> DeviceAccessStatus: ...
    # System.Boolean Windows.Devices.Enumeration.DeviceAccessInformation::get_UserPromptRequired()
    @_property
    def user_prompt_required(self) -> bool: ...

@typing.final
class DeviceConnectionChangeTriggerDetails(winrt.system.Object):
    # System.String Windows.Devices.Enumeration.DeviceConnectionChangeTriggerDetails::get_DeviceId()
    @_property
    def device_id(self) -> str: ...

@typing.final
class DeviceDisconnectButtonClickedEventArgs(winrt.system.Object):
    # Windows.Devices.Enumeration.DeviceInformation Windows.Devices.Enumeration.DeviceDisconnectButtonClickedEventArgs::get_Device()
    @_property
    def device(self) -> DeviceInformation: ...

@typing.final
class DeviceInformation_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformation> Windows.Devices.Enumeration.DeviceInformation::CreateFromIdAsync(System.String)
    def create_from_id_async(cls, device_id: str, /) -> windows_foundation.IAsyncOperation[DeviceInformation]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformation> Windows.Devices.Enumeration.DeviceInformation::CreateFromIdAsync(System.String,Windows.Foundation.Collections.IIterable`1<System.String>)
    def create_from_id_async_additional_properties(cls, device_id: str, additional_properties: typing.Iterable[str], /) -> windows_foundation.IAsyncOperation[DeviceInformation]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformation> Windows.Devices.Enumeration.DeviceInformation::CreateFromIdAsync(System.String,Windows.Foundation.Collections.IIterable`1<System.String>,Windows.Devices.Enumeration.DeviceInformationKind,Windows.Devices.Enumeration.IDeviceEnumerationSettings)
    def create_from_id_async_with_additional_properties_kind_and_settings(cls, device_id: str, additional_properties: typing.Iterable[str], kind: DeviceInformationKind, settings: IDeviceEnumerationSettings, /) -> windows_foundation.IAsyncOperation[DeviceInformation]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformation> Windows.Devices.Enumeration.DeviceInformation::CreateFromIdAsync(System.String,Windows.Foundation.Collections.IIterable`1<System.String>,Windows.Devices.Enumeration.DeviceInformationKind)
    def create_from_id_async_with_kind_and_additional_properties(cls, device_id: str, additional_properties: typing.Iterable[str], kind: DeviceInformationKind, /) -> windows_foundation.IAsyncOperation[DeviceInformation]: ...
    # Windows.Devices.Enumeration.DeviceWatcher Windows.Devices.Enumeration.DeviceInformation::CreateWatcher()
    def create_watcher(cls) -> DeviceWatcher: ...
    # Windows.Devices.Enumeration.DeviceWatcher Windows.Devices.Enumeration.DeviceInformation::CreateWatcher(System.String)
    def create_watcher_aqs_filter(cls, aqs_filter: str, /) -> DeviceWatcher: ...
    # Windows.Devices.Enumeration.DeviceWatcher Windows.Devices.Enumeration.DeviceInformation::CreateWatcher(System.String,Windows.Foundation.Collections.IIterable`1<System.String>)
    def create_watcher_aqs_filter_and_additional_properties(cls, aqs_filter: str, additional_properties: typing.Iterable[str], /) -> DeviceWatcher: ...
    # Windows.Devices.Enumeration.DeviceWatcher Windows.Devices.Enumeration.DeviceInformation::CreateWatcher(Windows.Devices.Enumeration.DeviceClass)
    def create_watcher_device_class(cls, device_class: DeviceClass, /) -> DeviceWatcher: ...
    # Windows.Devices.Enumeration.DeviceWatcher Windows.Devices.Enumeration.DeviceInformation::CreateWatcher(System.String,Windows.Foundation.Collections.IIterable`1<System.String>,Windows.Devices.Enumeration.DeviceInformationKind,Windows.Devices.Enumeration.IDeviceEnumerationSettings)
    def create_watcher_with_aqs_filter_additional_properties_kind_and_settings(cls, aqs_filter: str, additional_properties: typing.Iterable[str], kind: DeviceInformationKind, settings: IDeviceEnumerationSettings, /) -> DeviceWatcher: ...
    # Windows.Devices.Enumeration.DeviceWatcher Windows.Devices.Enumeration.DeviceInformation::CreateWatcher(System.String,Windows.Foundation.Collections.IIterable`1<System.String>,Windows.Devices.Enumeration.DeviceInformationKind)
    def create_watcher_with_kind_aqs_filter_and_additional_properties(cls, aqs_filter: str, additional_properties: typing.Iterable[str], kind: DeviceInformationKind, /) -> DeviceWatcher: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformationCollection> Windows.Devices.Enumeration.DeviceInformation::FindAllAsync()
    def find_all_async(cls) -> windows_foundation.IAsyncOperation[DeviceInformationCollection]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformationCollection> Windows.Devices.Enumeration.DeviceInformation::FindAllAsync(System.String)
    def find_all_async_aqs_filter(cls, aqs_filter: str, /) -> windows_foundation.IAsyncOperation[DeviceInformationCollection]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformationCollection> Windows.Devices.Enumeration.DeviceInformation::FindAllAsync(System.String,Windows.Foundation.Collections.IIterable`1<System.String>)
    def find_all_async_aqs_filter_and_additional_properties(cls, aqs_filter: str, additional_properties: typing.Iterable[str], /) -> windows_foundation.IAsyncOperation[DeviceInformationCollection]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformationCollection> Windows.Devices.Enumeration.DeviceInformation::FindAllAsync(Windows.Devices.Enumeration.DeviceClass)
    def find_all_async_device_class(cls, device_class: DeviceClass, /) -> windows_foundation.IAsyncOperation[DeviceInformationCollection]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformationCollection> Windows.Devices.Enumeration.DeviceInformation::FindAllAsync(System.String,Windows.Foundation.Collections.IIterable`1<System.String>,Windows.Devices.Enumeration.DeviceInformationKind,Windows.Devices.Enumeration.IDeviceEnumerationSettings)
    def find_all_async_with_aqs_filter_additional_properties_kind_and_settings(cls, aqs_filter: str, additional_properties: typing.Iterable[str], kind: DeviceInformationKind, settings: IDeviceEnumerationSettings, /) -> windows_foundation.IAsyncOperation[DeviceInformationCollection]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformationCollection> Windows.Devices.Enumeration.DeviceInformation::FindAllAsync(System.String,Windows.Foundation.Collections.IIterable`1<System.String>,Windows.Devices.Enumeration.DeviceInformationKind)
    def find_all_async_with_kind_aqs_filter_and_additional_properties(cls, aqs_filter: str, additional_properties: typing.Iterable[str], kind: DeviceInformationKind, /) -> windows_foundation.IAsyncOperation[DeviceInformationCollection]: ...
    # System.String Windows.Devices.Enumeration.DeviceInformation::GetAqsFilterFromDeviceClass(Windows.Devices.Enumeration.DeviceClass)
    def get_aqs_filter_from_device_class(cls, device_class: DeviceClass, /) -> str: ...

@typing.final
class DeviceInformation(winrt.system.Object, metaclass=DeviceInformation_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceThumbnail> Windows.Devices.Enumeration.DeviceInformation::GetGlyphThumbnailAsync()
    def get_glyph_thumbnail_async(self) -> windows_foundation.IAsyncOperation[DeviceThumbnail]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceThumbnail> Windows.Devices.Enumeration.DeviceInformation::GetThumbnailAsync()
    def get_thumbnail_async(self) -> windows_foundation.IAsyncOperation[DeviceThumbnail]: ...
    # System.Void Windows.Devices.Enumeration.DeviceInformation::Update(Windows.Devices.Enumeration.DeviceInformationUpdate)
    def update(self, update_info: DeviceInformationUpdate, /) -> None: ...
    # Windows.Devices.Enumeration.EnclosureLocation Windows.Devices.Enumeration.DeviceInformation::get_EnclosureLocation()
    @_property
    def enclosure_location(self) -> EnclosureLocation: ...
    # System.String Windows.Devices.Enumeration.DeviceInformation::get_Id()
    @_property
    def id(self) -> str: ...
    # System.Boolean Windows.Devices.Enumeration.DeviceInformation::get_IsDefault()
    @_property
    def is_default(self) -> bool: ...
    # System.Boolean Windows.Devices.Enumeration.DeviceInformation::get_IsEnabled()
    @_property
    def is_enabled(self) -> bool: ...
    # System.String Windows.Devices.Enumeration.DeviceInformation::get_Name()
    @_property
    def name(self) -> str: ...
    # Windows.Foundation.Collections.IMapView`2<System.String,System.Object> Windows.Devices.Enumeration.DeviceInformation::get_Properties()
    @_property
    def properties(self) -> typing.Mapping[str, winrt.system.Object]: ...
    # Windows.Devices.Enumeration.DeviceInformationKind Windows.Devices.Enumeration.DeviceInformation::get_Kind()
    @_property
    def kind(self) -> DeviceInformationKind: ...
    # Windows.Devices.Enumeration.DeviceInformationPairing Windows.Devices.Enumeration.DeviceInformation::get_Pairing()
    @_property
    def pairing(self) -> DeviceInformationPairing: ...

@typing.final
class DeviceInformationCollection(winrt.system.Object, winrt._winrt.Sequence[DeviceInformation]):
    def __len__(self) -> int: ...
    def __iter__(self) -> typing.Iterator[DeviceInformation]: ...
    @typing.overload
    def __getitem__(self, index: typing.SupportsIndex) -> DeviceInformation: ...
    @typing.overload
    def __getitem__(self, index: slice) -> winrt.system.Array[DeviceInformation]: ...
    # Windows.Foundation.Collections.IIterator`1<Windows.Devices.Enumeration.DeviceInformation> Windows.Devices.Enumeration.DeviceInformationCollection::First()
    def first(self) -> windows_foundation_collections.IIterator[DeviceInformation]: ...
    # Windows.Devices.Enumeration.DeviceInformation Windows.Devices.Enumeration.DeviceInformationCollection::GetAt(System.UInt32)
    def get_at(self, index: winrt.system.UInt32, /) -> DeviceInformation: ...
    # System.UInt32 Windows.Devices.Enumeration.DeviceInformationCollection::GetMany(System.UInt32,Windows.Devices.Enumeration.DeviceInformation[])
    def get_many(self, start_index: winrt.system.UInt32, items: typing.Union[winrt.system.Array[DeviceInformation], winrt.system.WriteableBuffer], /) -> winrt.system.UInt32: ...
    # System.Boolean Windows.Devices.Enumeration.DeviceInformationCollection::IndexOf(Windows.Devices.Enumeration.DeviceInformation,System.UInt32&)
    def index_of(self, value: DeviceInformation, /) -> typing.Tuple[bool, winrt.system.UInt32]: ...
    # System.UInt32 Windows.Devices.Enumeration.DeviceInformationCollection::get_Size()
    @_property
    def size(self) -> winrt.system.UInt32: ...

@typing.final
class DeviceInformationCustomPairing(winrt.system.Object):
    # System.Void Windows.Devices.Enumeration.DeviceInformationCustomPairing::AddPairingSetMember(Windows.Devices.Enumeration.DeviceInformation)
    def add_pairing_set_member(self, device: DeviceInformation, /) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DevicePairingResult> Windows.Devices.Enumeration.DeviceInformationCustomPairing::PairAsync(Windows.Devices.Enumeration.DevicePairingKinds)
    def pair_async(self, pairing_kinds_supported: DevicePairingKinds, /) -> windows_foundation.IAsyncOperation[DevicePairingResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DevicePairingResult> Windows.Devices.Enumeration.DeviceInformationCustomPairing::PairAsync(Windows.Devices.Enumeration.DevicePairingKinds,Windows.Devices.Enumeration.DevicePairingProtectionLevel,Windows.Devices.Enumeration.IDevicePairingSettings)
    def pair_with_protection_level_and_settings_async(self, pairing_kinds_supported: DevicePairingKinds, min_protection_level: DevicePairingProtectionLevel, device_pairing_settings: IDevicePairingSettings, /) -> windows_foundation.IAsyncOperation[DevicePairingResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DevicePairingResult> Windows.Devices.Enumeration.DeviceInformationCustomPairing::PairAsync(Windows.Devices.Enumeration.DevicePairingKinds,Windows.Devices.Enumeration.DevicePairingProtectionLevel)
    def pair_with_protection_level_async(self, pairing_kinds_supported: DevicePairingKinds, min_protection_level: DevicePairingProtectionLevel, /) -> windows_foundation.IAsyncOperation[DevicePairingResult]: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DeviceInformationCustomPairing::add_PairingRequested(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DeviceInformationCustomPairing,Windows.Devices.Enumeration.DevicePairingRequestedEventArgs>)
    def add_pairing_requested(self, handler: windows_foundation.TypedEventHandler[DeviceInformationCustomPairing, DevicePairingRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DeviceInformationCustomPairing::remove_PairingRequested(Windows.Foundation.EventRegistrationToken)
    def remove_pairing_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DeviceInformationCustomPairing::add_PairingSetMembersRequested(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DeviceInformationCustomPairing,Windows.Devices.Enumeration.DevicePairingSetMembersRequestedEventArgs>)
    def add_pairing_set_members_requested(self, handler: windows_foundation.TypedEventHandler[DeviceInformationCustomPairing, DevicePairingSetMembersRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DeviceInformationCustomPairing::remove_PairingSetMembersRequested(Windows.Foundation.EventRegistrationToken)
    def remove_pairing_set_members_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class DeviceInformationPairing_Static(winrt._winrt.IInspectable_Static):
    # System.Boolean Windows.Devices.Enumeration.DeviceInformationPairing::TryRegisterForAllInboundPairingRequests(Windows.Devices.Enumeration.DevicePairingKinds)
    def try_register_for_all_inbound_pairing_requests(cls, pairing_kinds_supported: DevicePairingKinds, /) -> bool: ...
    # System.Boolean Windows.Devices.Enumeration.DeviceInformationPairing::TryRegisterForAllInboundPairingRequestsWithProtectionLevel(Windows.Devices.Enumeration.DevicePairingKinds,Windows.Devices.Enumeration.DevicePairingProtectionLevel)
    def try_register_for_all_inbound_pairing_requests_with_protection_level(cls, pairing_kinds_supported: DevicePairingKinds, min_protection_level: DevicePairingProtectionLevel, /) -> bool: ...

@typing.final
class DeviceInformationPairing(winrt.system.Object, metaclass=DeviceInformationPairing_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DevicePairingResult> Windows.Devices.Enumeration.DeviceInformationPairing::PairAsync()
    def pair_async(self) -> windows_foundation.IAsyncOperation[DevicePairingResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DevicePairingResult> Windows.Devices.Enumeration.DeviceInformationPairing::PairAsync(Windows.Devices.Enumeration.DevicePairingProtectionLevel,Windows.Devices.Enumeration.IDevicePairingSettings)
    def pair_with_protection_level_and_settings_async(self, min_protection_level: DevicePairingProtectionLevel, device_pairing_settings: IDevicePairingSettings, /) -> windows_foundation.IAsyncOperation[DevicePairingResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DevicePairingResult> Windows.Devices.Enumeration.DeviceInformationPairing::PairAsync(Windows.Devices.Enumeration.DevicePairingProtectionLevel)
    def pair_with_protection_level_async(self, min_protection_level: DevicePairingProtectionLevel, /) -> windows_foundation.IAsyncOperation[DevicePairingResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceUnpairingResult> Windows.Devices.Enumeration.DeviceInformationPairing::UnpairAsync()
    def unpair_async(self) -> windows_foundation.IAsyncOperation[DeviceUnpairingResult]: ...
    # System.Boolean Windows.Devices.Enumeration.DeviceInformationPairing::get_CanPair()
    @_property
    def can_pair(self) -> bool: ...
    # System.Boolean Windows.Devices.Enumeration.DeviceInformationPairing::get_IsPaired()
    @_property
    def is_paired(self) -> bool: ...
    # Windows.Devices.Enumeration.DeviceInformationCustomPairing Windows.Devices.Enumeration.DeviceInformationPairing::get_Custom()
    @_property
    def custom(self) -> DeviceInformationCustomPairing: ...
    # Windows.Devices.Enumeration.DevicePairingProtectionLevel Windows.Devices.Enumeration.DeviceInformationPairing::get_ProtectionLevel()
    @_property
    def protection_level(self) -> DevicePairingProtectionLevel: ...

@typing.final
class DeviceInformationUpdate(winrt.system.Object):
    # System.String Windows.Devices.Enumeration.DeviceInformationUpdate::get_Id()
    @_property
    def id(self) -> str: ...
    # Windows.Foundation.Collections.IMapView`2<System.String,System.Object> Windows.Devices.Enumeration.DeviceInformationUpdate::get_Properties()
    @_property
    def properties(self) -> typing.Mapping[str, winrt.system.Object]: ...
    # Windows.Devices.Enumeration.DeviceInformationKind Windows.Devices.Enumeration.DeviceInformationUpdate::get_Kind()
    @_property
    def kind(self) -> DeviceInformationKind: ...

@typing.final
class DevicePairingRequestedEventArgs(winrt.system.Object):
    # System.Void Windows.Devices.Enumeration.DevicePairingRequestedEventArgs::Accept()
    def accept(self) -> None: ...
    # System.Void Windows.Devices.Enumeration.DevicePairingRequestedEventArgs::AcceptWithAddress(System.String)
    def accept_with_address(self, address: str, /) -> None: ...
    # System.Void Windows.Devices.Enumeration.DevicePairingRequestedEventArgs::AcceptWithPasswordCredential(Windows.Security.Credentials.PasswordCredential)
    def accept_with_password_credential(self, password_credential: windows_security_credentials.PasswordCredential, /) -> None: ...
    # System.Void Windows.Devices.Enumeration.DevicePairingRequestedEventArgs::Accept(System.String)
    def accept_with_pin(self, pin: str, /) -> None: ...
    # Windows.Foundation.Deferral Windows.Devices.Enumeration.DevicePairingRequestedEventArgs::GetDeferral()
    def get_deferral(self) -> windows_foundation.Deferral: ...
    # Windows.Devices.Enumeration.DeviceInformation Windows.Devices.Enumeration.DevicePairingRequestedEventArgs::get_DeviceInformation()
    @_property
    def device_information(self) -> DeviceInformation: ...
    # Windows.Devices.Enumeration.DevicePairingKinds Windows.Devices.Enumeration.DevicePairingRequestedEventArgs::get_PairingKind()
    @_property
    def pairing_kind(self) -> DevicePairingKinds: ...
    # System.String Windows.Devices.Enumeration.DevicePairingRequestedEventArgs::get_Pin()
    @_property
    def pin(self) -> str: ...

@typing.final
class DevicePairingResult(winrt.system.Object):
    # Windows.Devices.Enumeration.DevicePairingProtectionLevel Windows.Devices.Enumeration.DevicePairingResult::get_ProtectionLevelUsed()
    @_property
    def protection_level_used(self) -> DevicePairingProtectionLevel: ...
    # Windows.Devices.Enumeration.DevicePairingResultStatus Windows.Devices.Enumeration.DevicePairingResult::get_Status()
    @_property
    def status(self) -> DevicePairingResultStatus: ...

@typing.final
class DevicePairingSetMembersRequestedEventArgs(winrt.system.Object):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Enumeration.DeviceInformation> Windows.Devices.Enumeration.DevicePairingSetMembersRequestedEventArgs::get_PairingSetMembers()
    @_property
    def pairing_set_members(self) -> typing.Sequence[DeviceInformation]: ...
    # Windows.Devices.Enumeration.DeviceInformation Windows.Devices.Enumeration.DevicePairingSetMembersRequestedEventArgs::get_ParentDeviceInformation()
    @_property
    def parent_device_information(self) -> DeviceInformation: ...
    # Windows.Devices.Enumeration.DevicePairingAddPairingSetMemberStatus Windows.Devices.Enumeration.DevicePairingSetMembersRequestedEventArgs::get_Status()
    @_property
    def status(self) -> DevicePairingAddPairingSetMemberStatus: ...

@typing.final
class DevicePicker(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Void Windows.Devices.Enumeration.DevicePicker::Hide()
    def hide(self) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformation> Windows.Devices.Enumeration.DevicePicker::PickSingleDeviceAsync(Windows.Foundation.Rect)
    def pick_single_device_async(self, selection: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]], /) -> windows_foundation.IAsyncOperation[DeviceInformation]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Enumeration.DeviceInformation> Windows.Devices.Enumeration.DevicePicker::PickSingleDeviceAsync(Windows.Foundation.Rect,Windows.UI.Popups.Placement)
    def pick_single_device_async_with_placement(self, selection: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]], placement: windows_ui_popups.Placement, /) -> windows_foundation.IAsyncOperation[DeviceInformation]: ...
    # System.Void Windows.Devices.Enumeration.DevicePicker::SetDisplayStatus(Windows.Devices.Enumeration.DeviceInformation,System.String,Windows.Devices.Enumeration.DevicePickerDisplayStatusOptions)
    def set_display_status(self, device: DeviceInformation, status: str, options: DevicePickerDisplayStatusOptions, /) -> None: ...
    # System.Void Windows.Devices.Enumeration.DevicePicker::Show(Windows.Foundation.Rect)
    def show(self, selection: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]], /) -> None: ...
    # System.Void Windows.Devices.Enumeration.DevicePicker::Show(Windows.Foundation.Rect,Windows.UI.Popups.Placement)
    def show_with_placement(self, selection: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]], placement: windows_ui_popups.Placement, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DevicePicker::add_DevicePickerDismissed(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DevicePicker,System.Object>)
    def add_device_picker_dismissed(self, handler: windows_foundation.TypedEventHandler[DevicePicker, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DevicePicker::remove_DevicePickerDismissed(Windows.Foundation.EventRegistrationToken)
    def remove_device_picker_dismissed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DevicePicker::add_DeviceSelected(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DevicePicker,Windows.Devices.Enumeration.DeviceSelectedEventArgs>)
    def add_device_selected(self, handler: windows_foundation.TypedEventHandler[DevicePicker, DeviceSelectedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DevicePicker::remove_DeviceSelected(Windows.Foundation.EventRegistrationToken)
    def remove_device_selected(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DevicePicker::add_DisconnectButtonClicked(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DevicePicker,Windows.Devices.Enumeration.DeviceDisconnectButtonClickedEventArgs>)
    def add_disconnect_button_clicked(self, handler: windows_foundation.TypedEventHandler[DevicePicker, DeviceDisconnectButtonClickedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DevicePicker::remove_DisconnectButtonClicked(Windows.Foundation.EventRegistrationToken)
    def remove_disconnect_button_clicked(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Devices.Enumeration.DevicePickerAppearance Windows.Devices.Enumeration.DevicePicker::get_Appearance()
    @_property
    def appearance(self) -> DevicePickerAppearance: ...
    # Windows.Devices.Enumeration.DevicePickerFilter Windows.Devices.Enumeration.DevicePicker::get_Filter()
    @_property
    def filter(self) -> DevicePickerFilter: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Enumeration.DevicePicker::get_RequestedProperties()
    @_property
    def requested_properties(self) -> typing.MutableSequence[str]: ...

@typing.final
class DevicePickerAppearance(winrt.system.Object):
    # System.String Windows.Devices.Enumeration.DevicePickerAppearance::get_Title()
    @_property
    def title(self) -> str: ...
    # System.Void Windows.Devices.Enumeration.DevicePickerAppearance::put_Title(System.String)
    @title.setter
    def title(self, value: str) -> None: ...
    # Windows.UI.Color Windows.Devices.Enumeration.DevicePickerAppearance::get_SelectedForegroundColor()
    @_property
    def selected_foreground_color(self) -> windows_ui.Color: ...
    # System.Void Windows.Devices.Enumeration.DevicePickerAppearance::put_SelectedForegroundColor(Windows.UI.Color)
    @selected_foreground_color.setter
    def selected_foreground_color(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...
    # Windows.UI.Color Windows.Devices.Enumeration.DevicePickerAppearance::get_SelectedBackgroundColor()
    @_property
    def selected_background_color(self) -> windows_ui.Color: ...
    # System.Void Windows.Devices.Enumeration.DevicePickerAppearance::put_SelectedBackgroundColor(Windows.UI.Color)
    @selected_background_color.setter
    def selected_background_color(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...
    # Windows.UI.Color Windows.Devices.Enumeration.DevicePickerAppearance::get_SelectedAccentColor()
    @_property
    def selected_accent_color(self) -> windows_ui.Color: ...
    # System.Void Windows.Devices.Enumeration.DevicePickerAppearance::put_SelectedAccentColor(Windows.UI.Color)
    @selected_accent_color.setter
    def selected_accent_color(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...
    # Windows.UI.Color Windows.Devices.Enumeration.DevicePickerAppearance::get_ForegroundColor()
    @_property
    def foreground_color(self) -> windows_ui.Color: ...
    # System.Void Windows.Devices.Enumeration.DevicePickerAppearance::put_ForegroundColor(Windows.UI.Color)
    @foreground_color.setter
    def foreground_color(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...
    # Windows.UI.Color Windows.Devices.Enumeration.DevicePickerAppearance::get_BackgroundColor()
    @_property
    def background_color(self) -> windows_ui.Color: ...
    # System.Void Windows.Devices.Enumeration.DevicePickerAppearance::put_BackgroundColor(Windows.UI.Color)
    @background_color.setter
    def background_color(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...
    # Windows.UI.Color Windows.Devices.Enumeration.DevicePickerAppearance::get_AccentColor()
    @_property
    def accent_color(self) -> windows_ui.Color: ...
    # System.Void Windows.Devices.Enumeration.DevicePickerAppearance::put_AccentColor(Windows.UI.Color)
    @accent_color.setter
    def accent_color(self, value: typing.Union[windows_ui.Color, typing.Tuple[winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8, winrt.system.UInt8]]) -> None: ...

@typing.final
class DevicePickerFilter(winrt.system.Object):
    # Windows.Foundation.Collections.IVector`1<Windows.Devices.Enumeration.DeviceClass> Windows.Devices.Enumeration.DevicePickerFilter::get_SupportedDeviceClasses()
    @_property
    def supported_device_classes(self) -> typing.MutableSequence[DeviceClass]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Devices.Enumeration.DevicePickerFilter::get_SupportedDeviceSelectors()
    @_property
    def supported_device_selectors(self) -> typing.MutableSequence[str]: ...

@typing.final
class DeviceSelectedEventArgs(winrt.system.Object):
    # Windows.Devices.Enumeration.DeviceInformation Windows.Devices.Enumeration.DeviceSelectedEventArgs::get_SelectedDevice()
    @_property
    def selected_device(self) -> DeviceInformation: ...

@typing.final
class DeviceThumbnail(winrt.system.Object, windows_storage_streams.IRandomAccessStreamWithContentType, windows_storage_streams.IContentTypeProvider, windows_storage_streams.IRandomAccessStream, windows_storage_streams.IOutputStream, windows_storage_streams.IInputStream, windows_foundation.IClosable):
    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: ...
    # Windows.Storage.Streams.IRandomAccessStream Windows.Devices.Enumeration.DeviceThumbnail::CloneStream()
    def clone_stream(self) -> windows_storage_streams.IRandomAccessStream: ...
    # System.Void Windows.Devices.Enumeration.DeviceThumbnail::Close()
    def close(self) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Devices.Enumeration.DeviceThumbnail::FlushAsync()
    def flush_async(self) -> windows_foundation.IAsyncOperation[bool]: ...
    # Windows.Storage.Streams.IInputStream Windows.Devices.Enumeration.DeviceThumbnail::GetInputStreamAt(System.UInt64)
    def get_input_stream_at(self, position: winrt.system.UInt64, /) -> windows_storage_streams.IInputStream: ...
    # Windows.Storage.Streams.IOutputStream Windows.Devices.Enumeration.DeviceThumbnail::GetOutputStreamAt(System.UInt64)
    def get_output_stream_at(self, position: winrt.system.UInt64, /) -> windows_storage_streams.IOutputStream: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Storage.Streams.IBuffer,System.UInt32> Windows.Devices.Enumeration.DeviceThumbnail::ReadAsync(Windows.Storage.Streams.IBuffer,System.UInt32,Windows.Storage.Streams.InputStreamOptions)
    def read_async(self, buffer: windows_storage_streams.IBuffer, count: winrt.system.UInt32, options: windows_storage_streams.InputStreamOptions, /) -> windows_foundation.IAsyncOperationWithProgress[windows_storage_streams.IBuffer, winrt.system.UInt32]: ...
    # System.Void Windows.Devices.Enumeration.DeviceThumbnail::Seek(System.UInt64)
    def seek(self, position: winrt.system.UInt64, /) -> None: ...
    # Windows.Foundation.IAsyncOperationWithProgress`2<System.UInt32,System.UInt32> Windows.Devices.Enumeration.DeviceThumbnail::WriteAsync(Windows.Storage.Streams.IBuffer)
    def write_async(self, buffer: windows_storage_streams.IBuffer, /) -> windows_foundation.IAsyncOperationWithProgress[winrt.system.UInt32, winrt.system.UInt32]: ...
    # System.String Windows.Devices.Enumeration.DeviceThumbnail::get_ContentType()
    @_property
    def content_type(self) -> str: ...
    # System.UInt64 Windows.Devices.Enumeration.DeviceThumbnail::get_Size()
    @_property
    def size(self) -> winrt.system.UInt64: ...
    # System.Void Windows.Devices.Enumeration.DeviceThumbnail::put_Size(System.UInt64)
    @size.setter
    def size(self, value: winrt.system.UInt64) -> None: ...
    # System.Boolean Windows.Devices.Enumeration.DeviceThumbnail::get_CanRead()
    @_property
    def can_read(self) -> bool: ...
    # System.Boolean Windows.Devices.Enumeration.DeviceThumbnail::get_CanWrite()
    @_property
    def can_write(self) -> bool: ...
    # System.UInt64 Windows.Devices.Enumeration.DeviceThumbnail::get_Position()
    @_property
    def position(self) -> winrt.system.UInt64: ...

@typing.final
class DeviceUnpairingResult(winrt.system.Object):
    # Windows.Devices.Enumeration.DeviceUnpairingResultStatus Windows.Devices.Enumeration.DeviceUnpairingResult::get_Status()
    @_property
    def status(self) -> DeviceUnpairingResultStatus: ...

@typing.final
class DeviceWatcher(winrt.system.Object):
    # Windows.ApplicationModel.Background.DeviceWatcherTrigger Windows.Devices.Enumeration.DeviceWatcher::GetBackgroundTrigger(Windows.Foundation.Collections.IIterable`1<Windows.Devices.Enumeration.DeviceWatcherEventKind>)
    def get_background_trigger(self, requested_event_kinds: typing.Iterable[DeviceWatcherEventKind], /) -> windows_applicationmodel_background.DeviceWatcherTrigger: ...
    # System.Void Windows.Devices.Enumeration.DeviceWatcher::Start()
    def start(self) -> None: ...
    # System.Void Windows.Devices.Enumeration.DeviceWatcher::Stop()
    def stop(self) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DeviceWatcher::add_Added(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DeviceWatcher,Windows.Devices.Enumeration.DeviceInformation>)
    def add_added(self, handler: windows_foundation.TypedEventHandler[DeviceWatcher, DeviceInformation], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DeviceWatcher::remove_Added(Windows.Foundation.EventRegistrationToken)
    def remove_added(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DeviceWatcher::add_EnumerationCompleted(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DeviceWatcher,System.Object>)
    def add_enumeration_completed(self, handler: windows_foundation.TypedEventHandler[DeviceWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DeviceWatcher::remove_EnumerationCompleted(Windows.Foundation.EventRegistrationToken)
    def remove_enumeration_completed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DeviceWatcher::add_Removed(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DeviceWatcher,Windows.Devices.Enumeration.DeviceInformationUpdate>)
    def add_removed(self, handler: windows_foundation.TypedEventHandler[DeviceWatcher, DeviceInformationUpdate], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DeviceWatcher::remove_Removed(Windows.Foundation.EventRegistrationToken)
    def remove_removed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DeviceWatcher::add_Stopped(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DeviceWatcher,System.Object>)
    def add_stopped(self, handler: windows_foundation.TypedEventHandler[DeviceWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DeviceWatcher::remove_Stopped(Windows.Foundation.EventRegistrationToken)
    def remove_stopped(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.Enumeration.DeviceWatcher::add_Updated(Windows.Foundation.TypedEventHandler`2<Windows.Devices.Enumeration.DeviceWatcher,Windows.Devices.Enumeration.DeviceInformationUpdate>)
    def add_updated(self, handler: windows_foundation.TypedEventHandler[DeviceWatcher, DeviceInformationUpdate], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.Enumeration.DeviceWatcher::remove_Updated(Windows.Foundation.EventRegistrationToken)
    def remove_updated(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Devices.Enumeration.DeviceWatcherStatus Windows.Devices.Enumeration.DeviceWatcher::get_Status()
    @_property
    def status(self) -> DeviceWatcherStatus: ...

@typing.final
class DeviceWatcherEvent(winrt.system.Object):
    # Windows.Devices.Enumeration.DeviceInformation Windows.Devices.Enumeration.DeviceWatcherEvent::get_DeviceInformation()
    @_property
    def device_information(self) -> DeviceInformation: ...
    # Windows.Devices.Enumeration.DeviceInformationUpdate Windows.Devices.Enumeration.DeviceWatcherEvent::get_DeviceInformationUpdate()
    @_property
    def device_information_update(self) -> DeviceInformationUpdate: ...
    # Windows.Devices.Enumeration.DeviceWatcherEventKind Windows.Devices.Enumeration.DeviceWatcherEvent::get_Kind()
    @_property
    def kind(self) -> DeviceWatcherEventKind: ...

@typing.final
class DeviceWatcherTriggerDetails(winrt.system.Object):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Enumeration.DeviceWatcherEvent> Windows.Devices.Enumeration.DeviceWatcherTriggerDetails::get_DeviceWatcherEvents()
    @_property
    def device_watcher_events(self) -> typing.Sequence[DeviceWatcherEvent]: ...

@typing.final
class EnclosureLocation(winrt.system.Object):
    # System.Boolean Windows.Devices.Enumeration.EnclosureLocation::get_InDock()
    @_property
    def in_dock(self) -> bool: ...
    # System.Boolean Windows.Devices.Enumeration.EnclosureLocation::get_InLid()
    @_property
    def in_lid(self) -> bool: ...
    # Windows.Devices.Enumeration.Panel Windows.Devices.Enumeration.EnclosureLocation::get_Panel()
    @_property
    def panel(self) -> Panel: ...
    # System.UInt32 Windows.Devices.Enumeration.EnclosureLocation::get_RotationAngleInDegreesClockwise()
    @_property
    def rotation_angle_in_degrees_clockwise(self) -> winrt.system.UInt32: ...

@typing.final
class _IDeviceEnumerationSettings: ...

class IDeviceEnumerationSettings(winrt._winrt.IInspectable):  # type: ignore[misc]
    pass

@typing.final
class _IDevicePairingSettings: ...

class IDevicePairingSettings(winrt._winrt.IInspectable):  # type: ignore[misc]
    pass

