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

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

from winrt.windows.devices.smartcards import SmartCardActivationPolicyChangeResult, SmartCardAppletIdGroupActivationPolicy, SmartCardAutomaticResponseStatus, SmartCardCryptogramAlgorithm, SmartCardCryptogramGeneratorOperationStatus, SmartCardCryptogramMaterialPackageConfirmationResponseFormat, SmartCardCryptogramMaterialPackageFormat, SmartCardCryptogramMaterialProtectionMethod, SmartCardCryptogramMaterialType, SmartCardCryptogramPlacementOptions, SmartCardCryptogramStorageKeyAlgorithm, SmartCardCryptogramStorageKeyCapabilities, SmartCardCryptographicKeyAttestationStatus, SmartCardEmulationCategory, SmartCardEmulationType, SmartCardEmulatorConnectionDeactivatedReason, SmartCardEmulatorConnectionSource, SmartCardEmulatorEnablementPolicy, SmartCardLaunchBehavior, SmartCardPinCharacterPolicyOption, SmartCardReaderKind, SmartCardReaderStatus, SmartCardStatus, SmartCardTriggerType, SmartCardUnlockPromptingBehavior
from winrt.windows.devices.smartcards import SmartCardPinResetHandler

Self = typing.TypeVar('Self')

class CardAddedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CardAddedEventArgs: ...
    @_property
    def smart_card(self) -> typing.Optional[SmartCard]: ...

class CardRemovedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> CardRemovedEventArgs: ...
    @_property
    def smart_card(self) -> typing.Optional[SmartCard]: ...

class KnownSmartCardAppletIds_Static(type):
    @_property
    def payment_system_environment(cls) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def proximity_payment_system_environment(cls) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...

class KnownSmartCardAppletIds(winrt.system.Object, metaclass=KnownSmartCardAppletIds_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> KnownSmartCardAppletIds: ...

class SmartCard(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCard: ...
    def connect_async(self) -> winrt.windows.foundation.IAsyncOperation[SmartCardConnection]: ...
    def get_answer_to_reset_async(self) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.storage.streams.IBuffer]: ...
    def get_status_async(self) -> winrt.windows.foundation.IAsyncOperation[SmartCardStatus]: ...
    @_property
    def reader(self) -> typing.Optional[SmartCardReader]: ...

class SmartCardAppletIdGroup_Static(type):
    @_property
    def max_applet_ids(cls) -> winrt.system.UInt16: ...

class SmartCardAppletIdGroup(winrt.system.Object, metaclass=SmartCardAppletIdGroup_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardAppletIdGroup: ...
    @typing.overload
    def __new__(cls: typing.Type[SmartCardAppletIdGroup], display_name: str, applet_ids: winrt.windows.foundation.collections.IVector[winrt.windows.storage.streams.IBuffer], emulation_category: SmartCardEmulationCategory, emulation_type: SmartCardEmulationType) -> SmartCardAppletIdGroup:...
    @typing.overload
    def __new__(cls: typing.Type[SmartCardAppletIdGroup]) -> SmartCardAppletIdGroup:...
    @_property
    def smart_card_emulation_type(self) -> SmartCardEmulationType: ...
    @smart_card_emulation_type.setter
    def smart_card_emulation_type(self, value: SmartCardEmulationType) -> None: ...
    @_property
    def smart_card_emulation_category(self) -> SmartCardEmulationCategory: ...
    @smart_card_emulation_category.setter
    def smart_card_emulation_category(self, value: SmartCardEmulationCategory) -> None: ...
    @_property
    def display_name(self) -> str: ...
    @display_name.setter
    def display_name(self, value: str) -> None: ...
    @_property
    def automatic_enablement(self) -> bool: ...
    @automatic_enablement.setter
    def automatic_enablement(self, value: bool) -> None: ...
    @_property
    def applet_ids(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[winrt.windows.storage.streams.IBuffer]]: ...
    @_property
    def secure_user_authentication_required(self) -> bool: ...
    @secure_user_authentication_required.setter
    def secure_user_authentication_required(self, value: bool) -> None: ...
    @_property
    def logo(self) -> typing.Optional[winrt.windows.storage.streams.IRandomAccessStreamReference]: ...
    @logo.setter
    def logo(self, value: typing.Optional[winrt.windows.storage.streams.IRandomAccessStreamReference]) -> None: ...
    @_property
    def description(self) -> str: ...
    @description.setter
    def description(self, value: str) -> None: ...
    @_property
    def properties(self) -> typing.Optional[winrt.windows.foundation.collections.ValueSet]: ...

class SmartCardAppletIdGroupRegistration(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardAppletIdGroupRegistration: ...
    def request_activation_policy_change_async(self, policy: SmartCardAppletIdGroupActivationPolicy, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardActivationPolicyChangeResult]: ...
    def set_automatic_response_apdus_async(self, apdus: typing.Iterable[SmartCardAutomaticResponseApdu], /) -> winrt.windows.foundation.IAsyncAction: ...
    def set_properties_async(self, props: typing.Optional[winrt.windows.foundation.collections.ValueSet], /) -> winrt.windows.foundation.IAsyncAction: ...
    @_property
    def activation_policy(self) -> SmartCardAppletIdGroupActivationPolicy: ...
    @_property
    def applet_id_group(self) -> typing.Optional[SmartCardAppletIdGroup]: ...
    @_property
    def id(self) -> _uuid.UUID: ...
    @_property
    def smart_card_reader_id(self) -> str: ...

class SmartCardAutomaticResponseApdu(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardAutomaticResponseApdu: ...
    def __new__(cls: typing.Type[SmartCardAutomaticResponseApdu], command_apdu: typing.Optional[winrt.windows.storage.streams.IBuffer], response_apdu: typing.Optional[winrt.windows.storage.streams.IBuffer]) -> SmartCardAutomaticResponseApdu:...
    @_property
    def should_match_length(self) -> bool: ...
    @should_match_length.setter
    def should_match_length(self, value: bool) -> None: ...
    @_property
    def response_apdu(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @response_apdu.setter
    def response_apdu(self, value: typing.Optional[winrt.windows.storage.streams.IBuffer]) -> None: ...
    @_property
    def command_apdu_bit_mask(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @command_apdu_bit_mask.setter
    def command_apdu_bit_mask(self, value: typing.Optional[winrt.windows.storage.streams.IBuffer]) -> None: ...
    @_property
    def command_apdu(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @command_apdu.setter
    def command_apdu(self, value: typing.Optional[winrt.windows.storage.streams.IBuffer]) -> None: ...
    @_property
    def applet_id(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @applet_id.setter
    def applet_id(self, value: typing.Optional[winrt.windows.storage.streams.IBuffer]) -> None: ...
    @_property
    def output_state(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @output_state.setter
    def output_state(self, value: typing.Optional[typing.Optional[winrt.system.UInt32]]) -> None: ...
    @_property
    def input_state(self) -> typing.Optional[typing.Optional[winrt.system.UInt32]]: ...
    @input_state.setter
    def input_state(self, value: typing.Optional[typing.Optional[winrt.system.UInt32]]) -> None: ...
    @_property
    def allow_when_cryptogram_generator_not_prepared(self) -> bool: ...
    @allow_when_cryptogram_generator_not_prepared.setter
    def allow_when_cryptogram_generator_not_prepared(self, value: bool) -> None: ...

class SmartCardChallengeContext(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardChallengeContext: ...
    def change_administrative_key_async(self, response: typing.Optional[winrt.windows.storage.streams.IBuffer], new_administrative_key: typing.Optional[winrt.windows.storage.streams.IBuffer], /) -> winrt.windows.foundation.IAsyncAction: ...
    def close(self) -> None: ...
    @typing.overload
    def provision_async(self, response: typing.Optional[winrt.windows.storage.streams.IBuffer], format_card: bool, /) -> winrt.windows.foundation.IAsyncAction: ...
    @typing.overload
    def provision_async(self, response: typing.Optional[winrt.windows.storage.streams.IBuffer], format_card: bool, new_card_id: _uuid.UUID, /) -> winrt.windows.foundation.IAsyncAction: ...
    def verify_response_async(self, response: typing.Optional[winrt.windows.storage.streams.IBuffer], /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    @_property
    def challenge(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...

class SmartCardConnection(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardConnection: ...
    def close(self) -> None: ...
    def transmit_async(self, command: typing.Optional[winrt.windows.storage.streams.IBuffer], /) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.storage.streams.IBuffer]: ...

class SmartCardCryptogramGenerator_Static(type):
    def get_smart_card_cryptogram_generator_async(cls) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGenerator]: ...
    def is_supported(cls) -> bool: ...

class SmartCardCryptogramGenerator(winrt.system.Object, metaclass=SmartCardCryptogramGenerator_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardCryptogramGenerator: ...
    def create_cryptogram_material_storage_key_async(self, prompting_behavior: SmartCardUnlockPromptingBehavior, storage_key_name: str, algorithm: SmartCardCryptogramStorageKeyAlgorithm, capabilities: SmartCardCryptogramStorageKeyCapabilities, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGeneratorOperationStatus]: ...
    def delete_cryptogram_material_package_async(self, material_package_name: str, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGeneratorOperationStatus]: ...
    def delete_cryptogram_material_storage_key_async(self, storage_key_name: str, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGeneratorOperationStatus]: ...
    def get_all_cryptogram_material_characteristics_async(self, prompting_behavior: SmartCardUnlockPromptingBehavior, material_package_name: str, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult]: ...
    @typing.overload
    def get_all_cryptogram_material_package_characteristics_async(self) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult]: ...
    @typing.overload
    def get_all_cryptogram_material_package_characteristics_async(self, storage_key_name: str, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult]: ...
    def get_all_cryptogram_storage_key_characteristics_async(self) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult]: ...
    def import_cryptogram_material_package_async(self, format: SmartCardCryptogramMaterialPackageFormat, storage_key_name: str, material_package_name: str, cryptogram_material_package: typing.Optional[winrt.windows.storage.streams.IBuffer], /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGeneratorOperationStatus]: ...
    def request_cryptogram_material_storage_key_info_async(self, prompting_behavior: SmartCardUnlockPromptingBehavior, storage_key_name: str, format: winrt.windows.security.cryptography.core.CryptographicPublicKeyBlobType, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramStorageKeyInfo]: ...
    def request_unlock_cryptogram_material_for_use_async(self, prompting_behavior: SmartCardUnlockPromptingBehavior, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGeneratorOperationStatus]: ...
    def try_prove_possession_of_cryptogram_material_package_async(self, prompting_behavior: SmartCardUnlockPromptingBehavior, response_format: SmartCardCryptogramMaterialPackageConfirmationResponseFormat, material_package_name: str, material_name: str, challenge: typing.Optional[winrt.windows.storage.streams.IBuffer], /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramMaterialPossessionProof]: ...
    def validate_request_apdu_async(self, prompting_behavior: SmartCardUnlockPromptingBehavior, apdu_to_validate: typing.Optional[winrt.windows.storage.streams.IBuffer], cryptogram_placement_steps: typing.Iterable[SmartCardCryptogramPlacementStep], /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGeneratorOperationStatus]: ...
    @_property
    def supported_cryptogram_algorithms(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramAlgorithm]]: ...
    @_property
    def supported_cryptogram_material_package_confirmation_response_formats(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramMaterialPackageConfirmationResponseFormat]]: ...
    @_property
    def supported_cryptogram_material_package_formats(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramMaterialPackageFormat]]: ...
    @_property
    def supported_cryptogram_material_types(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramMaterialType]]: ...
    @_property
    def supported_smart_card_cryptogram_storage_key_capabilities(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramStorageKeyCapabilities]]: ...

class SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult: ...
    def __new__(cls: typing.Type[SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult]) -> SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult:...
    @_property
    def characteristics(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramMaterialCharacteristics]]: ...
    @_property
    def operation_status(self) -> SmartCardCryptogramGeneratorOperationStatus: ...

class SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult: ...
    def __new__(cls: typing.Type[SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult]) -> SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult:...
    @_property
    def characteristics(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramMaterialPackageCharacteristics]]: ...
    @_property
    def operation_status(self) -> SmartCardCryptogramGeneratorOperationStatus: ...

class SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult: ...
    def __new__(cls: typing.Type[SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult]) -> SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult:...
    @_property
    def characteristics(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramStorageKeyCharacteristics]]: ...
    @_property
    def operation_status(self) -> SmartCardCryptogramGeneratorOperationStatus: ...

class SmartCardCryptogramMaterialCharacteristics(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardCryptogramMaterialCharacteristics: ...
    def __new__(cls: typing.Type[SmartCardCryptogramMaterialCharacteristics]) -> SmartCardCryptogramMaterialCharacteristics:...
    @_property
    def allowed_algorithms(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramAlgorithm]]: ...
    @_property
    def allowed_proof_of_possession_algorithms(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramMaterialPackageConfirmationResponseFormat]]: ...
    @_property
    def allowed_validations(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[SmartCardCryptogramAlgorithm]]: ...
    @_property
    def material_length(self) -> winrt.system.Int32: ...
    @_property
    def material_name(self) -> str: ...
    @_property
    def material_type(self) -> SmartCardCryptogramMaterialType: ...
    @_property
    def protection_method(self) -> SmartCardCryptogramMaterialProtectionMethod: ...
    @_property
    def protection_version(self) -> winrt.system.Int32: ...

class SmartCardCryptogramMaterialPackageCharacteristics(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardCryptogramMaterialPackageCharacteristics: ...
    def __new__(cls: typing.Type[SmartCardCryptogramMaterialPackageCharacteristics]) -> SmartCardCryptogramMaterialPackageCharacteristics:...
    @_property
    def date_imported(self) -> datetime.datetime: ...
    @_property
    def package_format(self) -> SmartCardCryptogramMaterialPackageFormat: ...
    @_property
    def package_name(self) -> str: ...
    @_property
    def storage_key_name(self) -> str: ...

class SmartCardCryptogramMaterialPossessionProof(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardCryptogramMaterialPossessionProof: ...
    @_property
    def operation_status(self) -> SmartCardCryptogramGeneratorOperationStatus: ...
    @_property
    def proof(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...

class SmartCardCryptogramPlacementStep(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardCryptogramPlacementStep: ...
    def __new__(cls: typing.Type[SmartCardCryptogramPlacementStep]) -> SmartCardCryptogramPlacementStep:...
    @_property
    def template_offset(self) -> winrt.system.Int32: ...
    @template_offset.setter
    def template_offset(self, value: winrt.system.Int32) -> None: ...
    @_property
    def source_data(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @source_data.setter
    def source_data(self, value: typing.Optional[winrt.windows.storage.streams.IBuffer]) -> None: ...
    @_property
    def cryptogram_placement_options(self) -> SmartCardCryptogramPlacementOptions: ...
    @cryptogram_placement_options.setter
    def cryptogram_placement_options(self, value: SmartCardCryptogramPlacementOptions) -> None: ...
    @_property
    def cryptogram_offset(self) -> winrt.system.Int32: ...
    @cryptogram_offset.setter
    def cryptogram_offset(self, value: winrt.system.Int32) -> None: ...
    @_property
    def cryptogram_material_package_name(self) -> str: ...
    @cryptogram_material_package_name.setter
    def cryptogram_material_package_name(self, value: str) -> None: ...
    @_property
    def cryptogram_material_name(self) -> str: ...
    @cryptogram_material_name.setter
    def cryptogram_material_name(self, value: str) -> None: ...
    @_property
    def cryptogram_length(self) -> winrt.system.Int32: ...
    @cryptogram_length.setter
    def cryptogram_length(self, value: winrt.system.Int32) -> None: ...
    @_property
    def chained_output_step(self) -> typing.Optional[SmartCardCryptogramPlacementStep]: ...
    @chained_output_step.setter
    def chained_output_step(self, value: typing.Optional[SmartCardCryptogramPlacementStep]) -> None: ...
    @_property
    def algorithm(self) -> SmartCardCryptogramAlgorithm: ...
    @algorithm.setter
    def algorithm(self, value: SmartCardCryptogramAlgorithm) -> None: ...

class SmartCardCryptogramStorageKeyCharacteristics(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardCryptogramStorageKeyCharacteristics: ...
    def __new__(cls: typing.Type[SmartCardCryptogramStorageKeyCharacteristics]) -> SmartCardCryptogramStorageKeyCharacteristics:...
    @_property
    def algorithm(self) -> SmartCardCryptogramStorageKeyAlgorithm: ...
    @_property
    def capabilities(self) -> SmartCardCryptogramStorageKeyCapabilities: ...
    @_property
    def date_created(self) -> datetime.datetime: ...
    @_property
    def storage_key_name(self) -> str: ...

class SmartCardCryptogramStorageKeyInfo(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardCryptogramStorageKeyInfo: ...
    @_property
    def attestation(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def attestation_certificate_chain(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def attestation_status(self) -> SmartCardCryptographicKeyAttestationStatus: ...
    @_property
    def capabilities(self) -> SmartCardCryptogramStorageKeyCapabilities: ...
    @_property
    def operation_status(self) -> SmartCardCryptogramGeneratorOperationStatus: ...
    @_property
    def public_key(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def public_key_blob_type(self) -> winrt.windows.security.cryptography.core.CryptographicPublicKeyBlobType: ...
    @_property
    def operational_requirements(self) -> str: ...

class SmartCardEmulator_Static(type):
    def get_applet_id_group_registrations_async(cls) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.foundation.collections.IVectorView[SmartCardAppletIdGroupRegistration]]: ...
    def get_default_async(cls) -> winrt.windows.foundation.IAsyncOperation[SmartCardEmulator]: ...
    def is_supported(cls) -> bool: ...
    def register_applet_id_group_async(cls, applet_id_group: typing.Optional[SmartCardAppletIdGroup], /) -> winrt.windows.foundation.IAsyncOperation[SmartCardAppletIdGroupRegistration]: ...
    def unregister_applet_id_group_async(cls, registration: typing.Optional[SmartCardAppletIdGroupRegistration], /) -> winrt.windows.foundation.IAsyncAction: ...
    @_property
    def max_applet_id_group_registrations(cls) -> winrt.system.UInt16: ...

class SmartCardEmulator(winrt.system.Object, metaclass=SmartCardEmulator_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardEmulator: ...
    def is_host_card_emulation_supported(self) -> bool: ...
    def start(self) -> None: ...
    def add_apdu_received(self, value: winrt.windows.foundation.TypedEventHandler[SmartCardEmulator, SmartCardEmulatorApduReceivedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_apdu_received(self, value: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_connection_deactivated(self, value: winrt.windows.foundation.TypedEventHandler[SmartCardEmulator, SmartCardEmulatorConnectionDeactivatedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_connection_deactivated(self, value: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def enablement_policy(self) -> SmartCardEmulatorEnablementPolicy: ...

class SmartCardEmulatorApduReceivedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardEmulatorApduReceivedEventArgs: ...
    @typing.overload
    def try_respond_async(self, response_apdu: typing.Optional[winrt.windows.storage.streams.IBuffer], /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    @typing.overload
    def try_respond_async(self, response_apdu: typing.Optional[winrt.windows.storage.streams.IBuffer], next_state: typing.Optional[winrt.system.UInt32], /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    @typing.overload
    def try_respond_with_cryptograms_async(self, response_template: typing.Optional[winrt.windows.storage.streams.IBuffer], cryptogram_placement_steps: typing.Iterable[SmartCardCryptogramPlacementStep], /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGeneratorOperationStatus]: ...
    @typing.overload
    def try_respond_with_cryptograms_async(self, response_template: typing.Optional[winrt.windows.storage.streams.IBuffer], cryptogram_placement_steps: typing.Iterable[SmartCardCryptogramPlacementStep], next_state: typing.Optional[winrt.system.UInt32], /) -> winrt.windows.foundation.IAsyncOperation[SmartCardCryptogramGeneratorOperationStatus]: ...
    @_property
    def automatic_response_status(self) -> SmartCardAutomaticResponseStatus: ...
    @_property
    def command_apdu(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def connection_properties(self) -> typing.Optional[SmartCardEmulatorConnectionProperties]: ...
    @_property
    def state(self) -> winrt.system.UInt32: ...

class SmartCardEmulatorConnectionDeactivatedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardEmulatorConnectionDeactivatedEventArgs: ...
    @_property
    def connection_properties(self) -> typing.Optional[SmartCardEmulatorConnectionProperties]: ...
    @_property
    def reason(self) -> SmartCardEmulatorConnectionDeactivatedReason: ...

class SmartCardEmulatorConnectionProperties(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardEmulatorConnectionProperties: ...
    @_property
    def id(self) -> _uuid.UUID: ...
    @_property
    def source(self) -> SmartCardEmulatorConnectionSource: ...

class SmartCardPinPolicy(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardPinPolicy: ...
    def __new__(cls: typing.Type[SmartCardPinPolicy]) -> SmartCardPinPolicy:...
    @_property
    def uppercase_letters(self) -> SmartCardPinCharacterPolicyOption: ...
    @uppercase_letters.setter
    def uppercase_letters(self, value: SmartCardPinCharacterPolicyOption) -> None: ...
    @_property
    def special_characters(self) -> SmartCardPinCharacterPolicyOption: ...
    @special_characters.setter
    def special_characters(self, value: SmartCardPinCharacterPolicyOption) -> None: ...
    @_property
    def min_length(self) -> winrt.system.UInt32: ...
    @min_length.setter
    def min_length(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def max_length(self) -> winrt.system.UInt32: ...
    @max_length.setter
    def max_length(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def lowercase_letters(self) -> SmartCardPinCharacterPolicyOption: ...
    @lowercase_letters.setter
    def lowercase_letters(self, value: SmartCardPinCharacterPolicyOption) -> None: ...
    @_property
    def digits(self) -> SmartCardPinCharacterPolicyOption: ...
    @digits.setter
    def digits(self, value: SmartCardPinCharacterPolicyOption) -> None: ...

class SmartCardPinResetDeferral(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardPinResetDeferral: ...
    def complete(self) -> None: ...

class SmartCardPinResetRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardPinResetRequest: ...
    def get_deferral(self) -> typing.Optional[SmartCardPinResetDeferral]: ...
    def set_response(self, response: typing.Optional[winrt.windows.storage.streams.IBuffer], /) -> None: ...
    @_property
    def challenge(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def deadline(self) -> datetime.datetime: ...

class SmartCardProvisioning_Static(type):
    def from_smart_card_async(cls, card: typing.Optional[SmartCard], /) -> winrt.windows.foundation.IAsyncOperation[SmartCardProvisioning]: ...
    @typing.overload
    def request_attested_virtual_smart_card_creation_async(cls, friendly_name: str, administrative_key: typing.Optional[winrt.windows.storage.streams.IBuffer], pin_policy: typing.Optional[SmartCardPinPolicy], /) -> winrt.windows.foundation.IAsyncOperation[SmartCardProvisioning]: ...
    @typing.overload
    def request_attested_virtual_smart_card_creation_async(cls, friendly_name: str, administrative_key: typing.Optional[winrt.windows.storage.streams.IBuffer], pin_policy: typing.Optional[SmartCardPinPolicy], card_id: _uuid.UUID, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardProvisioning]: ...
    @typing.overload
    def request_virtual_smart_card_creation_async(cls, friendly_name: str, administrative_key: typing.Optional[winrt.windows.storage.streams.IBuffer], pin_policy: typing.Optional[SmartCardPinPolicy], /) -> winrt.windows.foundation.IAsyncOperation[SmartCardProvisioning]: ...
    @typing.overload
    def request_virtual_smart_card_creation_async(cls, friendly_name: str, administrative_key: typing.Optional[winrt.windows.storage.streams.IBuffer], pin_policy: typing.Optional[SmartCardPinPolicy], card_id: _uuid.UUID, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardProvisioning]: ...
    def request_virtual_smart_card_deletion_async(cls, card: typing.Optional[SmartCard], /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...

class SmartCardProvisioning(winrt.system.Object, metaclass=SmartCardProvisioning_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardProvisioning: ...
    def get_authority_key_container_name_async(self) -> winrt.windows.foundation.IAsyncOperation[str]: ...
    def get_challenge_context_async(self) -> winrt.windows.foundation.IAsyncOperation[SmartCardChallengeContext]: ...
    def get_id_async(self) -> winrt.windows.foundation.IAsyncOperation[_uuid.UUID]: ...
    def get_name_async(self) -> winrt.windows.foundation.IAsyncOperation[str]: ...
    def request_pin_change_async(self) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    def request_pin_reset_async(self, handler: typing.Optional[SmartCardPinResetHandler], /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    @_property
    def smart_card(self) -> typing.Optional[SmartCard]: ...

class SmartCardReader_Static(type):
    def from_id_async(cls, device_id: str, /) -> winrt.windows.foundation.IAsyncOperation[SmartCardReader]: ...
    @typing.overload
    def get_device_selector(cls) -> str: ...
    @typing.overload
    def get_device_selector(cls, kind: SmartCardReaderKind, /) -> str: ...

class SmartCardReader(winrt.system.Object, metaclass=SmartCardReader_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardReader: ...
    def find_all_cards_async(self) -> winrt.windows.foundation.IAsyncOperation[winrt.windows.foundation.collections.IVectorView[SmartCard]]: ...
    def get_status_async(self) -> winrt.windows.foundation.IAsyncOperation[SmartCardReaderStatus]: ...
    def add_card_added(self, handler: winrt.windows.foundation.TypedEventHandler[SmartCardReader, CardAddedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_card_added(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_card_removed(self, handler: winrt.windows.foundation.TypedEventHandler[SmartCardReader, CardRemovedEventArgs], /) -> winrt.windows.foundation.EventRegistrationToken: ...
    def remove_card_removed(self, token: winrt.windows.foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def device_id(self) -> str: ...
    @_property
    def kind(self) -> SmartCardReaderKind: ...
    @_property
    def name(self) -> str: ...

class SmartCardTriggerDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> SmartCardTriggerDetails: ...
    @typing.overload
    def try_launch_current_app_async(self, arguments: str, /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    @typing.overload
    def try_launch_current_app_async(self, arguments: str, behavior: SmartCardLaunchBehavior, /) -> winrt.windows.foundation.IAsyncOperation[bool]: ...
    @_property
    def source_applet_id(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def trigger_data(self) -> typing.Optional[winrt.windows.storage.streams.IBuffer]: ...
    @_property
    def trigger_type(self) -> SmartCardTriggerType: ...
    @_property
    def emulator(self) -> typing.Optional[SmartCardEmulator]: ...
    @_property
    def smart_card(self) -> typing.Optional[SmartCard]: ...

