# 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.enumeration as windows_devices_enumeration
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
import winrt.windows.ui.popups as windows_ui_popups

from winrt.windows.media.dialprotocol import DialAppLaunchResult, DialAppState, DialAppStopResult, DialDeviceDisplayStatus

Self = typing.TypeVar('Self')

@typing.final
class DialApp(winrt.system.Object):
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.DialProtocol.DialAppStateDetails> Windows.Media.DialProtocol.DialApp::GetAppStateAsync()
    def get_app_state_async(self) -> windows_foundation.IAsyncOperation[DialAppStateDetails]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.DialProtocol.DialAppLaunchResult> Windows.Media.DialProtocol.DialApp::RequestLaunchAsync(System.String)
    def request_launch_async(self, app_argument: str, /) -> windows_foundation.IAsyncOperation[DialAppLaunchResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.DialProtocol.DialAppStopResult> Windows.Media.DialProtocol.DialApp::StopAsync()
    def stop_async(self) -> windows_foundation.IAsyncOperation[DialAppStopResult]: ...
    # System.String Windows.Media.DialProtocol.DialApp::get_AppName()
    @_property
    def app_name(self) -> str: ...

@typing.final
class DialAppStateDetails(winrt.system.Object):
    # System.String Windows.Media.DialProtocol.DialAppStateDetails::get_FullXml()
    @_property
    def full_xml(self) -> str: ...
    # Windows.Media.DialProtocol.DialAppState Windows.Media.DialProtocol.DialAppStateDetails::get_State()
    @_property
    def state(self) -> DialAppState: ...

@typing.final
class DialDevice_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Media.DialProtocol.DialDevice::DeviceInfoSupportsDialAsync(Windows.Devices.Enumeration.DeviceInformation)
    def device_info_supports_dial_async(cls, device: windows_devices_enumeration.DeviceInformation, /) -> windows_foundation.IAsyncOperation[bool]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.DialProtocol.DialDevice> Windows.Media.DialProtocol.DialDevice::FromIdAsync(System.String)
    def from_id_async(cls, value: str, /) -> windows_foundation.IAsyncOperation[DialDevice]: ...
    # System.String Windows.Media.DialProtocol.DialDevice::GetDeviceSelector(System.String)
    def get_device_selector(cls, app_name: str, /) -> str: ...

@typing.final
class DialDevice(winrt.system.Object, metaclass=DialDevice_Static):
    # Windows.Media.DialProtocol.DialApp Windows.Media.DialProtocol.DialDevice::GetDialApp(System.String)
    def get_dial_app(self, app_name: str, /) -> DialApp: ...
    # System.String Windows.Media.DialProtocol.DialDevice::get_Id()
    @_property
    def id(self) -> str: ...
    # System.String Windows.Media.DialProtocol.DialDevice::get_FriendlyName()
    @_property
    def friendly_name(self) -> str: ...
    # Windows.Storage.Streams.IRandomAccessStreamReference Windows.Media.DialProtocol.DialDevice::get_Thumbnail()
    @_property
    def thumbnail(self) -> windows_storage_streams.IRandomAccessStreamReference: ...

@typing.final
class DialDevicePicker(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Void Windows.Media.DialProtocol.DialDevicePicker::Hide()
    def hide(self) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.DialProtocol.DialDevice> Windows.Media.DialProtocol.DialDevicePicker::PickSingleDialDeviceAsync(Windows.Foundation.Rect)
    def pick_single_dial_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[DialDevice]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Media.DialProtocol.DialDevice> Windows.Media.DialProtocol.DialDevicePicker::PickSingleDialDeviceAsync(Windows.Foundation.Rect,Windows.UI.Popups.Placement)
    def pick_single_dial_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]], preferred_placement: windows_ui_popups.Placement, /) -> windows_foundation.IAsyncOperation[DialDevice]: ...
    # System.Void Windows.Media.DialProtocol.DialDevicePicker::SetDisplayStatus(Windows.Media.DialProtocol.DialDevice,Windows.Media.DialProtocol.DialDeviceDisplayStatus)
    def set_display_status(self, device: DialDevice, status: DialDeviceDisplayStatus, /) -> None: ...
    # System.Void Windows.Media.DialProtocol.DialDevicePicker::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.Media.DialProtocol.DialDevicePicker::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]], preferred_placement: windows_ui_popups.Placement, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.DialProtocol.DialDevicePicker::add_DialDevicePickerDismissed(Windows.Foundation.TypedEventHandler`2<Windows.Media.DialProtocol.DialDevicePicker,System.Object>)
    def add_dial_device_picker_dismissed(self, handler: windows_foundation.TypedEventHandler[DialDevicePicker, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.DialProtocol.DialDevicePicker::remove_DialDevicePickerDismissed(Windows.Foundation.EventRegistrationToken)
    def remove_dial_device_picker_dismissed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.DialProtocol.DialDevicePicker::add_DialDeviceSelected(Windows.Foundation.TypedEventHandler`2<Windows.Media.DialProtocol.DialDevicePicker,Windows.Media.DialProtocol.DialDeviceSelectedEventArgs>)
    def add_dial_device_selected(self, handler: windows_foundation.TypedEventHandler[DialDevicePicker, DialDeviceSelectedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.DialProtocol.DialDevicePicker::remove_DialDeviceSelected(Windows.Foundation.EventRegistrationToken)
    def remove_dial_device_selected(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Media.DialProtocol.DialDevicePicker::add_DisconnectButtonClicked(Windows.Foundation.TypedEventHandler`2<Windows.Media.DialProtocol.DialDevicePicker,Windows.Media.DialProtocol.DialDisconnectButtonClickedEventArgs>)
    def add_disconnect_button_clicked(self, handler: windows_foundation.TypedEventHandler[DialDevicePicker, DialDisconnectButtonClickedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Media.DialProtocol.DialDevicePicker::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.Media.DialProtocol.DialDevicePicker::get_Appearance()
    @_property
    def appearance(self) -> windows_devices_enumeration.DevicePickerAppearance: ...
    # Windows.Media.DialProtocol.DialDevicePickerFilter Windows.Media.DialProtocol.DialDevicePicker::get_Filter()
    @_property
    def filter(self) -> DialDevicePickerFilter: ...

@typing.final
class DialDevicePickerFilter(winrt.system.Object):
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Media.DialProtocol.DialDevicePickerFilter::get_SupportedAppNames()
    @_property
    def supported_app_names(self) -> typing.MutableSequence[str]: ...

@typing.final
class DialDeviceSelectedEventArgs(winrt.system.Object):
    # Windows.Media.DialProtocol.DialDevice Windows.Media.DialProtocol.DialDeviceSelectedEventArgs::get_SelectedDialDevice()
    @_property
    def selected_dial_device(self) -> DialDevice: ...

@typing.final
class DialDisconnectButtonClickedEventArgs(winrt.system.Object):
    # Windows.Media.DialProtocol.DialDevice Windows.Media.DialProtocol.DialDisconnectButtonClickedEventArgs::get_Device()
    @_property
    def device(self) -> DialDevice: ...

@typing.final
class DialReceiverApp_Static(winrt._winrt.IInspectable_Static):
    # Windows.Media.DialProtocol.DialReceiverApp Windows.Media.DialProtocol.DialReceiverApp::get_Current()
    @_property
    def current(cls) -> DialReceiverApp: ...

@typing.final
class DialReceiverApp(winrt.system.Object, metaclass=DialReceiverApp_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMap`2<System.String,System.String>> Windows.Media.DialProtocol.DialReceiverApp::GetAdditionalDataAsync()
    def get_additional_data_async(self) -> windows_foundation.IAsyncOperation[typing.MutableMapping[str, str]]: ...
    # Windows.Foundation.IAsyncOperation`1<System.String> Windows.Media.DialProtocol.DialReceiverApp::GetUniqueDeviceNameAsync()
    def get_unique_device_name_async(self) -> windows_foundation.IAsyncOperation[str]: ...
    # Windows.Foundation.IAsyncAction Windows.Media.DialProtocol.DialReceiverApp::SetAdditionalDataAsync(Windows.Foundation.Collections.IIterable`1<Windows.Foundation.Collections.IKeyValuePair`2<System.String,System.String>>)
    def set_additional_data_async(self, additional_data: typing.Iterable[windows_foundation_collections.IKeyValuePair[str, str]], /) -> windows_foundation.IAsyncAction: ...

