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

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.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

from winrt.windows.networking.proximity import PeerDiscoveryTypes, PeerRole, PeerWatcherStatus, TriggeredConnectState
from winrt.windows.networking.proximity import DeviceArrivedEventHandler, DeviceDepartedEventHandler, MessageReceivedHandler, MessageTransmittedHandler

Self = typing.TypeVar('Self')

@typing.final
class ConnectionRequestedEventArgs(winrt.system.Object):
    # Windows.Networking.Proximity.PeerInformation Windows.Networking.Proximity.ConnectionRequestedEventArgs::get_PeerInformation()
    @_property
    def peer_information(self) -> PeerInformation: ...

@typing.final
class PeerFinder_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Sockets.StreamSocket> Windows.Networking.Proximity.PeerFinder::ConnectAsync(Windows.Networking.Proximity.PeerInformation)
    def connect_async(cls, peer_information: PeerInformation, /) -> windows_foundation.IAsyncOperation[windows_networking_sockets.StreamSocket]: ...
    # Windows.Networking.Proximity.PeerWatcher Windows.Networking.Proximity.PeerFinder::CreateWatcher()
    def create_watcher(cls) -> PeerWatcher: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Proximity.PeerInformation>> Windows.Networking.Proximity.PeerFinder::FindAllPeersAsync()
    def find_all_peers_async(cls) -> windows_foundation.IAsyncOperation[typing.Sequence[PeerInformation]]: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::Start()
    def start(cls) -> None: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::Start(System.String)
    def start_with_message(cls, peer_message: str, /) -> None: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::Stop()
    def stop(cls) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Networking.Proximity.PeerFinder::add_ConnectionRequested(Windows.Foundation.TypedEventHandler`2<System.Object,Windows.Networking.Proximity.ConnectionRequestedEventArgs>)
    def add_connection_requested(cls, handler: windows_foundation.TypedEventHandler[winrt.system.Object, ConnectionRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::remove_ConnectionRequested(Windows.Foundation.EventRegistrationToken)
    def remove_connection_requested(cls, cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Networking.Proximity.PeerFinder::add_TriggeredConnectionStateChanged(Windows.Foundation.TypedEventHandler`2<System.Object,Windows.Networking.Proximity.TriggeredConnectionStateChangedEventArgs>)
    def add_triggered_connection_state_changed(cls, handler: windows_foundation.TypedEventHandler[winrt.system.Object, TriggeredConnectionStateChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::remove_TriggeredConnectionStateChanged(Windows.Foundation.EventRegistrationToken)
    def remove_triggered_connection_state_changed(cls, cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Windows.Networking.Proximity.PeerFinder::get_DisplayName()
    @_property
    def display_name(cls) -> str: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::put_DisplayName(System.String)
    @display_name.setter
    def display_name(cls, value: str) -> None: ...
    # System.Boolean Windows.Networking.Proximity.PeerFinder::get_AllowWiFiDirect()
    @_property
    def allow_wi_fi_direct(cls) -> bool: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::put_AllowWiFiDirect(System.Boolean)
    @allow_wi_fi_direct.setter
    def allow_wi_fi_direct(cls, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Proximity.PeerFinder::get_AllowInfrastructure()
    @_property
    def allow_infrastructure(cls) -> bool: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::put_AllowInfrastructure(System.Boolean)
    @allow_infrastructure.setter
    def allow_infrastructure(cls, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Proximity.PeerFinder::get_AllowBluetooth()
    @_property
    def allow_bluetooth(cls) -> bool: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::put_AllowBluetooth(System.Boolean)
    @allow_bluetooth.setter
    def allow_bluetooth(cls, value: bool) -> None: ...
    # Windows.Foundation.Collections.IMap`2<System.String,System.String> Windows.Networking.Proximity.PeerFinder::get_AlternateIdentities()
    @_property
    def alternate_identities(cls) -> typing.MutableMapping[str, str]: ...
    # Windows.Networking.Proximity.PeerDiscoveryTypes Windows.Networking.Proximity.PeerFinder::get_SupportedDiscoveryTypes()
    @_property
    def supported_discovery_types(cls) -> PeerDiscoveryTypes: ...
    # Windows.Networking.Proximity.PeerRole Windows.Networking.Proximity.PeerFinder::get_Role()
    @_property
    def role(cls) -> PeerRole: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::put_Role(Windows.Networking.Proximity.PeerRole)
    @role.setter
    def role(cls, value: PeerRole) -> None: ...
    # Windows.Storage.Streams.IBuffer Windows.Networking.Proximity.PeerFinder::get_DiscoveryData()
    @_property
    def discovery_data(cls) -> winrt.system.Buffer: ...
    # System.Void Windows.Networking.Proximity.PeerFinder::put_DiscoveryData(Windows.Storage.Streams.IBuffer)
    @discovery_data.setter
    def discovery_data(cls, value: winrt.system.Buffer) -> None: ...

@typing.final
class PeerFinder(winrt.system.Object, metaclass=PeerFinder_Static):
    pass

@typing.final
class PeerInformation(winrt.system.Object):
    # System.String Windows.Networking.Proximity.PeerInformation::get_DisplayName()
    @_property
    def display_name(self) -> str: ...
    # Windows.Storage.Streams.IBuffer Windows.Networking.Proximity.PeerInformation::get_DiscoveryData()
    @_property
    def discovery_data(self) -> winrt.system.Buffer: ...
    # System.String Windows.Networking.Proximity.PeerInformation::get_Id()
    @_property
    def id(self) -> str: ...
    # Windows.Networking.HostName Windows.Networking.Proximity.PeerInformation::get_HostName()
    @_property
    def host_name(self) -> windows_networking.HostName: ...
    # System.String Windows.Networking.Proximity.PeerInformation::get_ServiceName()
    @_property
    def service_name(self) -> str: ...

@typing.final
class PeerWatcher(winrt.system.Object):
    # System.Void Windows.Networking.Proximity.PeerWatcher::Start()
    def start(self) -> None: ...
    # System.Void Windows.Networking.Proximity.PeerWatcher::Stop()
    def stop(self) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Networking.Proximity.PeerWatcher::add_Added(Windows.Foundation.TypedEventHandler`2<Windows.Networking.Proximity.PeerWatcher,Windows.Networking.Proximity.PeerInformation>)
    def add_added(self, handler: windows_foundation.TypedEventHandler[PeerWatcher, PeerInformation], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Proximity.PeerWatcher::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.Networking.Proximity.PeerWatcher::add_EnumerationCompleted(Windows.Foundation.TypedEventHandler`2<Windows.Networking.Proximity.PeerWatcher,System.Object>)
    def add_enumeration_completed(self, handler: windows_foundation.TypedEventHandler[PeerWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Proximity.PeerWatcher::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.Networking.Proximity.PeerWatcher::add_Removed(Windows.Foundation.TypedEventHandler`2<Windows.Networking.Proximity.PeerWatcher,Windows.Networking.Proximity.PeerInformation>)
    def add_removed(self, handler: windows_foundation.TypedEventHandler[PeerWatcher, PeerInformation], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Proximity.PeerWatcher::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.Networking.Proximity.PeerWatcher::add_Stopped(Windows.Foundation.TypedEventHandler`2<Windows.Networking.Proximity.PeerWatcher,System.Object>)
    def add_stopped(self, handler: windows_foundation.TypedEventHandler[PeerWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Proximity.PeerWatcher::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.Networking.Proximity.PeerWatcher::add_Updated(Windows.Foundation.TypedEventHandler`2<Windows.Networking.Proximity.PeerWatcher,Windows.Networking.Proximity.PeerInformation>)
    def add_updated(self, handler: windows_foundation.TypedEventHandler[PeerWatcher, PeerInformation], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Proximity.PeerWatcher::remove_Updated(Windows.Foundation.EventRegistrationToken)
    def remove_updated(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Networking.Proximity.PeerWatcherStatus Windows.Networking.Proximity.PeerWatcher::get_Status()
    @_property
    def status(self) -> PeerWatcherStatus: ...

@typing.final
class ProximityDevice_Static(winrt._winrt.IInspectable_Static):
    # Windows.Networking.Proximity.ProximityDevice Windows.Networking.Proximity.ProximityDevice::FromId(System.String)
    def from_id(cls, device_id: str, /) -> ProximityDevice: ...
    # Windows.Networking.Proximity.ProximityDevice Windows.Networking.Proximity.ProximityDevice::GetDefault()
    def get_default(cls) -> ProximityDevice: ...
    # System.String Windows.Networking.Proximity.ProximityDevice::GetDeviceSelector()
    def get_device_selector(cls) -> str: ...

@typing.final
class ProximityDevice(winrt.system.Object, metaclass=ProximityDevice_Static):
    # System.Int64 Windows.Networking.Proximity.ProximityDevice::PublishBinaryMessage(System.String,Windows.Storage.Streams.IBuffer)
    def publish_binary_message(self, message_type: str, message: winrt.system.Buffer, /) -> winrt.system.Int64: ...
    # System.Int64 Windows.Networking.Proximity.ProximityDevice::PublishBinaryMessage(System.String,Windows.Storage.Streams.IBuffer,Windows.Networking.Proximity.MessageTransmittedHandler)
    def publish_binary_message_with_callback(self, message_type: str, message: winrt.system.Buffer, message_transmitted_handler: MessageTransmittedHandler, /) -> winrt.system.Int64: ...
    # System.Int64 Windows.Networking.Proximity.ProximityDevice::PublishMessage(System.String,System.String)
    def publish_message(self, message_type: str, message: str, /) -> winrt.system.Int64: ...
    # System.Int64 Windows.Networking.Proximity.ProximityDevice::PublishMessage(System.String,System.String,Windows.Networking.Proximity.MessageTransmittedHandler)
    def publish_message_with_callback(self, message_type: str, message: str, message_transmitted_handler: MessageTransmittedHandler, /) -> winrt.system.Int64: ...
    # System.Int64 Windows.Networking.Proximity.ProximityDevice::PublishUriMessage(Windows.Foundation.Uri)
    def publish_uri_message(self, message: windows_foundation.Uri, /) -> winrt.system.Int64: ...
    # System.Int64 Windows.Networking.Proximity.ProximityDevice::PublishUriMessage(Windows.Foundation.Uri,Windows.Networking.Proximity.MessageTransmittedHandler)
    def publish_uri_message_with_callback(self, message: windows_foundation.Uri, message_transmitted_handler: MessageTransmittedHandler, /) -> winrt.system.Int64: ...
    # System.Void Windows.Networking.Proximity.ProximityDevice::StopPublishingMessage(System.Int64)
    def stop_publishing_message(self, message_id: winrt.system.Int64, /) -> None: ...
    # System.Void Windows.Networking.Proximity.ProximityDevice::StopSubscribingForMessage(System.Int64)
    def stop_subscribing_for_message(self, subscription_id: winrt.system.Int64, /) -> None: ...
    # System.Int64 Windows.Networking.Proximity.ProximityDevice::SubscribeForMessage(System.String,Windows.Networking.Proximity.MessageReceivedHandler)
    def subscribe_for_message(self, message_type: str, message_received_handler: MessageReceivedHandler, /) -> winrt.system.Int64: ...
    # Windows.Foundation.EventRegistrationToken Windows.Networking.Proximity.ProximityDevice::add_DeviceArrived(Windows.Networking.Proximity.DeviceArrivedEventHandler)
    def add_device_arrived(self, arrived_handler: DeviceArrivedEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Proximity.ProximityDevice::remove_DeviceArrived(Windows.Foundation.EventRegistrationToken)
    def remove_device_arrived(self, cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Networking.Proximity.ProximityDevice::add_DeviceDeparted(Windows.Networking.Proximity.DeviceDepartedEventHandler)
    def add_device_departed(self, departed_handler: DeviceDepartedEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Proximity.ProximityDevice::remove_DeviceDeparted(Windows.Foundation.EventRegistrationToken)
    def remove_device_departed(self, cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.UInt64 Windows.Networking.Proximity.ProximityDevice::get_BitsPerSecond()
    @_property
    def bits_per_second(self) -> winrt.system.UInt64: ...
    # System.String Windows.Networking.Proximity.ProximityDevice::get_DeviceId()
    @_property
    def device_id(self) -> str: ...
    # System.UInt32 Windows.Networking.Proximity.ProximityDevice::get_MaxMessageBytes()
    @_property
    def max_message_bytes(self) -> winrt.system.UInt32: ...

@typing.final
class ProximityMessage(winrt.system.Object):
    # Windows.Storage.Streams.IBuffer Windows.Networking.Proximity.ProximityMessage::get_Data()
    @_property
    def data(self) -> winrt.system.Buffer: ...
    # System.String Windows.Networking.Proximity.ProximityMessage::get_DataAsString()
    @_property
    def data_as_string(self) -> str: ...
    # System.String Windows.Networking.Proximity.ProximityMessage::get_MessageType()
    @_property
    def message_type(self) -> str: ...
    # System.Int64 Windows.Networking.Proximity.ProximityMessage::get_SubscriptionId()
    @_property
    def subscription_id(self) -> winrt.system.Int64: ...

@typing.final
class TriggeredConnectionStateChangedEventArgs(winrt.system.Object):
    # System.UInt32 Windows.Networking.Proximity.TriggeredConnectionStateChangedEventArgs::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Networking.Sockets.StreamSocket Windows.Networking.Proximity.TriggeredConnectionStateChangedEventArgs::get_Socket()
    @_property
    def socket(self) -> windows_networking_sockets.StreamSocket: ...
    # Windows.Networking.Proximity.TriggeredConnectState Windows.Networking.Proximity.TriggeredConnectionStateChangedEventArgs::get_State()
    @_property
    def state(self) -> TriggeredConnectState: ...

