# 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.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.networking.connectivity as windows_networking_connectivity
import winrt.windows.security.credentials as windows_security_credentials

from winrt.windows.devices.wifi import WiFiAccessStatus, WiFiConnectionMethod, WiFiConnectionStatus, WiFiNetworkKind, WiFiOnDemandHotspotAvailability, WiFiOnDemandHotspotCellularBars, WiFiOnDemandHotspotConnectStatus, WiFiPhyKind, WiFiReconnectionKind, WiFiWpsConfigurationStatus, WiFiWpsKind

Self = typing.TypeVar('Self')

@typing.final
class WiFiAdapter_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.WiFi.WiFiAdapter>> Windows.Devices.WiFi.WiFiAdapter::FindAllAdaptersAsync()
    def find_all_adapters_async(cls) -> windows_foundation.IAsyncOperation[typing.Sequence[WiFiAdapter]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.WiFi.WiFiAdapter> Windows.Devices.WiFi.WiFiAdapter::FromIdAsync(System.String)
    def from_id_async(cls, device_id: str, /) -> windows_foundation.IAsyncOperation[WiFiAdapter]: ...
    # System.String Windows.Devices.WiFi.WiFiAdapter::GetDeviceSelector()
    def get_device_selector(cls) -> str: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.WiFi.WiFiAccessStatus> Windows.Devices.WiFi.WiFiAdapter::RequestAccessAsync()
    def request_access_async(cls) -> windows_foundation.IAsyncOperation[WiFiAccessStatus]: ...

@typing.final
class WiFiAdapter(winrt.system.Object, metaclass=WiFiAdapter_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.WiFi.WiFiConnectionResult> Windows.Devices.WiFi.WiFiAdapter::ConnectAsync(Windows.Devices.WiFi.WiFiAvailableNetwork,Windows.Devices.WiFi.WiFiReconnectionKind)
    def connect_async(self, available_network: WiFiAvailableNetwork, reconnection_kind: WiFiReconnectionKind, /) -> windows_foundation.IAsyncOperation[WiFiConnectionResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.WiFi.WiFiConnectionResult> Windows.Devices.WiFi.WiFiAdapter::ConnectAsync(Windows.Devices.WiFi.WiFiAvailableNetwork,Windows.Devices.WiFi.WiFiReconnectionKind,Windows.Security.Credentials.PasswordCredential,System.String,Windows.Devices.WiFi.WiFiConnectionMethod)
    def connect_with_password_credential_and_ssid_and_connection_method_async(self, available_network: WiFiAvailableNetwork, reconnection_kind: WiFiReconnectionKind, password_credential: windows_security_credentials.PasswordCredential, ssid: str, connection_method: WiFiConnectionMethod, /) -> windows_foundation.IAsyncOperation[WiFiConnectionResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.WiFi.WiFiConnectionResult> Windows.Devices.WiFi.WiFiAdapter::ConnectAsync(Windows.Devices.WiFi.WiFiAvailableNetwork,Windows.Devices.WiFi.WiFiReconnectionKind,Windows.Security.Credentials.PasswordCredential,System.String)
    def connect_with_password_credential_and_ssid_async(self, available_network: WiFiAvailableNetwork, reconnection_kind: WiFiReconnectionKind, password_credential: windows_security_credentials.PasswordCredential, ssid: str, /) -> windows_foundation.IAsyncOperation[WiFiConnectionResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.WiFi.WiFiConnectionResult> Windows.Devices.WiFi.WiFiAdapter::ConnectAsync(Windows.Devices.WiFi.WiFiAvailableNetwork,Windows.Devices.WiFi.WiFiReconnectionKind,Windows.Security.Credentials.PasswordCredential)
    def connect_with_password_credential_async(self, available_network: WiFiAvailableNetwork, reconnection_kind: WiFiReconnectionKind, password_credential: windows_security_credentials.PasswordCredential, /) -> windows_foundation.IAsyncOperation[WiFiConnectionResult]: ...
    # System.Void Windows.Devices.WiFi.WiFiAdapter::Disconnect()
    def disconnect(self) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.WiFi.WiFiWpsConfigurationResult> Windows.Devices.WiFi.WiFiAdapter::GetWpsConfigurationAsync(Windows.Devices.WiFi.WiFiAvailableNetwork)
    def get_wps_configuration_async(self, available_network: WiFiAvailableNetwork, /) -> windows_foundation.IAsyncOperation[WiFiWpsConfigurationResult]: ...
    # Windows.Foundation.IAsyncAction Windows.Devices.WiFi.WiFiAdapter::ScanAsync()
    def scan_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.WiFi.WiFiAdapter::add_AvailableNetworksChanged(Windows.Foundation.TypedEventHandler`2<Windows.Devices.WiFi.WiFiAdapter,System.Object>)
    def add_available_networks_changed(self, args: windows_foundation.TypedEventHandler[WiFiAdapter, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.WiFi.WiFiAdapter::remove_AvailableNetworksChanged(Windows.Foundation.EventRegistrationToken)
    def remove_available_networks_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Networking.Connectivity.NetworkAdapter Windows.Devices.WiFi.WiFiAdapter::get_NetworkAdapter()
    @_property
    def network_adapter(self) -> windows_networking_connectivity.NetworkAdapter: ...
    # Windows.Devices.WiFi.WiFiNetworkReport Windows.Devices.WiFi.WiFiAdapter::get_NetworkReport()
    @_property
    def network_report(self) -> WiFiNetworkReport: ...

@typing.final
class WiFiAvailableNetwork(winrt.system.Object):
    # Windows.Foundation.TimeSpan Windows.Devices.WiFi.WiFiAvailableNetwork::get_BeaconInterval()
    @_property
    def beacon_interval(self) -> datetime.timedelta: ...
    # System.String Windows.Devices.WiFi.WiFiAvailableNetwork::get_Bssid()
    @_property
    def bssid(self) -> str: ...
    # System.Int32 Windows.Devices.WiFi.WiFiAvailableNetwork::get_ChannelCenterFrequencyInKilohertz()
    @_property
    def channel_center_frequency_in_kilohertz(self) -> winrt.system.Int32: ...
    # System.Boolean Windows.Devices.WiFi.WiFiAvailableNetwork::get_IsWiFiDirect()
    @_property
    def is_wi_fi_direct(self) -> bool: ...
    # Windows.Devices.WiFi.WiFiNetworkKind Windows.Devices.WiFi.WiFiAvailableNetwork::get_NetworkKind()
    @_property
    def network_kind(self) -> WiFiNetworkKind: ...
    # System.Double Windows.Devices.WiFi.WiFiAvailableNetwork::get_NetworkRssiInDecibelMilliwatts()
    @_property
    def network_rssi_in_decibel_milliwatts(self) -> winrt.system.Double: ...
    # Windows.Devices.WiFi.WiFiPhyKind Windows.Devices.WiFi.WiFiAvailableNetwork::get_PhyKind()
    @_property
    def phy_kind(self) -> WiFiPhyKind: ...
    # Windows.Networking.Connectivity.NetworkSecuritySettings Windows.Devices.WiFi.WiFiAvailableNetwork::get_SecuritySettings()
    @_property
    def security_settings(self) -> windows_networking_connectivity.NetworkSecuritySettings: ...
    # System.Byte Windows.Devices.WiFi.WiFiAvailableNetwork::get_SignalBars()
    @_property
    def signal_bars(self) -> winrt.system.UInt8: ...
    # System.String Windows.Devices.WiFi.WiFiAvailableNetwork::get_Ssid()
    @_property
    def ssid(self) -> str: ...
    # Windows.Foundation.TimeSpan Windows.Devices.WiFi.WiFiAvailableNetwork::get_Uptime()
    @_property
    def uptime(self) -> datetime.timedelta: ...

@typing.final
class WiFiConnectionResult(winrt.system.Object):
    # Windows.Devices.WiFi.WiFiConnectionStatus Windows.Devices.WiFi.WiFiConnectionResult::get_ConnectionStatus()
    @_property
    def connection_status(self) -> WiFiConnectionStatus: ...

@typing.final
class WiFiNetworkReport(winrt.system.Object):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.WiFi.WiFiAvailableNetwork> Windows.Devices.WiFi.WiFiNetworkReport::get_AvailableNetworks()
    @_property
    def available_networks(self) -> typing.Sequence[WiFiAvailableNetwork]: ...
    # Windows.Foundation.DateTime Windows.Devices.WiFi.WiFiNetworkReport::get_Timestamp()
    @_property
    def timestamp(self) -> datetime.datetime: ...

@typing.final
class WiFiOnDemandHotspotConnectTriggerDetails(winrt.system.Object):
    # Windows.Devices.WiFi.WiFiOnDemandHotspotConnectionResult Windows.Devices.WiFi.WiFiOnDemandHotspotConnectTriggerDetails::Connect()
    def connect(self) -> WiFiOnDemandHotspotConnectionResult: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.WiFi.WiFiOnDemandHotspotConnectionResult> Windows.Devices.WiFi.WiFiOnDemandHotspotConnectTriggerDetails::ConnectAsync()
    def connect_async(self) -> windows_foundation.IAsyncOperation[WiFiOnDemandHotspotConnectionResult]: ...
    # System.Void Windows.Devices.WiFi.WiFiOnDemandHotspotConnectTriggerDetails::ReportError(Windows.Devices.WiFi.WiFiOnDemandHotspotConnectStatus)
    def report_error(self, status: WiFiOnDemandHotspotConnectStatus, /) -> None: ...
    # Windows.Devices.WiFi.WiFiOnDemandHotspotNetwork Windows.Devices.WiFi.WiFiOnDemandHotspotConnectTriggerDetails::get_RequestedNetwork()
    @_property
    def requested_network(self) -> WiFiOnDemandHotspotNetwork: ...

@typing.final
class WiFiOnDemandHotspotConnectionResult(winrt.system.Object):
    # Windows.Devices.WiFi.WiFiOnDemandHotspotConnectStatus Windows.Devices.WiFi.WiFiOnDemandHotspotConnectionResult::get_Status()
    @_property
    def status(self) -> WiFiOnDemandHotspotConnectStatus: ...

@typing.final
class WiFiOnDemandHotspotNetwork_Static(winrt._winrt.IInspectable_Static):
    # Windows.Devices.WiFi.WiFiOnDemandHotspotNetwork Windows.Devices.WiFi.WiFiOnDemandHotspotNetwork::GetOrCreateById(System.Guid)
    def get_or_create_by_id(cls, network_id: _uuid.UUID, /) -> WiFiOnDemandHotspotNetwork: ...

@typing.final
class WiFiOnDemandHotspotNetwork(winrt.system.Object, metaclass=WiFiOnDemandHotspotNetwork_Static):
    # Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties Windows.Devices.WiFi.WiFiOnDemandHotspotNetwork::GetProperties()
    def get_properties(self) -> WiFiOnDemandHotspotNetworkProperties: ...
    # System.Void Windows.Devices.WiFi.WiFiOnDemandHotspotNetwork::UpdateProperties(Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties)
    def update_properties(self, new_properties: WiFiOnDemandHotspotNetworkProperties, /) -> None: ...
    # System.Guid Windows.Devices.WiFi.WiFiOnDemandHotspotNetwork::get_Id()
    @_property
    def id(self) -> _uuid.UUID: ...

@typing.final
class WiFiOnDemandHotspotNetworkProperties(winrt.system.Object):
    # System.String Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::get_Ssid()
    @_property
    def ssid(self) -> str: ...
    # System.Void Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::put_Ssid(System.String)
    @ssid.setter
    def ssid(self, value: str) -> None: ...
    # Windows.Foundation.IReference`1<System.UInt32> Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::get_RemainingBatteryPercent()
    @_property
    def remaining_battery_percent(self) -> typing.Optional[winrt.system.UInt32]: ...
    # System.Void Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::put_RemainingBatteryPercent(Windows.Foundation.IReference`1<System.UInt32>)
    @remaining_battery_percent.setter
    def remaining_battery_percent(self, value: typing.Optional[winrt.system.UInt32]) -> None: ...
    # Windows.Security.Credentials.PasswordCredential Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::get_Password()
    @_property
    def password(self) -> windows_security_credentials.PasswordCredential: ...
    # System.Void Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::put_Password(Windows.Security.Credentials.PasswordCredential)
    @password.setter
    def password(self, value: windows_security_credentials.PasswordCredential) -> None: ...
    # System.Boolean Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::get_IsMetered()
    @_property
    def is_metered(self) -> bool: ...
    # System.Void Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::put_IsMetered(System.Boolean)
    @is_metered.setter
    def is_metered(self, value: bool) -> None: ...
    # System.String Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::get_DisplayName()
    @_property
    def display_name(self) -> str: ...
    # System.Void Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::put_DisplayName(System.String)
    @display_name.setter
    def display_name(self, value: str) -> None: ...
    # Windows.Foundation.IReference`1<Windows.Devices.WiFi.WiFiOnDemandHotspotCellularBars> Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::get_CellularBars()
    @_property
    def cellular_bars(self) -> typing.Optional[WiFiOnDemandHotspotCellularBars]: ...
    # System.Void Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::put_CellularBars(Windows.Foundation.IReference`1<Windows.Devices.WiFi.WiFiOnDemandHotspotCellularBars>)
    @cellular_bars.setter
    def cellular_bars(self, value: typing.Optional[WiFiOnDemandHotspotCellularBars]) -> None: ...
    # Windows.Devices.WiFi.WiFiOnDemandHotspotAvailability Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::get_Availability()
    @_property
    def availability(self) -> WiFiOnDemandHotspotAvailability: ...
    # System.Void Windows.Devices.WiFi.WiFiOnDemandHotspotNetworkProperties::put_Availability(Windows.Devices.WiFi.WiFiOnDemandHotspotAvailability)
    @availability.setter
    def availability(self, value: WiFiOnDemandHotspotAvailability) -> None: ...

@typing.final
class WiFiWpsConfigurationResult(winrt.system.Object):
    # Windows.Devices.WiFi.WiFiWpsConfigurationStatus Windows.Devices.WiFi.WiFiWpsConfigurationResult::get_Status()
    @_property
    def status(self) -> WiFiWpsConfigurationStatus: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.WiFi.WiFiWpsKind> Windows.Devices.WiFi.WiFiWpsConfigurationResult::get_SupportedWpsKinds()
    @_property
    def supported_wps_kinds(self) -> typing.Sequence[WiFiWpsKind]: ...

