# 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
from abc import abstractmethod

import winrt._winrt
import winrt.system
import winrt.windows.applicationmodel.activation as windows_applicationmodel_activation
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.security.credentials as windows_security_credentials
import winrt.windows.security.cryptography.certificates as windows_security_cryptography_certificates
import winrt.windows.storage.streams as windows_storage_streams
import winrt.windows.system as windows_system

from winrt.windows.networking.vpn import VpnAppIdType, VpnAuthenticationMethod, VpnChannelActivityEventType, VpnChannelRequestCredentialsOptions, VpnCredentialType, VpnDataPathType, VpnDomainNameType, VpnIPProtocol, VpnManagementConnectionStatus, VpnManagementErrorStatus, VpnNativeProtocolType, VpnPacketBufferStatus, VpnRoutingPolicyType

Self = typing.TypeVar('Self')

@typing.final
class VpnAppId(winrt.system.Object):
    def __new__(cls: typing.Type[Self], type: VpnAppIdType, value: str) -> Self: ...
    # System.String Windows.Networking.Vpn.VpnAppId::get_Value()
    @_property
    def value(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnAppId::put_Value(System.String)
    @value.setter
    def value(self, value: str) -> None: ...
    # Windows.Networking.Vpn.VpnAppIdType Windows.Networking.Vpn.VpnAppId::get_Type()
    @_property
    def type(self) -> VpnAppIdType: ...
    # System.Void Windows.Networking.Vpn.VpnAppId::put_Type(Windows.Networking.Vpn.VpnAppIdType)
    @type.setter
    def type(self, value: VpnAppIdType) -> None: ...

@typing.final
class VpnChannel_Static(winrt._winrt.IInspectable_Static):
    # System.Void Windows.Networking.Vpn.VpnChannel::ProcessEventAsync(System.Object,System.Object)
    def process_event_async(cls, third_party_plug_in: winrt.system.Object, event: winrt.system.Object, /) -> None: ...

@typing.final
class VpnChannel(winrt.system.Object, metaclass=VpnChannel_Static):
    # Windows.Foundation.Collections.ValueSet Windows.Networking.Vpn.VpnChannel::ActivateForeground(System.String,Windows.Foundation.Collections.ValueSet)
    def activate_foreground(self, package_relative_app_id: str, shared_context: windows_foundation_collections.ValueSet, /) -> windows_foundation_collections.ValueSet: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::AddAndAssociateTransport(System.Object,System.Object)
    def add_and_associate_transport(self, transport: winrt.system.Object, context: winrt.system.Object, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::AppendVpnReceivePacketBuffer(Windows.Networking.Vpn.VpnPacketBuffer)
    def append_vpn_receive_packet_buffer(self, decapsulated_packet_buffer: VpnPacketBuffer, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::AppendVpnSendPacketBuffer(Windows.Networking.Vpn.VpnPacketBuffer)
    def append_vpn_send_packet_buffer(self, encapsulated_packet_buffer: VpnPacketBuffer, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::AssociateTransport(System.Object,System.Object)
    def associate_transport(self, main_outer_tunnel_transport: winrt.system.Object, optional_outer_tunnel_transport: winrt.system.Object, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::FlushVpnReceivePacketBuffers()
    def flush_vpn_receive_packet_buffers(self) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::FlushVpnSendPacketBuffers()
    def flush_vpn_send_packet_buffers(self) -> None: ...
    # Windows.Networking.Sockets.ControlChannelTriggerStatus Windows.Networking.Vpn.VpnChannel::GetSlotTypeForTransportContext(System.Object)
    def get_slot_type_for_transport_context(self, context: winrt.system.Object, /) -> windows_networking_sockets.ControlChannelTriggerStatus: ...
    # Windows.Networking.Vpn.VpnPacketBuffer Windows.Networking.Vpn.VpnChannel::GetVpnReceivePacketBuffer()
    def get_vpn_receive_packet_buffer(self) -> VpnPacketBuffer: ...
    # Windows.Networking.Vpn.VpnPacketBuffer Windows.Networking.Vpn.VpnChannel::GetVpnSendPacketBuffer()
    def get_vpn_send_packet_buffer(self) -> VpnPacketBuffer: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::LogDiagnosticMessage(System.String)
    def log_diagnostic_message(self, message: str, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::ReplaceAndAssociateTransport(System.Object,System.Object)
    def replace_and_associate_transport(self, transport: winrt.system.Object, context: winrt.system.Object, /) -> None: ...
    # Windows.Networking.Vpn.VpnPickedCredential Windows.Networking.Vpn.VpnChannel::RequestCredentials(Windows.Networking.Vpn.VpnCredentialType,System.Boolean,System.Boolean,Windows.Security.Cryptography.Certificates.Certificate)
    def request_credentials(self, cred_type: VpnCredentialType, is_retry: bool, is_single_sign_on_credential: bool, certificate: windows_security_cryptography_certificates.Certificate, /) -> VpnPickedCredential: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnCredential> Windows.Networking.Vpn.VpnChannel::RequestCredentialsAsync(Windows.Networking.Vpn.VpnCredentialType)
    def request_credentials_simple_async(self, cred_type: VpnCredentialType, /) -> windows_foundation.IAsyncOperation[VpnCredential]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnCredential> Windows.Networking.Vpn.VpnChannel::RequestCredentialsAsync(Windows.Networking.Vpn.VpnCredentialType,System.UInt32,Windows.Security.Cryptography.Certificates.Certificate)
    def request_credentials_with_certificate_async(self, cred_type: VpnCredentialType, cred_options: winrt.system.UInt32, certificate: windows_security_cryptography_certificates.Certificate, /) -> windows_foundation.IAsyncOperation[VpnCredential]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnCredential> Windows.Networking.Vpn.VpnChannel::RequestCredentialsAsync(Windows.Networking.Vpn.VpnCredentialType,System.UInt32)
    def request_credentials_with_options_async(self, cred_type: VpnCredentialType, cred_options: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[VpnCredential]: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::RequestCustomPrompt(Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Vpn.IVpnCustomPrompt>)
    def request_custom_prompt(self, custom_prompt: typing.Sequence[IVpnCustomPrompt], /) -> None: ...
    # Windows.Foundation.IAsyncAction Windows.Networking.Vpn.VpnChannel::RequestCustomPromptAsync(Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Vpn.IVpnCustomPromptElement>)
    def request_custom_prompt_async(self, custom_prompt_element: typing.Sequence[IVpnCustomPromptElement], /) -> windows_foundation.IAsyncAction: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::RequestVpnPacketBuffer(Windows.Networking.Vpn.VpnDataPathType,Windows.Networking.Vpn.VpnPacketBuffer&)
    def request_vpn_packet_buffer(self, type: VpnDataPathType, /) -> VpnPacketBuffer: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::SetAllowedSslTlsVersions(System.Object,System.Boolean)
    def set_allowed_ssl_tls_versions(self, tunnel_transport: winrt.system.Object, use_tls12: bool, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::SetErrorMessage(System.String)
    def set_error_message(self, message: str, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::Start(Windows.Foundation.Collections.IVectorView`1<Windows.Networking.HostName>,Windows.Foundation.Collections.IVectorView`1<Windows.Networking.HostName>,Windows.Networking.Vpn.VpnInterfaceId,Windows.Networking.Vpn.VpnRouteAssignment,Windows.Networking.Vpn.VpnNamespaceAssignment,System.UInt32,System.UInt32,System.Boolean,System.Object,System.Object)
    def start(self, assigned_client_ipv4list: typing.Sequence[windows_networking.HostName], assigned_client_ipv6list: typing.Sequence[windows_networking.HostName], vpn_interface_id: VpnInterfaceId, route_scope: VpnRouteAssignment, namespace_scope: VpnNamespaceAssignment, mtu_size: winrt.system.UInt32, max_frame_size: winrt.system.UInt32, optimize_for_low_cost_network: bool, main_outer_tunnel_transport: winrt.system.Object, optional_outer_tunnel_transport: winrt.system.Object, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::StartExistingTransports(Windows.Foundation.Collections.IVectorView`1<Windows.Networking.HostName>,Windows.Foundation.Collections.IVectorView`1<Windows.Networking.HostName>,Windows.Networking.Vpn.VpnInterfaceId,Windows.Networking.Vpn.VpnRouteAssignment,Windows.Networking.Vpn.VpnDomainNameAssignment,System.UInt32,System.UInt32,System.Boolean)
    def start_existing_transports(self, assigned_client_ipv4list: typing.Sequence[windows_networking.HostName], assigned_client_ipv6list: typing.Sequence[windows_networking.HostName], vpn_interface_id: VpnInterfaceId, assigned_routes: VpnRouteAssignment, assigned_domain_name: VpnDomainNameAssignment, mtu_size: winrt.system.UInt32, max_frame_size: winrt.system.UInt32, reserved: bool, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::StartReconnectingTransport(System.Object,System.Object)
    def start_reconnecting_transport(self, transport: winrt.system.Object, context: winrt.system.Object, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::StartWithMainTransport(Windows.Foundation.Collections.IVectorView`1<Windows.Networking.HostName>,Windows.Foundation.Collections.IVectorView`1<Windows.Networking.HostName>,Windows.Networking.Vpn.VpnInterfaceId,Windows.Networking.Vpn.VpnRouteAssignment,Windows.Networking.Vpn.VpnDomainNameAssignment,System.UInt32,System.UInt32,System.Boolean,System.Object)
    def start_with_main_transport(self, assigned_client_ipv4list: typing.Sequence[windows_networking.HostName], assigned_client_ipv6list: typing.Sequence[windows_networking.HostName], vpn_interface_id: VpnInterfaceId, assigned_routes: VpnRouteAssignment, assigned_domain_name: VpnDomainNameAssignment, mtu_size: winrt.system.UInt32, max_frame_size: winrt.system.UInt32, reserved: bool, main_outer_tunnel_transport: winrt.system.Object, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::StartWithTrafficFilter(Windows.Foundation.Collections.IIterable`1<Windows.Networking.HostName>,Windows.Foundation.Collections.IIterable`1<Windows.Networking.HostName>,Windows.Networking.Vpn.VpnInterfaceId,Windows.Networking.Vpn.VpnRouteAssignment,Windows.Networking.Vpn.VpnDomainNameAssignment,System.UInt32,System.UInt32,System.Boolean,Windows.Foundation.Collections.IIterable`1<System.Object>,Windows.Networking.Vpn.VpnTrafficFilterAssignment)
    def start_with_multiple_transports(self, assigned_client_ipv4_addresses: typing.Iterable[windows_networking.HostName], assigned_client_ipv6_addresses: typing.Iterable[windows_networking.HostName], vpninterface_id: VpnInterfaceId, assigned_routes: VpnRouteAssignment, assigned_namespace: VpnDomainNameAssignment, mtu_size: winrt.system.UInt32, max_frame_size: winrt.system.UInt32, reserved: bool, transports: typing.Iterable[winrt.system.Object], assigned_traffic_filters: VpnTrafficFilterAssignment, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::StartWithTrafficFilter(Windows.Foundation.Collections.IVectorView`1<Windows.Networking.HostName>,Windows.Foundation.Collections.IVectorView`1<Windows.Networking.HostName>,Windows.Networking.Vpn.VpnInterfaceId,Windows.Networking.Vpn.VpnRouteAssignment,Windows.Networking.Vpn.VpnDomainNameAssignment,System.UInt32,System.UInt32,System.Boolean,System.Object,System.Object,Windows.Networking.Vpn.VpnTrafficFilterAssignment)
    def start_with_traffic_filter(self, assigned_client_ipv4_list: typing.Sequence[windows_networking.HostName], assigned_client_ipv6_list: typing.Sequence[windows_networking.HostName], vpn_interface_id: VpnInterfaceId, assigned_routes: VpnRouteAssignment, assigned_namespace: VpnDomainNameAssignment, mtu_size: winrt.system.UInt32, max_frame_size: winrt.system.UInt32, reserved: bool, main_outer_tunnel_transport: winrt.system.Object, optional_outer_tunnel_transport: winrt.system.Object, assigned_traffic_filters: VpnTrafficFilterAssignment, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::Stop()
    def stop(self) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::TerminateConnection(System.String)
    def terminate_connection(self, message: str, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Networking.Vpn.VpnChannel::add_ActivityChange(Windows.Foundation.TypedEventHandler`2<Windows.Networking.Vpn.VpnChannel,Windows.Networking.Vpn.VpnChannelActivityEventArgs>)
    def add_activity_change(self, handler: windows_foundation.TypedEventHandler[VpnChannel, VpnChannelActivityEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::remove_ActivityChange(Windows.Foundation.EventRegistrationToken)
    def remove_activity_change(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Networking.Vpn.VpnChannel::add_ActivityStateChange(Windows.Foundation.TypedEventHandler`2<Windows.Networking.Vpn.VpnChannel,Windows.Networking.Vpn.VpnChannelActivityStateChangedArgs>)
    def add_activity_state_change(self, handler: windows_foundation.TypedEventHandler[VpnChannel, VpnChannelActivityStateChangedArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::remove_ActivityStateChange(Windows.Foundation.EventRegistrationToken)
    def remove_activity_state_change(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.Object Windows.Networking.Vpn.VpnChannel::get_PlugInContext()
    @_property
    def plug_in_context(self) -> winrt.system.Object: ...
    # System.Void Windows.Networking.Vpn.VpnChannel::put_PlugInContext(System.Object)
    @plug_in_context.setter
    def plug_in_context(self, value: winrt.system.Object) -> None: ...
    # Windows.Networking.Vpn.VpnChannelConfiguration Windows.Networking.Vpn.VpnChannel::get_Configuration()
    @_property
    def configuration(self) -> VpnChannelConfiguration: ...
    # System.UInt32 Windows.Networking.Vpn.VpnChannel::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Networking.Vpn.VpnSystemHealth Windows.Networking.Vpn.VpnChannel::get_SystemHealth()
    @_property
    def system_health(self) -> VpnSystemHealth: ...
    # System.Object Windows.Networking.Vpn.VpnChannel::get_CurrentRequestTransportContext()
    @_property
    def current_request_transport_context(self) -> winrt.system.Object: ...

@typing.final
class VpnChannelActivityEventArgs(winrt.system.Object):
    # Windows.Networking.Vpn.VpnChannelActivityEventType Windows.Networking.Vpn.VpnChannelActivityEventArgs::get_Type()
    @_property
    def type(self) -> VpnChannelActivityEventType: ...

@typing.final
class VpnChannelActivityStateChangedArgs(winrt.system.Object):
    # Windows.Networking.Vpn.VpnChannelActivityEventType Windows.Networking.Vpn.VpnChannelActivityStateChangedArgs::get_ActivityState()
    @_property
    def activity_state(self) -> VpnChannelActivityEventType: ...

@typing.final
class VpnChannelConfiguration(winrt.system.Object):
    # System.String Windows.Networking.Vpn.VpnChannelConfiguration::get_CustomField()
    @_property
    def custom_field(self) -> str: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Networking.HostName> Windows.Networking.Vpn.VpnChannelConfiguration::get_ServerHostNameList()
    @_property
    def server_host_name_list(self) -> typing.Sequence[windows_networking.HostName]: ...
    # System.String Windows.Networking.Vpn.VpnChannelConfiguration::get_ServerServiceName()
    @_property
    def server_service_name(self) -> str: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Foundation.Uri> Windows.Networking.Vpn.VpnChannelConfiguration::get_ServerUris()
    @_property
    def server_uris(self) -> typing.Sequence[windows_foundation.Uri]: ...

@typing.final
class VpnCredential(winrt.system.Object, IVpnCredential):
    # System.String Windows.Networking.Vpn.VpnCredential::get_AdditionalPin()
    @_property
    def additional_pin(self) -> str: ...
    # Windows.Security.Cryptography.Certificates.Certificate Windows.Networking.Vpn.VpnCredential::get_CertificateCredential()
    @_property
    def certificate_credential(self) -> windows_security_cryptography_certificates.Certificate: ...
    # Windows.Security.Credentials.PasswordCredential Windows.Networking.Vpn.VpnCredential::get_OldPasswordCredential()
    @_property
    def old_password_credential(self) -> windows_security_credentials.PasswordCredential: ...
    # Windows.Security.Credentials.PasswordCredential Windows.Networking.Vpn.VpnCredential::get_PasskeyCredential()
    @_property
    def passkey_credential(self) -> windows_security_credentials.PasswordCredential: ...

@typing.final
class VpnCustomCheckBox(winrt.system.Object, IVpnCustomPrompt):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomCheckBox::get_InitialCheckState()
    @_property
    def initial_check_state(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomCheckBox::put_InitialCheckState(System.Boolean)
    @initial_check_state.setter
    def initial_check_state(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomCheckBox::get_Checked()
    @_property
    def checked(self) -> bool: ...
    # System.String Windows.Networking.Vpn.VpnCustomCheckBox::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomCheckBox::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomCheckBox::get_Compulsory()
    @_property
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomCheckBox::put_Compulsory(System.Boolean)
    @compulsory.setter
    def compulsory(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomCheckBox::get_Bordered()
    @_property
    def bordered(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomCheckBox::put_Bordered(System.Boolean)
    @bordered.setter
    def bordered(self, value: bool) -> None: ...

@typing.final
class VpnCustomComboBox(winrt.system.Object, IVpnCustomPrompt):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Networking.Vpn.VpnCustomComboBox::get_OptionsText()
    @_property
    def options_text(self) -> typing.Sequence[str]: ...
    # System.Void Windows.Networking.Vpn.VpnCustomComboBox::put_OptionsText(Windows.Foundation.Collections.IVectorView`1<System.String>)
    @options_text.setter
    def options_text(self, value: typing.Sequence[str]) -> None: ...
    # System.UInt32 Windows.Networking.Vpn.VpnCustomComboBox::get_Selected()
    @_property
    def selected(self) -> winrt.system.UInt32: ...
    # System.String Windows.Networking.Vpn.VpnCustomComboBox::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomComboBox::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomComboBox::get_Compulsory()
    @_property
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomComboBox::put_Compulsory(System.Boolean)
    @compulsory.setter
    def compulsory(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomComboBox::get_Bordered()
    @_property
    def bordered(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomComboBox::put_Bordered(System.Boolean)
    @bordered.setter
    def bordered(self, value: bool) -> None: ...

@typing.final
class VpnCustomEditBox(winrt.system.Object, IVpnCustomPrompt):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomEditBox::get_NoEcho()
    @_property
    def no_echo(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomEditBox::put_NoEcho(System.Boolean)
    @no_echo.setter
    def no_echo(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.VpnCustomEditBox::get_DefaultText()
    @_property
    def default_text(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomEditBox::put_DefaultText(System.String)
    @default_text.setter
    def default_text(self, value: str) -> None: ...
    # System.String Windows.Networking.Vpn.VpnCustomEditBox::get_Text()
    @_property
    def text(self) -> str: ...
    # System.String Windows.Networking.Vpn.VpnCustomEditBox::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomEditBox::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomEditBox::get_Compulsory()
    @_property
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomEditBox::put_Compulsory(System.Boolean)
    @compulsory.setter
    def compulsory(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomEditBox::get_Bordered()
    @_property
    def bordered(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomEditBox::put_Bordered(System.Boolean)
    @bordered.setter
    def bordered(self, value: bool) -> None: ...

@typing.final
class VpnCustomErrorBox(winrt.system.Object, IVpnCustomPrompt):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Networking.Vpn.VpnCustomErrorBox::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomErrorBox::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomErrorBox::get_Compulsory()
    @_property
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomErrorBox::put_Compulsory(System.Boolean)
    @compulsory.setter
    def compulsory(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomErrorBox::get_Bordered()
    @_property
    def bordered(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomErrorBox::put_Bordered(System.Boolean)
    @bordered.setter
    def bordered(self, value: bool) -> None: ...

@typing.final
class VpnCustomPromptBooleanInput(winrt.system.Object, IVpnCustomPromptElement):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptBooleanInput::get_InitialValue()
    @_property
    def initial_value(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptBooleanInput::put_InitialValue(System.Boolean)
    @initial_value.setter
    def initial_value(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptBooleanInput::get_Value()
    @_property
    def value(self) -> bool: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptBooleanInput::get_Emphasized()
    @_property
    def emphasized(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptBooleanInput::put_Emphasized(System.Boolean)
    @emphasized.setter
    def emphasized(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.VpnCustomPromptBooleanInput::get_DisplayName()
    @_property
    def display_name(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptBooleanInput::put_DisplayName(System.String)
    @display_name.setter
    def display_name(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptBooleanInput::get_Compulsory()
    @_property
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptBooleanInput::put_Compulsory(System.Boolean)
    @compulsory.setter
    def compulsory(self, value: bool) -> None: ...

@typing.final
class VpnCustomPromptOptionSelector(winrt.system.Object, IVpnCustomPromptElement):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptOptionSelector::get_Emphasized()
    @_property
    def emphasized(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptOptionSelector::put_Emphasized(System.Boolean)
    @emphasized.setter
    def emphasized(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.VpnCustomPromptOptionSelector::get_DisplayName()
    @_property
    def display_name(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptOptionSelector::put_DisplayName(System.String)
    @display_name.setter
    def display_name(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptOptionSelector::get_Compulsory()
    @_property
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptOptionSelector::put_Compulsory(System.Boolean)
    @compulsory.setter
    def compulsory(self, value: bool) -> None: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Networking.Vpn.VpnCustomPromptOptionSelector::get_Options()
    @_property
    def options(self) -> typing.MutableSequence[str]: ...
    # System.UInt32 Windows.Networking.Vpn.VpnCustomPromptOptionSelector::get_SelectedIndex()
    @_property
    def selected_index(self) -> winrt.system.UInt32: ...

@typing.final
class VpnCustomPromptText(winrt.system.Object, IVpnCustomPromptElement):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptText::get_Emphasized()
    @_property
    def emphasized(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptText::put_Emphasized(System.Boolean)
    @emphasized.setter
    def emphasized(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.VpnCustomPromptText::get_DisplayName()
    @_property
    def display_name(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptText::put_DisplayName(System.String)
    @display_name.setter
    def display_name(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptText::get_Compulsory()
    @_property
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptText::put_Compulsory(System.Boolean)
    @compulsory.setter
    def compulsory(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.VpnCustomPromptText::get_Text()
    @_property
    def text(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptText::put_Text(System.String)
    @text.setter
    def text(self, value: str) -> None: ...

@typing.final
class VpnCustomPromptTextInput(winrt.system.Object, IVpnCustomPromptElement):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptTextInput::get_Emphasized()
    @_property
    def emphasized(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptTextInput::put_Emphasized(System.Boolean)
    @emphasized.setter
    def emphasized(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.VpnCustomPromptTextInput::get_DisplayName()
    @_property
    def display_name(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptTextInput::put_DisplayName(System.String)
    @display_name.setter
    def display_name(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptTextInput::get_Compulsory()
    @_property
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptTextInput::put_Compulsory(System.Boolean)
    @compulsory.setter
    def compulsory(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.VpnCustomPromptTextInput::get_PlaceholderText()
    @_property
    def placeholder_text(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptTextInput::put_PlaceholderText(System.String)
    @placeholder_text.setter
    def placeholder_text(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomPromptTextInput::get_IsTextHidden()
    @_property
    def is_text_hidden(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomPromptTextInput::put_IsTextHidden(System.Boolean)
    @is_text_hidden.setter
    def is_text_hidden(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.VpnCustomPromptTextInput::get_Text()
    @_property
    def text(self) -> str: ...

@typing.final
class VpnCustomTextBox(winrt.system.Object, IVpnCustomPrompt):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Networking.Vpn.VpnCustomTextBox::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomTextBox::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomTextBox::get_Compulsory()
    @_property
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomTextBox::put_Compulsory(System.Boolean)
    @compulsory.setter
    def compulsory(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnCustomTextBox::get_Bordered()
    @_property
    def bordered(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnCustomTextBox::put_Bordered(System.Boolean)
    @bordered.setter
    def bordered(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.VpnCustomTextBox::get_DisplayText()
    @_property
    def display_text(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnCustomTextBox::put_DisplayText(System.String)
    @display_text.setter
    def display_text(self, value: str) -> None: ...

@typing.final
class VpnDomainNameAssignment(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Uri Windows.Networking.Vpn.VpnDomainNameAssignment::get_ProxyAutoConfigurationUri()
    @_property
    def proxy_auto_configuration_uri(self) -> windows_foundation.Uri: ...
    # System.Void Windows.Networking.Vpn.VpnDomainNameAssignment::put_ProxyAutoConfigurationUri(Windows.Foundation.Uri)
    @proxy_auto_configuration_uri.setter
    def proxy_auto_configuration_uri(self, value: windows_foundation.Uri) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnDomainNameInfo> Windows.Networking.Vpn.VpnDomainNameAssignment::get_DomainNameList()
    @_property
    def domain_name_list(self) -> typing.MutableSequence[VpnDomainNameInfo]: ...

@typing.final
class VpnDomainNameInfo(winrt.system.Object):
    def __new__(cls: typing.Type[Self], name: str, name_type: VpnDomainNameType, dns_server_list: typing.Iterable[windows_networking.HostName], proxy_server_list: typing.Iterable[windows_networking.HostName]) -> Self: ...
    # Windows.Networking.Vpn.VpnDomainNameType Windows.Networking.Vpn.VpnDomainNameInfo::get_DomainNameType()
    @_property
    def domain_name_type(self) -> VpnDomainNameType: ...
    # System.Void Windows.Networking.Vpn.VpnDomainNameInfo::put_DomainNameType(Windows.Networking.Vpn.VpnDomainNameType)
    @domain_name_type.setter
    def domain_name_type(self, value: VpnDomainNameType) -> None: ...
    # Windows.Networking.HostName Windows.Networking.Vpn.VpnDomainNameInfo::get_DomainName()
    @_property
    def domain_name(self) -> windows_networking.HostName: ...
    # System.Void Windows.Networking.Vpn.VpnDomainNameInfo::put_DomainName(Windows.Networking.HostName)
    @domain_name.setter
    def domain_name(self, value: windows_networking.HostName) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.HostName> Windows.Networking.Vpn.VpnDomainNameInfo::get_DnsServers()
    @_property
    def dns_servers(self) -> typing.MutableSequence[windows_networking.HostName]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.HostName> Windows.Networking.Vpn.VpnDomainNameInfo::get_WebProxyServers()
    @_property
    def web_proxy_servers(self) -> typing.MutableSequence[windows_networking.HostName]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Foundation.Uri> Windows.Networking.Vpn.VpnDomainNameInfo::get_WebProxyUris()
    @_property
    def web_proxy_uris(self) -> typing.MutableSequence[windows_foundation.Uri]: ...

@typing.final
class VpnForegroundActivatedEventArgs(winrt.system.Object, windows_applicationmodel_activation.IActivatedEventArgsWithUser, windows_applicationmodel_activation.IActivatedEventArgs):
    # Windows.ApplicationModel.Activation.ActivationKind Windows.Networking.Vpn.VpnForegroundActivatedEventArgs::get_Kind()
    @_property
    def kind(self) -> windows_applicationmodel_activation.ActivationKind: ...
    # Windows.ApplicationModel.Activation.ApplicationExecutionState Windows.Networking.Vpn.VpnForegroundActivatedEventArgs::get_PreviousExecutionState()
    @_property
    def previous_execution_state(self) -> windows_applicationmodel_activation.ApplicationExecutionState: ...
    # Windows.ApplicationModel.Activation.SplashScreen Windows.Networking.Vpn.VpnForegroundActivatedEventArgs::get_SplashScreen()
    @_property
    def splash_screen(self) -> windows_applicationmodel_activation.SplashScreen: ...
    # Windows.System.User Windows.Networking.Vpn.VpnForegroundActivatedEventArgs::get_User()
    @_property
    def user(self) -> windows_system.User: ...
    # Windows.Networking.Vpn.VpnForegroundActivationOperation Windows.Networking.Vpn.VpnForegroundActivatedEventArgs::get_ActivationOperation()
    @_property
    def activation_operation(self) -> VpnForegroundActivationOperation: ...
    # System.String Windows.Networking.Vpn.VpnForegroundActivatedEventArgs::get_ProfileName()
    @_property
    def profile_name(self) -> str: ...
    # Windows.Foundation.Collections.ValueSet Windows.Networking.Vpn.VpnForegroundActivatedEventArgs::get_SharedContext()
    @_property
    def shared_context(self) -> windows_foundation_collections.ValueSet: ...

@typing.final
class VpnForegroundActivationOperation(winrt.system.Object):
    # System.Void Windows.Networking.Vpn.VpnForegroundActivationOperation::Complete(Windows.Foundation.Collections.ValueSet)
    def complete(self, result: windows_foundation_collections.ValueSet, /) -> None: ...

@typing.final
class VpnInterfaceId(winrt.system.Object):
    def __new__(cls: typing.Type[Self], address: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer]) -> Self: ...
    # System.Void Windows.Networking.Vpn.VpnInterfaceId::GetAddressInfo(System.Byte[]&)
    def get_address_info(self) -> winrt.system.Array[winrt.system.UInt8]: ...

@typing.final
class VpnManagementAgent(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnManagementErrorStatus> Windows.Networking.Vpn.VpnManagementAgent::AddProfileFromObjectAsync(Windows.Networking.Vpn.IVpnProfile)
    def add_profile_from_object_async(self, profile: IVpnProfile, /) -> windows_foundation.IAsyncOperation[VpnManagementErrorStatus]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnManagementErrorStatus> Windows.Networking.Vpn.VpnManagementAgent::AddProfileFromXmlAsync(System.String)
    def add_profile_from_xml_async(self, xml: str, /) -> windows_foundation.IAsyncOperation[VpnManagementErrorStatus]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnManagementErrorStatus> Windows.Networking.Vpn.VpnManagementAgent::ConnectProfileAsync(Windows.Networking.Vpn.IVpnProfile)
    def connect_profile_async(self, profile: IVpnProfile, /) -> windows_foundation.IAsyncOperation[VpnManagementErrorStatus]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnManagementErrorStatus> Windows.Networking.Vpn.VpnManagementAgent::ConnectProfileWithPasswordCredentialAsync(Windows.Networking.Vpn.IVpnProfile,Windows.Security.Credentials.PasswordCredential)
    def connect_profile_with_password_credential_async(self, profile: IVpnProfile, password_credential: windows_security_credentials.PasswordCredential, /) -> windows_foundation.IAsyncOperation[VpnManagementErrorStatus]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnManagementErrorStatus> Windows.Networking.Vpn.VpnManagementAgent::DeleteProfileAsync(Windows.Networking.Vpn.IVpnProfile)
    def delete_profile_async(self, profile: IVpnProfile, /) -> windows_foundation.IAsyncOperation[VpnManagementErrorStatus]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnManagementErrorStatus> Windows.Networking.Vpn.VpnManagementAgent::DisconnectProfileAsync(Windows.Networking.Vpn.IVpnProfile)
    def disconnect_profile_async(self, profile: IVpnProfile, /) -> windows_foundation.IAsyncOperation[VpnManagementErrorStatus]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Networking.Vpn.IVpnProfile>> Windows.Networking.Vpn.VpnManagementAgent::GetProfilesAsync()
    def get_profiles_async(self) -> windows_foundation.IAsyncOperation[typing.Sequence[IVpnProfile]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnManagementErrorStatus> Windows.Networking.Vpn.VpnManagementAgent::UpdateProfileFromObjectAsync(Windows.Networking.Vpn.IVpnProfile)
    def update_profile_from_object_async(self, profile: IVpnProfile, /) -> windows_foundation.IAsyncOperation[VpnManagementErrorStatus]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Networking.Vpn.VpnManagementErrorStatus> Windows.Networking.Vpn.VpnManagementAgent::UpdateProfileFromXmlAsync(System.String)
    def update_profile_from_xml_async(self, xml: str, /) -> windows_foundation.IAsyncOperation[VpnManagementErrorStatus]: ...

@typing.final
class VpnNamespaceAssignment(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Uri Windows.Networking.Vpn.VpnNamespaceAssignment::get_ProxyAutoConfigUri()
    @_property
    def proxy_auto_config_uri(self) -> windows_foundation.Uri: ...
    # System.Void Windows.Networking.Vpn.VpnNamespaceAssignment::put_ProxyAutoConfigUri(Windows.Foundation.Uri)
    @proxy_auto_config_uri.setter
    def proxy_auto_config_uri(self, value: windows_foundation.Uri) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnNamespaceInfo> Windows.Networking.Vpn.VpnNamespaceAssignment::get_NamespaceList()
    @_property
    def namespace_list(self) -> typing.MutableSequence[VpnNamespaceInfo]: ...
    # System.Void Windows.Networking.Vpn.VpnNamespaceAssignment::put_NamespaceList(Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnNamespaceInfo>)
    @namespace_list.setter
    def namespace_list(self, value: typing.MutableSequence[VpnNamespaceInfo]) -> None: ...

@typing.final
class VpnNamespaceInfo(winrt.system.Object):
    def __new__(cls: typing.Type[Self], name: str, dns_server_list: typing.MutableSequence[windows_networking.HostName], proxy_server_list: typing.MutableSequence[windows_networking.HostName]) -> Self: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.HostName> Windows.Networking.Vpn.VpnNamespaceInfo::get_WebProxyServers()
    @_property
    def web_proxy_servers(self) -> typing.MutableSequence[windows_networking.HostName]: ...
    # System.Void Windows.Networking.Vpn.VpnNamespaceInfo::put_WebProxyServers(Windows.Foundation.Collections.IVector`1<Windows.Networking.HostName>)
    @web_proxy_servers.setter
    def web_proxy_servers(self, value: typing.MutableSequence[windows_networking.HostName]) -> None: ...
    # System.String Windows.Networking.Vpn.VpnNamespaceInfo::get_Namespace()
    @_property
    def namespace(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnNamespaceInfo::put_Namespace(System.String)
    @namespace.setter
    def namespace(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.HostName> Windows.Networking.Vpn.VpnNamespaceInfo::get_DnsServers()
    @_property
    def dns_servers(self) -> typing.MutableSequence[windows_networking.HostName]: ...
    # System.Void Windows.Networking.Vpn.VpnNamespaceInfo::put_DnsServers(Windows.Foundation.Collections.IVector`1<Windows.Networking.HostName>)
    @dns_servers.setter
    def dns_servers(self, value: typing.MutableSequence[windows_networking.HostName]) -> None: ...

@typing.final
class VpnNativeProfile(winrt.system.Object, IVpnProfile):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Networking.Vpn.VpnAuthenticationMethod Windows.Networking.Vpn.VpnNativeProfile::get_UserAuthenticationMethod()
    @_property
    def user_authentication_method(self) -> VpnAuthenticationMethod: ...
    # System.Void Windows.Networking.Vpn.VpnNativeProfile::put_UserAuthenticationMethod(Windows.Networking.Vpn.VpnAuthenticationMethod)
    @user_authentication_method.setter
    def user_authentication_method(self, value: VpnAuthenticationMethod) -> None: ...
    # Windows.Networking.Vpn.VpnAuthenticationMethod Windows.Networking.Vpn.VpnNativeProfile::get_TunnelAuthenticationMethod()
    @_property
    def tunnel_authentication_method(self) -> VpnAuthenticationMethod: ...
    # System.Void Windows.Networking.Vpn.VpnNativeProfile::put_TunnelAuthenticationMethod(Windows.Networking.Vpn.VpnAuthenticationMethod)
    @tunnel_authentication_method.setter
    def tunnel_authentication_method(self, value: VpnAuthenticationMethod) -> None: ...
    # Windows.Networking.Vpn.VpnRoutingPolicyType Windows.Networking.Vpn.VpnNativeProfile::get_RoutingPolicyType()
    @_property
    def routing_policy_type(self) -> VpnRoutingPolicyType: ...
    # System.Void Windows.Networking.Vpn.VpnNativeProfile::put_RoutingPolicyType(Windows.Networking.Vpn.VpnRoutingPolicyType)
    @routing_policy_type.setter
    def routing_policy_type(self, value: VpnRoutingPolicyType) -> None: ...
    # System.String Windows.Networking.Vpn.VpnNativeProfile::get_EapConfiguration()
    @_property
    def eap_configuration(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnNativeProfile::put_EapConfiguration(System.String)
    @eap_configuration.setter
    def eap_configuration(self, value: str) -> None: ...
    # Windows.Networking.Vpn.VpnNativeProtocolType Windows.Networking.Vpn.VpnNativeProfile::get_NativeProtocolType()
    @_property
    def native_protocol_type(self) -> VpnNativeProtocolType: ...
    # System.Void Windows.Networking.Vpn.VpnNativeProfile::put_NativeProtocolType(Windows.Networking.Vpn.VpnNativeProtocolType)
    @native_protocol_type.setter
    def native_protocol_type(self, value: VpnNativeProtocolType) -> None: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Networking.Vpn.VpnNativeProfile::get_Servers()
    @_property
    def servers(self) -> typing.MutableSequence[str]: ...
    # System.Boolean Windows.Networking.Vpn.VpnNativeProfile::get_RequireVpnClientAppUI()
    @_property
    def require_vpn_client_app_ui(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnNativeProfile::put_RequireVpnClientAppUI(System.Boolean)
    @require_vpn_client_app_ui.setter
    def require_vpn_client_app_ui(self, value: bool) -> None: ...
    # Windows.Networking.Vpn.VpnManagementConnectionStatus Windows.Networking.Vpn.VpnNativeProfile::get_ConnectionStatus()
    @_property
    def connection_status(self) -> VpnManagementConnectionStatus: ...
    # System.String Windows.Networking.Vpn.VpnNativeProfile::get_ProfileName()
    @_property
    def profile_name(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnNativeProfile::put_ProfileName(System.String)
    @profile_name.setter
    def profile_name(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnNativeProfile::get_RememberCredentials()
    @_property
    def remember_credentials(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnNativeProfile::put_RememberCredentials(System.Boolean)
    @remember_credentials.setter
    def remember_credentials(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnNativeProfile::get_AlwaysOn()
    @_property
    def always_on(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnNativeProfile::put_AlwaysOn(System.Boolean)
    @always_on.setter
    def always_on(self, value: bool) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute> Windows.Networking.Vpn.VpnNativeProfile::get_Routes()
    @_property
    def routes(self) -> typing.MutableSequence[VpnRoute]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnAppId> Windows.Networking.Vpn.VpnNativeProfile::get_AppTriggers()
    @_property
    def app_triggers(self) -> typing.MutableSequence[VpnAppId]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnTrafficFilter> Windows.Networking.Vpn.VpnNativeProfile::get_TrafficFilters()
    @_property
    def traffic_filters(self) -> typing.MutableSequence[VpnTrafficFilter]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnDomainNameInfo> Windows.Networking.Vpn.VpnNativeProfile::get_DomainNameInfoList()
    @_property
    def domain_name_info_list(self) -> typing.MutableSequence[VpnDomainNameInfo]: ...

@typing.final
class VpnPacketBuffer(winrt.system.Object):
    def __new__(cls: typing.Type[Self], parent_buffer: VpnPacketBuffer, offset: winrt.system.UInt32, length: winrt.system.UInt32) -> Self: ...
    # System.UInt32 Windows.Networking.Vpn.VpnPacketBuffer::get_TransportAffinity()
    @_property
    def transport_affinity(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Networking.Vpn.VpnPacketBuffer::put_TransportAffinity(System.UInt32)
    @transport_affinity.setter
    def transport_affinity(self, value: winrt.system.UInt32) -> None: ...
    # Windows.Networking.Vpn.VpnPacketBufferStatus Windows.Networking.Vpn.VpnPacketBuffer::get_Status()
    @_property
    def status(self) -> VpnPacketBufferStatus: ...
    # System.Void Windows.Networking.Vpn.VpnPacketBuffer::put_Status(Windows.Networking.Vpn.VpnPacketBufferStatus)
    @status.setter
    def status(self, value: VpnPacketBufferStatus) -> None: ...
    # Windows.Storage.Streams.Buffer Windows.Networking.Vpn.VpnPacketBuffer::get_Buffer()
    @_property
    def buffer(self) -> windows_storage_streams.Buffer: ...
    # Windows.Networking.Vpn.VpnAppId Windows.Networking.Vpn.VpnPacketBuffer::get_AppId()
    @_property
    def app_id(self) -> VpnAppId: ...
    # System.Object Windows.Networking.Vpn.VpnPacketBuffer::get_TransportContext()
    @_property
    def transport_context(self) -> winrt.system.Object: ...
    # System.Void Windows.Networking.Vpn.VpnPacketBuffer::put_TransportContext(System.Object)
    @transport_context.setter
    def transport_context(self, value: winrt.system.Object) -> None: ...

@typing.final
class VpnPacketBufferList(winrt.system.Object):
    def __iter__(self) -> typing.Iterator[VpnPacketBuffer]: ...
    # System.Void Windows.Networking.Vpn.VpnPacketBufferList::AddAtBegin(Windows.Networking.Vpn.VpnPacketBuffer)
    def add_at_begin(self, next_vpn_packet_buffer: VpnPacketBuffer, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnPacketBufferList::Append(Windows.Networking.Vpn.VpnPacketBuffer)
    def append(self, next_vpn_packet_buffer: VpnPacketBuffer, /) -> None: ...
    # System.Void Windows.Networking.Vpn.VpnPacketBufferList::Clear()
    def clear(self) -> None: ...
    # Windows.Foundation.Collections.IIterator`1<Windows.Networking.Vpn.VpnPacketBuffer> Windows.Networking.Vpn.VpnPacketBufferList::First()
    def first(self) -> windows_foundation_collections.IIterator[VpnPacketBuffer]: ...
    # Windows.Networking.Vpn.VpnPacketBuffer Windows.Networking.Vpn.VpnPacketBufferList::RemoveAtBegin()
    def remove_at_begin(self) -> VpnPacketBuffer: ...
    # Windows.Networking.Vpn.VpnPacketBuffer Windows.Networking.Vpn.VpnPacketBufferList::RemoveAtEnd()
    def remove_at_end(self) -> VpnPacketBuffer: ...
    # Windows.Networking.Vpn.VpnPacketBufferStatus Windows.Networking.Vpn.VpnPacketBufferList::get_Status()
    @_property
    def status(self) -> VpnPacketBufferStatus: ...
    # System.Void Windows.Networking.Vpn.VpnPacketBufferList::put_Status(Windows.Networking.Vpn.VpnPacketBufferStatus)
    @status.setter
    def status(self, value: VpnPacketBufferStatus) -> None: ...
    # System.UInt32 Windows.Networking.Vpn.VpnPacketBufferList::get_Size()
    @_property
    def size(self) -> winrt.system.UInt32: ...

@typing.final
class VpnPickedCredential(winrt.system.Object):
    # System.String Windows.Networking.Vpn.VpnPickedCredential::get_AdditionalPin()
    @_property
    def additional_pin(self) -> str: ...
    # Windows.Security.Credentials.PasswordCredential Windows.Networking.Vpn.VpnPickedCredential::get_OldPasswordCredential()
    @_property
    def old_password_credential(self) -> windows_security_credentials.PasswordCredential: ...
    # Windows.Security.Credentials.PasswordCredential Windows.Networking.Vpn.VpnPickedCredential::get_PasskeyCredential()
    @_property
    def passkey_credential(self) -> windows_security_credentials.PasswordCredential: ...

@typing.final
class VpnPlugInProfile(winrt.system.Object, IVpnProfile):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Networking.Vpn.VpnPlugInProfile::get_VpnPluginPackageFamilyName()
    @_property
    def vpn_plugin_package_family_name(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnPlugInProfile::put_VpnPluginPackageFamilyName(System.String)
    @vpn_plugin_package_family_name.setter
    def vpn_plugin_package_family_name(self, value: str) -> None: ...
    # System.String Windows.Networking.Vpn.VpnPlugInProfile::get_CustomConfiguration()
    @_property
    def custom_configuration(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnPlugInProfile::put_CustomConfiguration(System.String)
    @custom_configuration.setter
    def custom_configuration(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Foundation.Uri> Windows.Networking.Vpn.VpnPlugInProfile::get_ServerUris()
    @_property
    def server_uris(self) -> typing.MutableSequence[windows_foundation.Uri]: ...
    # System.Boolean Windows.Networking.Vpn.VpnPlugInProfile::get_RequireVpnClientAppUI()
    @_property
    def require_vpn_client_app_ui(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnPlugInProfile::put_RequireVpnClientAppUI(System.Boolean)
    @require_vpn_client_app_ui.setter
    def require_vpn_client_app_ui(self, value: bool) -> None: ...
    # Windows.Networking.Vpn.VpnManagementConnectionStatus Windows.Networking.Vpn.VpnPlugInProfile::get_ConnectionStatus()
    @_property
    def connection_status(self) -> VpnManagementConnectionStatus: ...
    # System.String Windows.Networking.Vpn.VpnPlugInProfile::get_ProfileName()
    @_property
    def profile_name(self) -> str: ...
    # System.Void Windows.Networking.Vpn.VpnPlugInProfile::put_ProfileName(System.String)
    @profile_name.setter
    def profile_name(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnPlugInProfile::get_RememberCredentials()
    @_property
    def remember_credentials(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnPlugInProfile::put_RememberCredentials(System.Boolean)
    @remember_credentials.setter
    def remember_credentials(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnPlugInProfile::get_AlwaysOn()
    @_property
    def always_on(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnPlugInProfile::put_AlwaysOn(System.Boolean)
    @always_on.setter
    def always_on(self, value: bool) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnAppId> Windows.Networking.Vpn.VpnPlugInProfile::get_AppTriggers()
    @_property
    def app_triggers(self) -> typing.MutableSequence[VpnAppId]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnDomainNameInfo> Windows.Networking.Vpn.VpnPlugInProfile::get_DomainNameInfoList()
    @_property
    def domain_name_info_list(self) -> typing.MutableSequence[VpnDomainNameInfo]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute> Windows.Networking.Vpn.VpnPlugInProfile::get_Routes()
    @_property
    def routes(self) -> typing.MutableSequence[VpnRoute]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnTrafficFilter> Windows.Networking.Vpn.VpnPlugInProfile::get_TrafficFilters()
    @_property
    def traffic_filters(self) -> typing.MutableSequence[VpnTrafficFilter]: ...

@typing.final
class VpnRoute(winrt.system.Object):
    def __new__(cls: typing.Type[Self], address: windows_networking.HostName, prefix_size: winrt.system.UInt8) -> Self: ...
    # System.Byte Windows.Networking.Vpn.VpnRoute::get_PrefixSize()
    @_property
    def prefix_size(self) -> winrt.system.UInt8: ...
    # System.Void Windows.Networking.Vpn.VpnRoute::put_PrefixSize(System.Byte)
    @prefix_size.setter
    def prefix_size(self, value: winrt.system.UInt8) -> None: ...
    # Windows.Networking.HostName Windows.Networking.Vpn.VpnRoute::get_Address()
    @_property
    def address(self) -> windows_networking.HostName: ...
    # System.Void Windows.Networking.Vpn.VpnRoute::put_Address(Windows.Networking.HostName)
    @address.setter
    def address(self, value: windows_networking.HostName) -> None: ...

@typing.final
class VpnRouteAssignment(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute> Windows.Networking.Vpn.VpnRouteAssignment::get_Ipv6InclusionRoutes()
    @_property
    def ipv6_inclusion_routes(self) -> typing.MutableSequence[VpnRoute]: ...
    # System.Void Windows.Networking.Vpn.VpnRouteAssignment::put_Ipv6InclusionRoutes(Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute>)
    @ipv6_inclusion_routes.setter
    def ipv6_inclusion_routes(self, value: typing.MutableSequence[VpnRoute]) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute> Windows.Networking.Vpn.VpnRouteAssignment::get_Ipv6ExclusionRoutes()
    @_property
    def ipv6_exclusion_routes(self) -> typing.MutableSequence[VpnRoute]: ...
    # System.Void Windows.Networking.Vpn.VpnRouteAssignment::put_Ipv6ExclusionRoutes(Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute>)
    @ipv6_exclusion_routes.setter
    def ipv6_exclusion_routes(self, value: typing.MutableSequence[VpnRoute]) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute> Windows.Networking.Vpn.VpnRouteAssignment::get_Ipv4InclusionRoutes()
    @_property
    def ipv4_inclusion_routes(self) -> typing.MutableSequence[VpnRoute]: ...
    # System.Void Windows.Networking.Vpn.VpnRouteAssignment::put_Ipv4InclusionRoutes(Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute>)
    @ipv4_inclusion_routes.setter
    def ipv4_inclusion_routes(self, value: typing.MutableSequence[VpnRoute]) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute> Windows.Networking.Vpn.VpnRouteAssignment::get_Ipv4ExclusionRoutes()
    @_property
    def ipv4_exclusion_routes(self) -> typing.MutableSequence[VpnRoute]: ...
    # System.Void Windows.Networking.Vpn.VpnRouteAssignment::put_Ipv4ExclusionRoutes(Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute>)
    @ipv4_exclusion_routes.setter
    def ipv4_exclusion_routes(self, value: typing.MutableSequence[VpnRoute]) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnRouteAssignment::get_ExcludeLocalSubnets()
    @_property
    def exclude_local_subnets(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnRouteAssignment::put_ExcludeLocalSubnets(System.Boolean)
    @exclude_local_subnets.setter
    def exclude_local_subnets(self, value: bool) -> None: ...

@typing.final
class VpnSystemHealth(winrt.system.Object):
    # Windows.Storage.Streams.Buffer Windows.Networking.Vpn.VpnSystemHealth::get_StatementOfHealth()
    @_property
    def statement_of_health(self) -> windows_storage_streams.Buffer: ...

@typing.final
class VpnTrafficFilter(winrt.system.Object):
    def __new__(cls: typing.Type[Self], app_id: VpnAppId) -> Self: ...
    # Windows.Networking.Vpn.VpnRoutingPolicyType Windows.Networking.Vpn.VpnTrafficFilter::get_RoutingPolicyType()
    @_property
    def routing_policy_type(self) -> VpnRoutingPolicyType: ...
    # System.Void Windows.Networking.Vpn.VpnTrafficFilter::put_RoutingPolicyType(Windows.Networking.Vpn.VpnRoutingPolicyType)
    @routing_policy_type.setter
    def routing_policy_type(self, value: VpnRoutingPolicyType) -> None: ...
    # Windows.Networking.Vpn.VpnIPProtocol Windows.Networking.Vpn.VpnTrafficFilter::get_Protocol()
    @_property
    def protocol(self) -> VpnIPProtocol: ...
    # System.Void Windows.Networking.Vpn.VpnTrafficFilter::put_Protocol(Windows.Networking.Vpn.VpnIPProtocol)
    @protocol.setter
    def protocol(self, value: VpnIPProtocol) -> None: ...
    # Windows.Networking.Vpn.VpnAppId Windows.Networking.Vpn.VpnTrafficFilter::get_AppId()
    @_property
    def app_id(self) -> VpnAppId: ...
    # System.Void Windows.Networking.Vpn.VpnTrafficFilter::put_AppId(Windows.Networking.Vpn.VpnAppId)
    @app_id.setter
    def app_id(self, value: VpnAppId) -> None: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Networking.Vpn.VpnTrafficFilter::get_AppClaims()
    @_property
    def app_claims(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Networking.Vpn.VpnTrafficFilter::get_LocalAddressRanges()
    @_property
    def local_address_ranges(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Networking.Vpn.VpnTrafficFilter::get_LocalPortRanges()
    @_property
    def local_port_ranges(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Networking.Vpn.VpnTrafficFilter::get_RemoteAddressRanges()
    @_property
    def remote_address_ranges(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Networking.Vpn.VpnTrafficFilter::get_RemotePortRanges()
    @_property
    def remote_port_ranges(self) -> typing.MutableSequence[str]: ...

@typing.final
class VpnTrafficFilterAssignment(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Boolean Windows.Networking.Vpn.VpnTrafficFilterAssignment::get_AllowOutbound()
    @_property
    def allow_outbound(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnTrafficFilterAssignment::put_AllowOutbound(System.Boolean)
    @allow_outbound.setter
    def allow_outbound(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.VpnTrafficFilterAssignment::get_AllowInbound()
    @_property
    def allow_inbound(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.VpnTrafficFilterAssignment::put_AllowInbound(System.Boolean)
    @allow_inbound.setter
    def allow_inbound(self, value: bool) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnTrafficFilter> Windows.Networking.Vpn.VpnTrafficFilterAssignment::get_TrafficFilterList()
    @_property
    def traffic_filter_list(self) -> typing.MutableSequence[VpnTrafficFilter]: ...

@typing.final
class _IVpnChannelStatics: ...

class IVpnChannelStatics(winrt._winrt.IInspectable):
    # System.Void Windows.Networking.Vpn.IVpnChannelStatics::ProcessEventAsync(System.Object,System.Object)
    @abstractmethod
    def process_event_async(self, third_party_plug_in: winrt.system.Object, event: winrt.system.Object, /) -> None: ...

@typing.final
class _IVpnCredential: ...

class IVpnCredential(winrt._winrt.IInspectable):
    # System.String Windows.Networking.Vpn.IVpnCredential::get_AdditionalPin()
    @_property
    @abstractmethod
    def additional_pin(self) -> str: ...
    # Windows.Security.Cryptography.Certificates.Certificate Windows.Networking.Vpn.IVpnCredential::get_CertificateCredential()
    @_property
    @abstractmethod
    def certificate_credential(self) -> windows_security_cryptography_certificates.Certificate: ...
    # Windows.Security.Credentials.PasswordCredential Windows.Networking.Vpn.IVpnCredential::get_OldPasswordCredential()
    @_property
    @abstractmethod
    def old_password_credential(self) -> windows_security_credentials.PasswordCredential: ...
    # Windows.Security.Credentials.PasswordCredential Windows.Networking.Vpn.IVpnCredential::get_PasskeyCredential()
    @_property
    @abstractmethod
    def passkey_credential(self) -> windows_security_credentials.PasswordCredential: ...

@typing.final
class _IVpnCustomPrompt: ...

class IVpnCustomPrompt(winrt._winrt.IInspectable):
    # System.Boolean Windows.Networking.Vpn.IVpnCustomPrompt::get_Bordered()
    @_property
    @abstractmethod
    def bordered(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.IVpnCustomPrompt::put_Bordered(System.Boolean)
    @bordered.setter
    @abstractmethod
    def bordered(self, value: bool) -> None: ...
    # System.Boolean Windows.Networking.Vpn.IVpnCustomPrompt::get_Compulsory()
    @_property
    @abstractmethod
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.IVpnCustomPrompt::put_Compulsory(System.Boolean)
    @compulsory.setter
    @abstractmethod
    def compulsory(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.IVpnCustomPrompt::get_Label()
    @_property
    @abstractmethod
    def label(self) -> str: ...
    # System.Void Windows.Networking.Vpn.IVpnCustomPrompt::put_Label(System.String)
    @label.setter
    @abstractmethod
    def label(self, value: str) -> None: ...

@typing.final
class _IVpnCustomPromptElement: ...

class IVpnCustomPromptElement(winrt._winrt.IInspectable):
    # System.Boolean Windows.Networking.Vpn.IVpnCustomPromptElement::get_Compulsory()
    @_property
    @abstractmethod
    def compulsory(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.IVpnCustomPromptElement::put_Compulsory(System.Boolean)
    @compulsory.setter
    @abstractmethod
    def compulsory(self, value: bool) -> None: ...
    # System.String Windows.Networking.Vpn.IVpnCustomPromptElement::get_DisplayName()
    @_property
    @abstractmethod
    def display_name(self) -> str: ...
    # System.Void Windows.Networking.Vpn.IVpnCustomPromptElement::put_DisplayName(System.String)
    @display_name.setter
    @abstractmethod
    def display_name(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.IVpnCustomPromptElement::get_Emphasized()
    @_property
    @abstractmethod
    def emphasized(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.IVpnCustomPromptElement::put_Emphasized(System.Boolean)
    @emphasized.setter
    @abstractmethod
    def emphasized(self, value: bool) -> None: ...

@typing.final
class _IVpnDomainNameInfoFactory: ...

class IVpnDomainNameInfoFactory(winrt._winrt.IInspectable):
    # Windows.Networking.Vpn.VpnDomainNameInfo Windows.Networking.Vpn.IVpnDomainNameInfoFactory::CreateVpnDomainNameInfo(System.String,Windows.Networking.Vpn.VpnDomainNameType,Windows.Foundation.Collections.IIterable`1<Windows.Networking.HostName>,Windows.Foundation.Collections.IIterable`1<Windows.Networking.HostName>)
    @abstractmethod
    def create_vpn_domain_name_info(self, name: str, name_type: VpnDomainNameType, dns_server_list: typing.Iterable[windows_networking.HostName], proxy_server_list: typing.Iterable[windows_networking.HostName], /) -> VpnDomainNameInfo: ...

@typing.final
class _IVpnInterfaceIdFactory: ...

class IVpnInterfaceIdFactory(winrt._winrt.IInspectable):
    # Windows.Networking.Vpn.VpnInterfaceId Windows.Networking.Vpn.IVpnInterfaceIdFactory::CreateVpnInterfaceId(System.Byte[])
    @abstractmethod
    def create_vpn_interface_id(self, address: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer], /) -> VpnInterfaceId: ...

@typing.final
class _IVpnNamespaceInfoFactory: ...

class IVpnNamespaceInfoFactory(winrt._winrt.IInspectable):
    # Windows.Networking.Vpn.VpnNamespaceInfo Windows.Networking.Vpn.IVpnNamespaceInfoFactory::CreateVpnNamespaceInfo(System.String,Windows.Foundation.Collections.IVector`1<Windows.Networking.HostName>,Windows.Foundation.Collections.IVector`1<Windows.Networking.HostName>)
    @abstractmethod
    def create_vpn_namespace_info(self, name: str, dns_server_list: typing.MutableSequence[windows_networking.HostName], proxy_server_list: typing.MutableSequence[windows_networking.HostName], /) -> VpnNamespaceInfo: ...

@typing.final
class _IVpnPacketBufferFactory: ...

class IVpnPacketBufferFactory(winrt._winrt.IInspectable):
    # Windows.Networking.Vpn.VpnPacketBuffer Windows.Networking.Vpn.IVpnPacketBufferFactory::CreateVpnPacketBuffer(Windows.Networking.Vpn.VpnPacketBuffer,System.UInt32,System.UInt32)
    @abstractmethod
    def create_vpn_packet_buffer(self, parent_buffer: VpnPacketBuffer, offset: winrt.system.UInt32, length: winrt.system.UInt32, /) -> VpnPacketBuffer: ...

@typing.final
class _IVpnPlugIn: ...

class IVpnPlugIn(winrt._winrt.IInspectable):
    # System.Void Windows.Networking.Vpn.IVpnPlugIn::Connect(Windows.Networking.Vpn.VpnChannel)
    @abstractmethod
    def connect(self, channel: VpnChannel, /) -> None: ...
    # System.Void Windows.Networking.Vpn.IVpnPlugIn::Decapsulate(Windows.Networking.Vpn.VpnChannel,Windows.Networking.Vpn.VpnPacketBuffer,Windows.Networking.Vpn.VpnPacketBufferList,Windows.Networking.Vpn.VpnPacketBufferList)
    @abstractmethod
    def decapsulate(self, channel: VpnChannel, encap_buffer: VpnPacketBuffer, decapsulated_packets: VpnPacketBufferList, control_packets_to_send: VpnPacketBufferList, /) -> None: ...
    # System.Void Windows.Networking.Vpn.IVpnPlugIn::Disconnect(Windows.Networking.Vpn.VpnChannel)
    @abstractmethod
    def disconnect(self, channel: VpnChannel, /) -> None: ...
    # System.Void Windows.Networking.Vpn.IVpnPlugIn::Encapsulate(Windows.Networking.Vpn.VpnChannel,Windows.Networking.Vpn.VpnPacketBufferList,Windows.Networking.Vpn.VpnPacketBufferList)
    @abstractmethod
    def encapsulate(self, channel: VpnChannel, packets: VpnPacketBufferList, encapulated_packets: VpnPacketBufferList, /) -> None: ...
    # System.Void Windows.Networking.Vpn.IVpnPlugIn::GetKeepAlivePayload(Windows.Networking.Vpn.VpnChannel,Windows.Networking.Vpn.VpnPacketBuffer&)
    @abstractmethod
    def get_keep_alive_payload(self, channel: VpnChannel, /) -> VpnPacketBuffer: ...

@typing.final
class _IVpnPlugInReconnectTransport: ...

class IVpnPlugInReconnectTransport(winrt._winrt.IInspectable):
    # System.Void Windows.Networking.Vpn.IVpnPlugInReconnectTransport::ReconnectTransport(Windows.Networking.Vpn.VpnChannel,System.Object)
    @abstractmethod
    def reconnect_transport(self, channel: VpnChannel, context: winrt.system.Object, /) -> None: ...

@typing.final
class _IVpnProfile: ...

class IVpnProfile(winrt._winrt.IInspectable):
    # System.Boolean Windows.Networking.Vpn.IVpnProfile::get_AlwaysOn()
    @_property
    @abstractmethod
    def always_on(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.IVpnProfile::put_AlwaysOn(System.Boolean)
    @always_on.setter
    @abstractmethod
    def always_on(self, value: bool) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnAppId> Windows.Networking.Vpn.IVpnProfile::get_AppTriggers()
    @_property
    @abstractmethod
    def app_triggers(self) -> typing.MutableSequence[VpnAppId]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnDomainNameInfo> Windows.Networking.Vpn.IVpnProfile::get_DomainNameInfoList()
    @_property
    @abstractmethod
    def domain_name_info_list(self) -> typing.MutableSequence[VpnDomainNameInfo]: ...
    # System.String Windows.Networking.Vpn.IVpnProfile::get_ProfileName()
    @_property
    @abstractmethod
    def profile_name(self) -> str: ...
    # System.Void Windows.Networking.Vpn.IVpnProfile::put_ProfileName(System.String)
    @profile_name.setter
    @abstractmethod
    def profile_name(self, value: str) -> None: ...
    # System.Boolean Windows.Networking.Vpn.IVpnProfile::get_RememberCredentials()
    @_property
    @abstractmethod
    def remember_credentials(self) -> bool: ...
    # System.Void Windows.Networking.Vpn.IVpnProfile::put_RememberCredentials(System.Boolean)
    @remember_credentials.setter
    @abstractmethod
    def remember_credentials(self, value: bool) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnRoute> Windows.Networking.Vpn.IVpnProfile::get_Routes()
    @_property
    @abstractmethod
    def routes(self) -> typing.MutableSequence[VpnRoute]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Networking.Vpn.VpnTrafficFilter> Windows.Networking.Vpn.IVpnProfile::get_TrafficFilters()
    @_property
    @abstractmethod
    def traffic_filters(self) -> typing.MutableSequence[VpnTrafficFilter]: ...

@typing.final
class _IVpnRouteFactory: ...

class IVpnRouteFactory(winrt._winrt.IInspectable):
    # Windows.Networking.Vpn.VpnRoute Windows.Networking.Vpn.IVpnRouteFactory::CreateVpnRoute(Windows.Networking.HostName,System.Byte)
    @abstractmethod
    def create_vpn_route(self, address: windows_networking.HostName, prefix_size: winrt.system.UInt8, /) -> VpnRoute: ...

