# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.0-beta.2

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
import winrt.windows.foundation
import winrt.windows.foundation.collections
import winrt.windows.networking
import winrt.windows.security.credentials
import winrt.windows.storage.streams

from winrt.windows.devices.wifidirect import WiFiDirectAdvertisementListenStateDiscoverability, WiFiDirectAdvertisementPublisherStatus, WiFiDirectConfigurationMethod, WiFiDirectConnectionStatus, WiFiDirectDeviceSelectorType, WiFiDirectError, WiFiDirectPairingProcedure

Self = typing.TypeVar('Self')

@typing.final
class WiFiDirectAdvertisement(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WiFiDirectAdvertisement: ...
    @_property
    def listen_state_discoverability(self) -> WiFiDirectAdvertisementListenStateDiscoverability: ...
    @listen_state_discoverability.setter
    def listen_state_discoverability(self, value: WiFiDirectAdvertisementListenStateDiscoverability) -> None: ...
    @_property
    def is_autonomous_group_owner_enabled(self) -> bool: ...
    @is_autonomous_group_owner_enabled.setter
    def is_autonomous_group_owner_enabled(self, value: bool) -> None: ...
    @_property
    def information_elements(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[WiFiDirectInformationElement]]: ...
    @information_elements.setter
    def information_elements(self, value: typing.Optional[winrt.windows.foundation.collections.IVector[WiFiDirectInformationElement]]) -> None: ...
    @_property
    def legacy_settings(self) -> typing.Optional[WiFiDirectLegacySettings]: ...
    @_property
    def supported_configuration_methods(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[WiFiDirectConfigurationMethod]]: ...

@typing.final
class WiFiDirectAdvertisementPublisher(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WiFiDirectAdvertisementPublisher: ...
    def __new__(cls: typing.Type[WiFiDirectAdvertisementPublisher]) -> WiFiDirectAdvertisementPublisher:...
    def start(self) -> None: ...
    def stop(self) -> None: ...
    def add_status_changed(self, handler: winrt.windows.foundation.TypedEventHandler[WiFiDirectAdvertisementPublisher, WiFiDirectAdvertisementPublisherStatusChangedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_status_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def advertisement(self) -> typing.Optional[WiFiDirectAdvertisement]: ...
    @_property
    def status(self) -> WiFiDirectAdvertisementPublisherStatus: ...

@typing.final
class WiFiDirectAdvertisementPublisherStatusChangedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WiFiDirectAdvertisementPublisherStatusChangedEventArgs: ...
    @_property
    def error(self) -> WiFiDirectError: ...
    @_property
    def status(self) -> WiFiDirectAdvertisementPublisherStatus: ...

@typing.final
class WiFiDirectConnectionListener(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WiFiDirectConnectionListener: ...
    def __new__(cls: typing.Type[WiFiDirectConnectionListener]) -> WiFiDirectConnectionListener:...
    def add_connection_requested(self, handler: winrt.windows.foundation.TypedEventHandler[WiFiDirectConnectionListener, WiFiDirectConnectionRequestedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_connection_requested(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...

@typing.final
class WiFiDirectConnectionParameters_Static(type):
    def get_device_pairing_kinds(cls, configuration_method: WiFiDirectConfigurationMethod, /) -> winrt.windows.devices.enumeration.DevicePairingKinds: ...

@typing.final
class WiFiDirectConnectionParameters(winrt.system.Object, metaclass=WiFiDirectConnectionParameters_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WiFiDirectConnectionParameters: ...
    def __new__(cls: typing.Type[WiFiDirectConnectionParameters]) -> WiFiDirectConnectionParameters:...
    @_property
    def group_owner_intent(self) -> winrt.system.Int16: ...
    @group_owner_intent.setter
    def group_owner_intent(self, value: winrt.system.Int16) -> None: ...
    @_property
    def preferred_pairing_procedure(self) -> WiFiDirectPairingProcedure: ...
    @preferred_pairing_procedure.setter
    def preferred_pairing_procedure(self, value: WiFiDirectPairingProcedure) -> None: ...
    @_property
    def preference_ordered_configuration_methods(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[WiFiDirectConfigurationMethod]]: ...

@typing.final
class WiFiDirectConnectionRequest(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WiFiDirectConnectionRequest: ...
    def close(self) -> None: ...
    @_property
    def device_information(self) -> typing.Optional[winrt.windows.devices.enumeration.DeviceInformation]: ...

@typing.final
class WiFiDirectConnectionRequestedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WiFiDirectConnectionRequestedEventArgs: ...
    def get_connection_request(self) -> typing.Optional[WiFiDirectConnectionRequest]: ...

@typing.final
class WiFiDirectDevice_Static(type):
    @typing.overload
    def from_id_async(cls, device_id: str, /) -> winrt.windows.foundation.IAsyncOperation[WiFiDirectDevice]: ...
    @typing.overload
    def from_id_async(cls, device_id: str, connection_parameters: typing.Optional[WiFiDirectConnectionParameters], /) -> winrt.windows.foundation.IAsyncOperation[WiFiDirectDevice]: ...
    @typing.overload
    def get_device_selector(cls) -> str: ...
    @typing.overload
    def get_device_selector(cls, type: WiFiDirectDeviceSelectorType, /) -> str: ...

@typing.final
class WiFiDirectDevice(winrt.system.Object, metaclass=WiFiDirectDevice_Static):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WiFiDirectDevice: ...
    def close(self) -> None: ...
    def get_connection_endpoint_pairs(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[winrt.windows.networking.EndpointPair]]: ...
    def add_connection_status_changed(self, handler: winrt.windows.foundation.TypedEventHandler[WiFiDirectDevice, winrt.system.Object], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_connection_status_changed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def connection_status(self) -> WiFiDirectConnectionStatus: ...
    @_property
    def device_id(self) -> str: ...

@typing.final
class WiFiDirectInformationElement_Static(type):
    def create_from_buffer(cls, buffer: typing.Optional[winrt.windows.storage.streams.IBuffer], /) -> typing.Optional[winrt.windows.foundation.collections.IVector[WiFiDirectInformationElement]]: ...
    def create_from_device_information(cls, device_information: typing.Optional[winrt.windows.devices.enumeration.DeviceInformation], /) -> typing.Optional[winrt.windows.foundation.collections.IVector[WiFiDirectInformationElement]]: ...

@typing.final
class WiFiDirectInformationElement(winrt.system.Object, metaclass=WiFiDirectInformationElement_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WiFiDirectInformationElement: ...
    def __new__(cls: typing.Type[WiFiDirectInformationElement]) -> WiFiDirectInformationElement:...
    @_property
    def value(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @value.setter
    def value(self, value: typing.Optional[winrt.windows.storage.streams.IBuffer]) -> None: ...
    @_property
    def oui_type(self) -> winrt.system.UInt8: ...
    @oui_type.setter
    def oui_type(self, value: winrt.system.UInt8) -> None: ...
    @_property
    def oui(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @oui.setter
    def oui(self, value: typing.Optional[winrt.windows.storage.streams.IBuffer]) -> None: ...

@typing.final
class WiFiDirectLegacySettings(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WiFiDirectLegacySettings: ...
    @_property
    def ssid(self) -> str: ...
    @ssid.setter
    def ssid(self, value: str) -> None: ...
    @_property
    def passphrase(self) -> typing.Optional[winrt.windows.security.credentials.PasswordCredential]: ...
    @passphrase.setter
    def passphrase(self, value: typing.Optional[winrt.windows.security.credentials.PasswordCredential]) -> None: ...
    @_property
    def is_enabled(self) -> bool: ...
    @is_enabled.setter
    def is_enabled(self, value: bool) -> None: ...

