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

import datetime
import sys
import types
import typing

import winsdk.system
import winsdk.windows.applicationmodel.payments
import winsdk.windows.foundation
import winsdk.windows.foundation.collections

Self = typing.TypeVar('Self')

class PaymentAppCanMakePaymentTriggerDetails(winsdk.system.Object):
    request: typing.Optional[winsdk.windows.applicationmodel.payments.PaymentRequest]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PaymentAppCanMakePaymentTriggerDetails: ...
    def report_can_make_payment_result(self, value: typing.Optional[winsdk.windows.applicationmodel.payments.PaymentCanMakePaymentResult], /) -> None: ...

class PaymentAppManager(winsdk.system.Object):
    current: typing.ClassVar[typing.Optional[PaymentAppManager]]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PaymentAppManager: ...
    def register_async(self, supported_payment_method_ids: typing.Iterable[str], /) -> winsdk.windows.foundation.IAsyncAction: ...
    def unregister_async(self) -> winsdk.windows.foundation.IAsyncAction: ...

class PaymentTransaction(winsdk.system.Object):
    payer_phone_number: str
    payer_name: str
    payer_email: str
    payment_request: typing.Optional[winsdk.windows.applicationmodel.payments.PaymentRequest]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PaymentTransaction: ...
    def accept_async(self, payment_token: typing.Optional[winsdk.windows.applicationmodel.payments.PaymentToken], /) -> winsdk.windows.foundation.IAsyncOperation[PaymentTransactionAcceptResult]: ...
    @staticmethod
    def from_id_async(id: str, /) -> winsdk.windows.foundation.IAsyncOperation[PaymentTransaction]: ...
    def reject(self) -> None: ...
    def update_selected_shipping_option_async(self, selected_shipping_option: typing.Optional[winsdk.windows.applicationmodel.payments.PaymentShippingOption], /) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.applicationmodel.payments.PaymentRequestChangedResult]: ...
    def update_shipping_address_async(self, shipping_address: typing.Optional[winsdk.windows.applicationmodel.payments.PaymentAddress], /) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.applicationmodel.payments.PaymentRequestChangedResult]: ...

class PaymentTransactionAcceptResult(winsdk.system.Object):
    status: winsdk.windows.applicationmodel.payments.PaymentRequestCompletionStatus
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PaymentTransactionAcceptResult: ...

