import { AndroidPaymentResponse } from '../payment-response/android-payment-response.js';
import { IosPaymentResponse } from '../payment-response/ios-payment-response.js';
import type { PaymentDetailsInit } from '../../@standard/w3c/payment-details-init.js';
import type { PaymentMethodData } from '../../@standard/w3c/payment-method-data.js';
import type { PaymentResponseAddressInterface } from '../../interface/payment-response-address.interface.js';
import type { PaymentMethodChangeEventListener } from '../../type/payment-method-change-event-listener.type.js';
import type { PaymentRequestEventListener } from '../../type/payment-request-event-listener.type.js';
import type { PaymentRequestEventType } from '../../type/payment-request-event.type.js';
import type { Maybe } from '@rnw-community/shared';
export declare class PaymentRequest {
    readonly methodData: PaymentMethodData[];
    details: PaymentDetailsInit;
    readonly id: string;
    updating: boolean;
    state: 'closed' | 'created' | 'interactive';
    couponCode: Maybe<string>;
    shippingAddress: Maybe<PaymentResponseAddressInterface>;
    shippingOption: Maybe<string>;
    private readonly serializedMethodData;
    private readonly platformMethodData;
    private readonly eventRegistrations;
    private readonly pendingDispatchers;
    private readonly attributeHandlers;
    private readonly attributeHandlerWrappers;
    private eventGeneration;
    private isNativeEventsSynced;
    private acceptPromiseRejecter;
    constructor(methodData: PaymentMethodData[], details: PaymentDetailsInit);
    get onshippingaddresschange(): Maybe<PaymentRequestEventListener>;
    get onshippingoptionchange(): Maybe<PaymentRequestEventListener>;
    get onpaymentmethodchange(): Maybe<PaymentMethodChangeEventListener>;
    get oncouponcodechange(): Maybe<PaymentRequestEventListener>;
    set onshippingaddresschange(listener: Maybe<PaymentRequestEventListener>);
    set onshippingoptionchange(listener: Maybe<PaymentRequestEventListener>);
    set onpaymentmethodchange(listener: Maybe<PaymentMethodChangeEventListener>);
    set oncouponcodechange(listener: Maybe<PaymentRequestEventListener>);
    canMakePayment(): Promise<boolean>;
    hasEnrolledInstrument(): Promise<boolean>;
    show(): Promise<AndroidPaymentResponse | IosPaymentResponse>;
    abort(): Promise<void>;
    addEventListener(type: 'paymentmethodchange', listener: PaymentMethodChangeEventListener): void;
    addEventListener(type: PaymentRequestEventType, listener: PaymentRequestEventListener): void;
    removeEventListener(type: 'paymentmethodchange', listener: PaymentMethodChangeEventListener): void;
    removeEventListener(type: PaymentRequestEventType, listener: PaymentRequestEventListener): void;
    private closeRequest;
    private validateConstructorInputs;
    private getAttributeHandler;
    private setAttributeHandler;
    private ensureAttributeHandlerWrapper;
    private removeAttributeHandlerWrapper;
    private dispatchToAttributeHandler;
    private handleAccept;
    private subscribeToNativeEvent;
    private dropRegistration;
    private syncActiveEvents;
    private clearEventRegistrations;
    private forgetListener;
    private handleChangeEvent;
    private isDispatchActive;
    private dispatchChangeEvent;
    private applyEventPayload;
    private resolveDetailsUpdate;
    private sendDetailsUpdate;
    private getUpdatedDetails;
    private resolveEffectiveDetails;
    private getPlatformSupportedMethod;
    private findPlatformPaymentMethodData;
    private getAndroidPaymentMethodData;
    private getIosPaymentMethodData;
    private getRequestedShippingFields;
}
//# sourceMappingURL=payment-request.d.ts.map