# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.2.0

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property

import winrt._winrt
import winrt.system
import winrt.windows.applicationmodel.payments as windows_applicationmodel_payments
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections

Self = typing.TypeVar('Self')

@typing.final
class PaymentAppCanMakePaymentTriggerDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PaymentAppCanMakePaymentTriggerDetails: ...
    def report_can_make_payment_result(self, value: typing.Optional[windows_applicationmodel_payments.PaymentCanMakePaymentResult], /) -> None: ...
    @_property
    def request(self) -> typing.Optional[windows_applicationmodel_payments.PaymentRequest]: ...

@typing.final
class PaymentAppManager_Static(type):
    @_property
    def current(cls) -> typing.Optional[PaymentAppManager]: ...

@typing.final
class PaymentAppManager(winrt.system.Object, metaclass=PaymentAppManager_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PaymentAppManager: ...
    def register_async(self, supported_payment_method_ids: typing.Iterable[str], /) -> windows_foundation.IAsyncAction: ...
    def unregister_async(self) -> windows_foundation.IAsyncAction: ...

@typing.final
class PaymentTransaction_Static(type):
    def from_id_async(cls, id: str, /) -> windows_foundation.IAsyncOperation[PaymentTransaction]: ...

@typing.final
class PaymentTransaction(winrt.system.Object, metaclass=PaymentTransaction_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PaymentTransaction: ...
    def accept_async(self, payment_token: typing.Optional[windows_applicationmodel_payments.PaymentToken], /) -> windows_foundation.IAsyncOperation[PaymentTransactionAcceptResult]: ...
    def reject(self) -> None: ...
    def update_selected_shipping_option_async(self, selected_shipping_option: typing.Optional[windows_applicationmodel_payments.PaymentShippingOption], /) -> windows_foundation.IAsyncOperation[windows_applicationmodel_payments.PaymentRequestChangedResult]: ...
    def update_shipping_address_async(self, shipping_address: typing.Optional[windows_applicationmodel_payments.PaymentAddress], /) -> windows_foundation.IAsyncOperation[windows_applicationmodel_payments.PaymentRequestChangedResult]: ...
    @_property
    def payer_phone_number(self) -> str: ...
    @payer_phone_number.setter
    def payer_phone_number(self, value: str) -> None: ...
    @_property
    def payer_name(self) -> str: ...
    @payer_name.setter
    def payer_name(self, value: str) -> None: ...
    @_property
    def payer_email(self) -> str: ...
    @payer_email.setter
    def payer_email(self, value: str) -> None: ...
    @_property
    def payment_request(self) -> typing.Optional[windows_applicationmodel_payments.PaymentRequest]: ...

@typing.final
class PaymentTransactionAcceptResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PaymentTransactionAcceptResult: ...
    @_property
    def status(self) -> windows_applicationmodel_payments.PaymentRequestCompletionStatus: ...

