# 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.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.networking as windows_networking
import winrt.windows.storage.streams as windows_storage_streams

from winrt.windows.networking.connectivity import CellularApnAuthenticationType, ConnectionProfileDeleteStatus, DataUsageGranularity, DomainAuthenticationKind, DomainConnectivityLevel, NetworkAuthenticationType, NetworkConnectivityLevel, NetworkCostType, NetworkEncryptionType, NetworkTypes, RoamingStates, TriStates, WwanDataClass, WwanNetworkIPKind, WwanNetworkRegistrationState
from winrt.windows.networking.connectivity import NetworkStatusChangedEventHandler

Self = typing.TypeVar('Self')

@typing.final
class NetworkUsageStates:
    @_property
    def roaming(self) -> TriStates: ...
    @_property
    def shared(self) -> TriStates: ...
    def __new__(cls, roaming: TriStates = TriStates(0), shared: TriStates = TriStates(0)) -> NetworkUsageStates: ...
    def __replace__(self, /, **changes: typing.Any) -> NetworkUsageStates: ...
    def unpack(self) -> typing.Tuple[TriStates, TriStates]: ...

@typing.final
class AttributedNetworkUsage(winrt.system.Object):
    # System.String Windows.Networking.Connectivity.AttributedNetworkUsage::get_AttributionId()
    @_property
    def attribution_id(self) -> str: ...
    # System.String Windows.Networking.Connectivity.AttributedNetworkUsage::get_AttributionName()
    @_property
    def attribution_name(self) -> str: ...
    # Windows.Storage.Streams.IRandomAccessStreamReference Windows.Networking.Connectivity.AttributedNetworkUsage::get_AttributionThumbnail()
    @_property
    def attribution_thumbnail(self) -> windows_storage_streams.IRandomAccessStreamReference: ...
    # System.UInt64 Windows.Networking.Connectivity.AttributedNetworkUsage::get_BytesReceived()
    @_property
    def bytes_received(self) -> winrt.system.UInt64: ...
    # System.UInt64 Windows.Networking.Connectivity.AttributedNetworkUsage::get_BytesSent()
    @_property
    def bytes_sent(self) -> winrt.system.UInt64: ...

@typing.final
class CellularApnContext(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Networking.Connectivity.CellularApnContext::get_UserName()
    @_property
    def user_name(self) -> str: ...
    # System.Void Windows.Networking.Connectivity.CellularApnContext::put_UserName(System.String)
    @user_name.setter
    def user_name(self, value: str) -> None: ...
    # System.String Windows.Networking.Connectivity.CellularApnContext::get_ProviderId()
    @_property
    def provider_id(self) -> str: ...
    # System.Void Windows.Networking.Connectivity.CellularApnContext::put_ProviderId(System.String)
    @provider_id.setter
    def provider_id(self, value: str) -> None: ...
    # System.String Windows.Networking.Connectivity.CellularApnContext::get_Password()
    @_property
    def password(self) -> str: ...
    # System.Void Windows.Networking.Connectivity.CellularApnContext::put_Password(System.String)
    @password.setter
    def password(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Connectivity.CellularApnContext::get_IsCompressionEnabled()
    @_property
    def is_compression_enabled(self) -> bool: ...
    # System.Void Windows.Networking.Connectivity.CellularApnContext::put_IsCompressionEnabled(System.Boolean)
    @is_compression_enabled.setter
    def is_compression_enabled(self, value: bool) -> None: ...
    # Windows.Networking.Connectivity.CellularApnAuthenticationType Windows.Networking.Connectivity.CellularApnContext::get_AuthenticationType()
    @_property
    def authentication_type(self) -> CellularApnAuthenticationType: ...
    # System.Void Windows.Networking.Connectivity.CellularApnContext::put_AuthenticationType(Windows.Networking.Connectivity.CellularApnAuthenticationType)
    @authentication_type.setter
    def authentication_type(self, value: CellularApnAuthenticationType) -> None: ...
    # System.String Windows.Networking.Connectivity.CellularApnContext::get_AccessPointName()
    @_property
    def access_point_name(self) -> str: ...
    # System.Void Windows.Networking.Connectivity.CellularApnContext::put_AccessPointName(System.String)
    @access_point_name.setter
    def access_point_name(self, value: str) -> None: ...
    # System.String Windows.Networking.Connectivity.CellularApnContext::get_ProfileName()
    @_property
    def profile_name(self) -> str: ...
    # System.Void Windows.Networking.Connectivity.CellularApnContext::put_ProfileName(System.String)
    @profile_name.setter
    def profile_name(self, value: str) -> None: ...

@typing.final
class ConnectionCost(winrt.system.Object):
    # System.Boolean Windows.Networking.Connectivity.ConnectionCost::get_ApproachingDataLimit()
    @_property
    def approaching_data_limit(self) -> bool: ...
    # Windows.Networking.Connectivity.NetworkCostType Windows.Networking.Connectivity.ConnectionCost::get_NetworkCostType()
    @_property
    def network_cost_type(self) -> NetworkCostType: ...
    # System.Boolean Windows.Networking.Connectivity.ConnectionCost::get_OverDataLimit()
    @_property
    def over_data_limit(self) -> bool: ...
    # System.Boolean Windows.Networking.Connectivity.ConnectionCost::get_Roaming()
    @_property
    def roaming(self) -> bool: ...
    # System.Boolean Windows.Networking.Connectivity.ConnectionCost::get_BackgroundDataUsageRestricted()
    @_property
    def background_data_usage_restricted(self) -> bool: ...

@typing.final
class ConnectionProfile(winrt.system.Object):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Connectivity.AttributedNetworkUsage>> Windows.Networking.Connectivity.ConnectionProfile::GetAttributedNetworkUsageAsync(Windows.Foundation.DateTime,Windows.Foundation.DateTime,Windows.Networking.Connectivity.NetworkUsageStates)
    def get_attributed_network_usage_async(self, start_time: datetime.datetime, end_time: datetime.datetime, states: typing.Union[NetworkUsageStates, typing.Tuple[TriStates, TriStates]], /) -> windows_foundation.IAsyncOperation[typing.Sequence[AttributedNetworkUsage]]: ...
    # Windows.Networking.Connectivity.ConnectionCost Windows.Networking.Connectivity.ConnectionProfile::GetConnectionCost()
    def get_connection_cost(self) -> ConnectionCost: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Connectivity.ConnectivityInterval>> Windows.Networking.Connectivity.ConnectionProfile::GetConnectivityIntervalsAsync(Windows.Foundation.DateTime,Windows.Foundation.DateTime,Windows.Networking.Connectivity.NetworkUsageStates)
    def get_connectivity_intervals_async(self, start_time: datetime.datetime, end_time: datetime.datetime, states: typing.Union[NetworkUsageStates, typing.Tuple[TriStates, TriStates]], /) -> windows_foundation.IAsyncOperation[typing.Sequence[ConnectivityInterval]]: ...
    # Windows.Networking.Connectivity.DataPlanStatus Windows.Networking.Connectivity.ConnectionProfile::GetDataPlanStatus()
    def get_data_plan_status(self) -> DataPlanStatus: ...
    # Windows.Networking.Connectivity.DomainConnectivityLevel Windows.Networking.Connectivity.ConnectionProfile::GetDomainConnectivityLevel()
    def get_domain_connectivity_level(self) -> DomainConnectivityLevel: ...
    # Windows.Networking.Connectivity.DataUsage Windows.Networking.Connectivity.ConnectionProfile::GetLocalUsage(Windows.Foundation.DateTime,Windows.Foundation.DateTime)
    # @deprecated("GetLocalUsage may be altered or unavailable for releases after Windows 8.1. Instead, use GetNetworkUsageAsync.")
    def get_local_usage(self, start_time: datetime.datetime, end_time: datetime.datetime, /) -> DataUsage: ...
    # Windows.Networking.Connectivity.DataUsage Windows.Networking.Connectivity.ConnectionProfile::GetLocalUsage(Windows.Foundation.DateTime,Windows.Foundation.DateTime,Windows.Networking.Connectivity.RoamingStates)
    # @deprecated("GetLocalUsage may be altered or unavailable for releases after Windows 8.1. Instead, use GetNetworkUsageAsync.")
    def get_local_usage_per_roaming_states(self, start_time: datetime.datetime, end_time: datetime.datetime, states: RoamingStates, /) -> DataUsage: ...
    # Windows.Networking.Connectivity.NetworkConnectivityLevel Windows.Networking.Connectivity.ConnectionProfile::GetNetworkConnectivityLevel()
    def get_network_connectivity_level(self) -> NetworkConnectivityLevel: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Networking.Connectivity.ConnectionProfile::GetNetworkNames()
    def get_network_names(self) -> typing.Sequence[str]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Connectivity.NetworkUsage>> Windows.Networking.Connectivity.ConnectionProfile::GetNetworkUsageAsync(Windows.Foundation.DateTime,Windows.Foundation.DateTime,Windows.Networking.Connectivity.DataUsageGranularity,Windows.Networking.Connectivity.NetworkUsageStates)
    def get_network_usage_async(self, start_time: datetime.datetime, end_time: datetime.datetime, granularity: DataUsageGranularity, states: typing.Union[NetworkUsageStates, typing.Tuple[TriStates, TriStates]], /) -> windows_foundation.IAsyncOperation[typing.Sequence[NetworkUsage]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Connectivity.ProviderNetworkUsage>> Windows.Networking.Connectivity.ConnectionProfile::GetProviderNetworkUsageAsync(Windows.Foundation.DateTime,Windows.Foundation.DateTime,Windows.Networking.Connectivity.NetworkUsageStates)
    def get_provider_network_usage_async(self, start_time: datetime.datetime, end_time: datetime.datetime, states: typing.Union[NetworkUsageStates, typing.Tuple[TriStates, TriStates]], /) -> windows_foundation.IAsyncOperation[typing.Sequence[ProviderNetworkUsage]]: ...
    # Windows.Foundation.IReference`1<System.Byte> Windows.Networking.Connectivity.ConnectionProfile::GetSignalBars()
    def get_signal_bars(self) -> typing.Optional[winrt.system.UInt8]: ...
    # System.Boolean Windows.Networking.Connectivity.ConnectionProfile::IsDomainAuthenticatedBy(Windows.Networking.Connectivity.DomainAuthenticationKind)
    def is_domain_authenticated_by(self, kind: DomainAuthenticationKind, /) -> bool: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Connectivity.ConnectionProfileDeleteStatus> Windows.Networking.Connectivity.ConnectionProfile::TryDeleteAsync()
    def try_delete_async(self) -> windows_foundation.IAsyncOperation[ConnectionProfileDeleteStatus]: ...
    # Windows.Networking.Connectivity.NetworkAdapter Windows.Networking.Connectivity.ConnectionProfile::get_NetworkAdapter()
    @_property
    def network_adapter(self) -> NetworkAdapter: ...
    # Windows.Networking.Connectivity.NetworkSecuritySettings Windows.Networking.Connectivity.ConnectionProfile::get_NetworkSecuritySettings()
    @_property
    def network_security_settings(self) -> NetworkSecuritySettings: ...
    # System.String Windows.Networking.Connectivity.ConnectionProfile::get_ProfileName()
    @_property
    def profile_name(self) -> str: ...
    # System.Boolean Windows.Networking.Connectivity.ConnectionProfile::get_IsWlanConnectionProfile()
    @_property
    def is_wlan_connection_profile(self) -> bool: ...
    # System.Boolean Windows.Networking.Connectivity.ConnectionProfile::get_IsWwanConnectionProfile()
    @_property
    def is_wwan_connection_profile(self) -> bool: ...
    # Windows.Foundation.IReference`1<System.Guid> Windows.Networking.Connectivity.ConnectionProfile::get_ServiceProviderGuid()
    @_property
    def service_provider_guid(self) -> typing.Optional[_uuid.UUID]: ...
    # Windows.Networking.Connectivity.WlanConnectionProfileDetails Windows.Networking.Connectivity.ConnectionProfile::get_WlanConnectionProfileDetails()
    @_property
    def wlan_connection_profile_details(self) -> WlanConnectionProfileDetails: ...
    # Windows.Networking.Connectivity.WwanConnectionProfileDetails Windows.Networking.Connectivity.ConnectionProfile::get_WwanConnectionProfileDetails()
    @_property
    def wwan_connection_profile_details(self) -> WwanConnectionProfileDetails: ...
    # System.Boolean Windows.Networking.Connectivity.ConnectionProfile::get_CanDelete()
    @_property
    def can_delete(self) -> bool: ...

@typing.final
class ConnectionProfileFilter(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.IReference`1<System.Guid> Windows.Networking.Connectivity.ConnectionProfileFilter::get_ServiceProviderGuid()
    @_property
    def service_provider_guid(self) -> typing.Optional[_uuid.UUID]: ...
    # System.Void Windows.Networking.Connectivity.ConnectionProfileFilter::put_ServiceProviderGuid(Windows.Foundation.IReference`1<System.Guid>)
    @service_provider_guid.setter
    def service_provider_guid(self, value: typing.Optional[_uuid.UUID]) -> None: ...
    # Windows.Networking.Connectivity.NetworkCostType Windows.Networking.Connectivity.ConnectionProfileFilter::get_NetworkCostType()
    @_property
    def network_cost_type(self) -> NetworkCostType: ...
    # System.Void Windows.Networking.Connectivity.ConnectionProfileFilter::put_NetworkCostType(Windows.Networking.Connectivity.NetworkCostType)
    @network_cost_type.setter
    def network_cost_type(self, value: NetworkCostType) -> None: ...
    # System.Boolean Windows.Networking.Connectivity.ConnectionProfileFilter::get_IsWwanConnectionProfile()
    @_property
    def is_wwan_connection_profile(self) -> bool: ...
    # System.Void Windows.Networking.Connectivity.ConnectionProfileFilter::put_IsWwanConnectionProfile(System.Boolean)
    @is_wwan_connection_profile.setter
    def is_wwan_connection_profile(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Connectivity.ConnectionProfileFilter::get_IsWlanConnectionProfile()
    @_property
    def is_wlan_connection_profile(self) -> bool: ...
    # System.Void Windows.Networking.Connectivity.ConnectionProfileFilter::put_IsWlanConnectionProfile(System.Boolean)
    @is_wlan_connection_profile.setter
    def is_wlan_connection_profile(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Connectivity.ConnectionProfileFilter::get_IsConnected()
    @_property
    def is_connected(self) -> bool: ...
    # System.Void Windows.Networking.Connectivity.ConnectionProfileFilter::put_IsConnected(System.Boolean)
    @is_connected.setter
    def is_connected(self, value: bool) -> None: ...
    # Windows.Foundation.IReference`1<System.Boolean> Windows.Networking.Connectivity.ConnectionProfileFilter::get_IsRoaming()
    @_property
    def is_roaming(self) -> typing.Optional[bool]: ...
    # System.Void Windows.Networking.Connectivity.ConnectionProfileFilter::put_IsRoaming(Windows.Foundation.IReference`1<System.Boolean>)
    @is_roaming.setter
    def is_roaming(self, value: typing.Optional[bool]) -> None: ...
    # Windows.Foundation.IReference`1<System.Boolean> Windows.Networking.Connectivity.ConnectionProfileFilter::get_IsOverDataLimit()
    @_property
    def is_over_data_limit(self) -> typing.Optional[bool]: ...
    # System.Void Windows.Networking.Connectivity.ConnectionProfileFilter::put_IsOverDataLimit(Windows.Foundation.IReference`1<System.Boolean>)
    @is_over_data_limit.setter
    def is_over_data_limit(self, value: typing.Optional[bool]) -> None: ...
    # Windows.Foundation.IReference`1<System.Boolean> Windows.Networking.Connectivity.ConnectionProfileFilter::get_IsBackgroundDataUsageRestricted()
    @_property
    def is_background_data_usage_restricted(self) -> typing.Optional[bool]: ...
    # System.Void Windows.Networking.Connectivity.ConnectionProfileFilter::put_IsBackgroundDataUsageRestricted(Windows.Foundation.IReference`1<System.Boolean>)
    @is_background_data_usage_restricted.setter
    def is_background_data_usage_restricted(self, value: typing.Optional[bool]) -> None: ...
    # Windows.Storage.Streams.IBuffer Windows.Networking.Connectivity.ConnectionProfileFilter::get_RawData()
    @_property
    def raw_data(self) -> windows_storage_streams.IBuffer: ...
    # Windows.Foundation.IReference`1<System.Guid> Windows.Networking.Connectivity.ConnectionProfileFilter::get_PurposeGuid()
    @_property
    def purpose_guid(self) -> typing.Optional[_uuid.UUID]: ...
    # System.Void Windows.Networking.Connectivity.ConnectionProfileFilter::put_PurposeGuid(Windows.Foundation.IReference`1<System.Guid>)
    @purpose_guid.setter
    def purpose_guid(self, value: typing.Optional[_uuid.UUID]) -> None: ...

@typing.final
class ConnectionSession(winrt.system.Object, 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: ...
    # System.Void Windows.Networking.Connectivity.ConnectionSession::Close()
    def close(self) -> None: ...
    # Windows.Networking.Connectivity.ConnectionProfile Windows.Networking.Connectivity.ConnectionSession::get_ConnectionProfile()
    @_property
    def connection_profile(self) -> ConnectionProfile: ...

@typing.final
class ConnectivityInterval(winrt.system.Object):
    # Windows.Foundation.TimeSpan Windows.Networking.Connectivity.ConnectivityInterval::get_ConnectionDuration()
    @_property
    def connection_duration(self) -> datetime.timedelta: ...
    # Windows.Foundation.DateTime Windows.Networking.Connectivity.ConnectivityInterval::get_StartTime()
    @_property
    def start_time(self) -> datetime.datetime: ...

@typing.final
class ConnectivityManager_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Connectivity.ConnectionSession> Windows.Networking.Connectivity.ConnectivityManager::AcquireConnectionAsync(Windows.Networking.Connectivity.CellularApnContext)
    def acquire_connection_async(cls, cellular_apn_context: CellularApnContext, /) -> windows_foundation.IAsyncOperation[ConnectionSession]: ...
    # System.Void Windows.Networking.Connectivity.ConnectivityManager::AddHttpRoutePolicy(Windows.Networking.Connectivity.RoutePolicy)
    def add_http_route_policy(cls, route_policy: RoutePolicy, /) -> None: ...
    # System.Void Windows.Networking.Connectivity.ConnectivityManager::RemoveHttpRoutePolicy(Windows.Networking.Connectivity.RoutePolicy)
    def remove_http_route_policy(cls, route_policy: RoutePolicy, /) -> None: ...

@typing.final
class ConnectivityManager(winrt.system.Object, metaclass=ConnectivityManager_Static):
    pass

@typing.final
class DataPlanStatus(winrt.system.Object):
    # Windows.Foundation.IReference`1<System.UInt32> Windows.Networking.Connectivity.DataPlanStatus::get_DataLimitInMegabytes()
    @_property
    def data_limit_in_megabytes(self) -> typing.Optional[winrt.system.UInt32]: ...
    # Windows.Networking.Connectivity.DataPlanUsage Windows.Networking.Connectivity.DataPlanStatus::get_DataPlanUsage()
    @_property
    def data_plan_usage(self) -> DataPlanUsage: ...
    # Windows.Foundation.IReference`1<System.UInt64> Windows.Networking.Connectivity.DataPlanStatus::get_InboundBitsPerSecond()
    @_property
    def inbound_bits_per_second(self) -> typing.Optional[winrt.system.UInt64]: ...
    # Windows.Foundation.IReference`1<System.UInt32> Windows.Networking.Connectivity.DataPlanStatus::get_MaxTransferSizeInMegabytes()
    @_property
    def max_transfer_size_in_megabytes(self) -> typing.Optional[winrt.system.UInt32]: ...
    # Windows.Foundation.IReference`1<Windows.Foundation.DateTime> Windows.Networking.Connectivity.DataPlanStatus::get_NextBillingCycle()
    @_property
    def next_billing_cycle(self) -> typing.Optional[datetime.datetime]: ...
    # Windows.Foundation.IReference`1<System.UInt64> Windows.Networking.Connectivity.DataPlanStatus::get_OutboundBitsPerSecond()
    @_property
    def outbound_bits_per_second(self) -> typing.Optional[winrt.system.UInt64]: ...

@typing.final
class DataPlanUsage(winrt.system.Object):
    # Windows.Foundation.DateTime Windows.Networking.Connectivity.DataPlanUsage::get_LastSyncTime()
    @_property
    def last_sync_time(self) -> datetime.datetime: ...
    # System.UInt32 Windows.Networking.Connectivity.DataPlanUsage::get_MegabytesUsed()
    @_property
    def megabytes_used(self) -> winrt.system.UInt32: ...

@typing.final
class DataUsage(winrt.system.Object):
    # System.UInt64 Windows.Networking.Connectivity.DataUsage::get_BytesReceived()
    @_property
    def bytes_received(self) -> winrt.system.UInt64: ...
    # System.UInt64 Windows.Networking.Connectivity.DataUsage::get_BytesSent()
    @_property
    def bytes_sent(self) -> winrt.system.UInt64: ...

@typing.final
class IPInformation(winrt.system.Object):
    # Windows.Networking.Connectivity.NetworkAdapter Windows.Networking.Connectivity.IPInformation::get_NetworkAdapter()
    @_property
    def network_adapter(self) -> NetworkAdapter: ...
    # Windows.Foundation.IReference`1<System.Byte> Windows.Networking.Connectivity.IPInformation::get_PrefixLength()
    @_property
    def prefix_length(self) -> typing.Optional[winrt.system.UInt8]: ...

@typing.final
class LanIdentifier(winrt.system.Object):
    # Windows.Networking.Connectivity.LanIdentifierData Windows.Networking.Connectivity.LanIdentifier::get_InfrastructureId()
    @_property
    def infrastructure_id(self) -> LanIdentifierData: ...
    # System.Guid Windows.Networking.Connectivity.LanIdentifier::get_NetworkAdapterId()
    @_property
    def network_adapter_id(self) -> _uuid.UUID: ...
    # Windows.Networking.Connectivity.LanIdentifierData Windows.Networking.Connectivity.LanIdentifier::get_PortId()
    @_property
    def port_id(self) -> LanIdentifierData: ...

@typing.final
class LanIdentifierData(winrt.system.Object):
    # System.UInt32 Windows.Networking.Connectivity.LanIdentifierData::get_Type()
    @_property
    def type(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVectorView`1<System.Byte> Windows.Networking.Connectivity.LanIdentifierData::get_Value()
    @_property
    def value(self) -> typing.Sequence[winrt.system.UInt8]: ...

@typing.final
class NetworkAdapter(winrt.system.Object):
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Connectivity.ConnectionProfile> Windows.Networking.Connectivity.NetworkAdapter::GetConnectedProfileAsync()
    def get_connected_profile_async(self) -> windows_foundation.IAsyncOperation[ConnectionProfile]: ...
    # System.UInt32 Windows.Networking.Connectivity.NetworkAdapter::get_IanaInterfaceType()
    @_property
    def iana_interface_type(self) -> winrt.system.UInt32: ...
    # System.UInt64 Windows.Networking.Connectivity.NetworkAdapter::get_InboundMaxBitsPerSecond()
    @_property
    def inbound_max_bits_per_second(self) -> winrt.system.UInt64: ...
    # System.Guid Windows.Networking.Connectivity.NetworkAdapter::get_NetworkAdapterId()
    @_property
    def network_adapter_id(self) -> _uuid.UUID: ...
    # Windows.Networking.Connectivity.NetworkItem Windows.Networking.Connectivity.NetworkAdapter::get_NetworkItem()
    @_property
    def network_item(self) -> NetworkItem: ...
    # System.UInt64 Windows.Networking.Connectivity.NetworkAdapter::get_OutboundMaxBitsPerSecond()
    @_property
    def outbound_max_bits_per_second(self) -> winrt.system.UInt64: ...

@typing.final
class NetworkInformation_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Connectivity.ConnectionProfile>> Windows.Networking.Connectivity.NetworkInformation::FindConnectionProfilesAsync(Windows.Networking.Connectivity.ConnectionProfileFilter)
    def find_connection_profiles_async(cls, p_profile_filter: ConnectionProfileFilter, /) -> windows_foundation.IAsyncOperation[typing.Sequence[ConnectionProfile]]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Connectivity.ConnectionProfile> Windows.Networking.Connectivity.NetworkInformation::GetConnectionProfiles()
    def get_connection_profiles(cls) -> typing.Sequence[ConnectionProfile]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Networking.HostName> Windows.Networking.Connectivity.NetworkInformation::GetHostNames()
    def get_host_names(cls) -> typing.Sequence[windows_networking.HostName]: ...
    # Windows.Networking.Connectivity.ConnectionProfile Windows.Networking.Connectivity.NetworkInformation::GetInternetConnectionProfile()
    def get_internet_connection_profile(cls) -> ConnectionProfile: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Connectivity.LanIdentifier> Windows.Networking.Connectivity.NetworkInformation::GetLanIdentifiers()
    def get_lan_identifiers(cls) -> typing.Sequence[LanIdentifier]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Connectivity.ProxyConfiguration> Windows.Networking.Connectivity.NetworkInformation::GetProxyConfigurationAsync(Windows.Foundation.Uri)
    def get_proxy_configuration_async(cls, uri: windows_foundation.Uri, /) -> windows_foundation.IAsyncOperation[ProxyConfiguration]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Networking.EndpointPair> Windows.Networking.Connectivity.NetworkInformation::GetSortedEndpointPairs(Windows.Foundation.Collections.IIterable`1<Windows.Networking.EndpointPair>,Windows.Networking.HostNameSortOptions)
    def get_sorted_endpoint_pairs(cls, destination_list: typing.Iterable[windows_networking.EndpointPair], sort_options: windows_networking.HostNameSortOptions, /) -> typing.Sequence[windows_networking.EndpointPair]: ...
    # Windows.Foundation.EventRegistrationToken Windows.Networking.Connectivity.NetworkInformation::add_NetworkStatusChanged(Windows.Networking.Connectivity.NetworkStatusChangedEventHandler)
    def add_network_status_changed(cls, network_status_handler: NetworkStatusChangedEventHandler, /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Connectivity.NetworkInformation::remove_NetworkStatusChanged(Windows.Foundation.EventRegistrationToken)
    def remove_network_status_changed(cls, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class NetworkInformation(winrt.system.Object, metaclass=NetworkInformation_Static):
    pass

@typing.final
class NetworkItem(winrt.system.Object):
    # Windows.Networking.Connectivity.NetworkTypes Windows.Networking.Connectivity.NetworkItem::GetNetworkTypes()
    def get_network_types(self) -> NetworkTypes: ...
    # System.Guid Windows.Networking.Connectivity.NetworkItem::get_NetworkId()
    @_property
    def network_id(self) -> _uuid.UUID: ...

@typing.final
class NetworkSecuritySettings(winrt.system.Object):
    # Windows.Networking.Connectivity.NetworkAuthenticationType Windows.Networking.Connectivity.NetworkSecuritySettings::get_NetworkAuthenticationType()
    @_property
    def network_authentication_type(self) -> NetworkAuthenticationType: ...
    # Windows.Networking.Connectivity.NetworkEncryptionType Windows.Networking.Connectivity.NetworkSecuritySettings::get_NetworkEncryptionType()
    @_property
    def network_encryption_type(self) -> NetworkEncryptionType: ...

@typing.final
class NetworkStateChangeEventDetails(winrt.system.Object):
    # System.Boolean Windows.Networking.Connectivity.NetworkStateChangeEventDetails::get_HasNewConnectionCost()
    @_property
    def has_new_connection_cost(self) -> bool: ...
    # System.Boolean Windows.Networking.Connectivity.NetworkStateChangeEventDetails::get_HasNewDomainConnectivityLevel()
    @_property
    def has_new_domain_connectivity_level(self) -> bool: ...
    # System.Boolean Windows.Networking.Connectivity.NetworkStateChangeEventDetails::get_HasNewHostNameList()
    @_property
    def has_new_host_name_list(self) -> bool: ...
    # System.Boolean Windows.Networking.Connectivity.NetworkStateChangeEventDetails::get_HasNewInternetConnectionProfile()
    @_property
    def has_new_internet_connection_profile(self) -> bool: ...
    # System.Boolean Windows.Networking.Connectivity.NetworkStateChangeEventDetails::get_HasNewNetworkConnectivityLevel()
    @_property
    def has_new_network_connectivity_level(self) -> bool: ...
    # System.Boolean Windows.Networking.Connectivity.NetworkStateChangeEventDetails::get_HasNewWwanRegistrationState()
    @_property
    def has_new_wwan_registration_state(self) -> bool: ...
    # System.Boolean Windows.Networking.Connectivity.NetworkStateChangeEventDetails::get_HasNewTetheringClientCount()
    @_property
    def has_new_tethering_client_count(self) -> bool: ...
    # System.Boolean Windows.Networking.Connectivity.NetworkStateChangeEventDetails::get_HasNewTetheringOperationalState()
    @_property
    def has_new_tethering_operational_state(self) -> bool: ...

@typing.final
class NetworkUsage(winrt.system.Object):
    # System.UInt64 Windows.Networking.Connectivity.NetworkUsage::get_BytesReceived()
    @_property
    def bytes_received(self) -> winrt.system.UInt64: ...
    # System.UInt64 Windows.Networking.Connectivity.NetworkUsage::get_BytesSent()
    @_property
    def bytes_sent(self) -> winrt.system.UInt64: ...
    # Windows.Foundation.TimeSpan Windows.Networking.Connectivity.NetworkUsage::get_ConnectionDuration()
    @_property
    def connection_duration(self) -> datetime.timedelta: ...

@typing.final
class ProviderNetworkUsage(winrt.system.Object):
    # System.UInt64 Windows.Networking.Connectivity.ProviderNetworkUsage::get_BytesReceived()
    @_property
    def bytes_received(self) -> winrt.system.UInt64: ...
    # System.UInt64 Windows.Networking.Connectivity.ProviderNetworkUsage::get_BytesSent()
    @_property
    def bytes_sent(self) -> winrt.system.UInt64: ...
    # System.String Windows.Networking.Connectivity.ProviderNetworkUsage::get_ProviderId()
    @_property
    def provider_id(self) -> str: ...

@typing.final
class ProxyConfiguration(winrt.system.Object):
    # System.Boolean Windows.Networking.Connectivity.ProxyConfiguration::get_CanConnectDirectly()
    @_property
    def can_connect_directly(self) -> bool: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Foundation.Uri> Windows.Networking.Connectivity.ProxyConfiguration::get_ProxyUris()
    @_property
    def proxy_uris(self) -> typing.Sequence[windows_foundation.Uri]: ...

@typing.final
class RoutePolicy(winrt.system.Object):
    def __new__(cls: typing.Type[Self], connection_profile: ConnectionProfile, host_name: windows_networking.HostName, type: windows_networking.DomainNameType) -> Self: ...
    # Windows.Networking.Connectivity.ConnectionProfile Windows.Networking.Connectivity.RoutePolicy::get_ConnectionProfile()
    @_property
    def connection_profile(self) -> ConnectionProfile: ...
    # Windows.Networking.HostName Windows.Networking.Connectivity.RoutePolicy::get_HostName()
    @_property
    def host_name(self) -> windows_networking.HostName: ...
    # Windows.Networking.DomainNameType Windows.Networking.Connectivity.RoutePolicy::get_HostNameType()
    @_property
    def host_name_type(self) -> windows_networking.DomainNameType: ...

@typing.final
class WlanConnectionProfileDetails(winrt.system.Object):
    # System.String Windows.Networking.Connectivity.WlanConnectionProfileDetails::GetConnectedSsid()
    def get_connected_ssid(self) -> str: ...

@typing.final
class WwanConnectionProfileDetails(winrt.system.Object):
    # Windows.Networking.Connectivity.WwanDataClass Windows.Networking.Connectivity.WwanConnectionProfileDetails::GetCurrentDataClass()
    def get_current_data_class(self) -> WwanDataClass: ...
    # Windows.Networking.Connectivity.WwanNetworkRegistrationState Windows.Networking.Connectivity.WwanConnectionProfileDetails::GetNetworkRegistrationState()
    def get_network_registration_state(self) -> WwanNetworkRegistrationState: ...
    # System.String Windows.Networking.Connectivity.WwanConnectionProfileDetails::get_AccessPointName()
    @_property
    def access_point_name(self) -> str: ...
    # System.String Windows.Networking.Connectivity.WwanConnectionProfileDetails::get_HomeProviderId()
    @_property
    def home_provider_id(self) -> str: ...
    # Windows.Networking.Connectivity.WwanNetworkIPKind Windows.Networking.Connectivity.WwanConnectionProfileDetails::get_IPKind()
    @_property
    def ip_kind(self) -> WwanNetworkIPKind: ...
    # Windows.Foundation.Collections.IVectorView`1<System.Guid> Windows.Networking.Connectivity.WwanConnectionProfileDetails::get_PurposeGuids()
    @_property
    def purpose_guids(self) -> typing.Sequence[_uuid.UUID]: ...

