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

import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
import winsdk.windows.applicationmodel.payments
import winsdk.windows.foundation
import winsdk.windows.foundation.collections

Self = typing.TypeVar('Self')

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

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

class PaymentTransaction(_winrt.Object):
    payer_phone_number: str
    payer_name: str
    payer_email: str
    payment_request: typing.Optional[winsdk.windows.applicationmodel.payments.PaymentRequest]
    @staticmethod
    def _from(obj: _winrt.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(_winrt.Object):
    status: winsdk.windows.applicationmodel.payments.PaymentRequestCompletionStatus
    @staticmethod
    def _from(obj: _winrt.Object) -> PaymentTransactionAcceptResult: ...

