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

import enum
import datetime
import sys
import types
import typing

import winsdk.system
import winsdk.windows.foundation
import winsdk.windows.storage.streams

class AuthenticationProtocol(enum.IntEnum):
    BASIC = 0
    DIGEST = 1
    NTLM = 2
    KERBEROS = 3
    NEGOTIATE = 4
    CRED_SSP = 5
    CUSTOM = 6

class CredentialSaveOption(enum.IntEnum):
    UNSELECTED = 0
    SELECTED = 1
    HIDDEN = 2

class UserConsentVerificationResult(enum.IntEnum):
    VERIFIED = 0
    DEVICE_NOT_PRESENT = 1
    NOT_CONFIGURED_FOR_USER = 2
    DISABLED_BY_POLICY = 3
    DEVICE_BUSY = 4
    RETRIES_EXHAUSTED = 5
    CANCELED = 6

class UserConsentVerifierAvailability(enum.IntEnum):
    AVAILABLE = 0
    DEVICE_NOT_PRESENT = 1
    NOT_CONFIGURED_FOR_USER = 2
    DISABLED_BY_POLICY = 3
    DEVICE_BUSY = 4

Self = typing.TypeVar('Self')

class CredentialPicker(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> CredentialPicker: ...
    @typing.overload
    @staticmethod
    def pick_async(options: typing.Optional[CredentialPickerOptions], /) -> winsdk.windows.foundation.IAsyncOperation[CredentialPickerResults]: ...
    @typing.overload
    @staticmethod
    def pick_async(target_name: str, message: str, /) -> winsdk.windows.foundation.IAsyncOperation[CredentialPickerResults]: ...
    @typing.overload
    @staticmethod
    def pick_async(target_name: str, message: str, caption: str, /) -> winsdk.windows.foundation.IAsyncOperation[CredentialPickerResults]: ...

class CredentialPickerOptions(winsdk.system.Object):
    target_name: str
    previous_credential: typing.Optional[winsdk.windows.storage.streams.IBuffer]
    message: str
    error_code: winsdk.system.UInt32
    custom_authentication_protocol: str
    credential_save_option: CredentialSaveOption
    caption: str
    caller_saves_credential: winsdk.system.Boolean
    authentication_protocol: AuthenticationProtocol
    always_display_dialog: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> CredentialPickerOptions: ...
    def __new__(cls: typing.Type[CredentialPickerOptions]) -> CredentialPickerOptions:...

class CredentialPickerResults(winsdk.system.Object):
    credential: typing.Optional[winsdk.windows.storage.streams.IBuffer]
    credential_domain_name: str
    credential_password: str
    credential_save_option: CredentialSaveOption
    credential_saved: winsdk.system.Boolean
    credential_user_name: str
    error_code: winsdk.system.UInt32
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> CredentialPickerResults: ...

class UserConsentVerifier(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> UserConsentVerifier: ...
    @staticmethod
    def check_availability_async() -> winsdk.windows.foundation.IAsyncOperation[UserConsentVerifierAvailability]: ...
    @staticmethod
    def request_verification_async(message: str, /) -> winsdk.windows.foundation.IAsyncOperation[UserConsentVerificationResult]: ...

