/// <reference types="googlepay" />
import { h } from 'preact';
import UIElement from '../UIElement';
import GooglePayService from './GooglePayService';
import { GooglePayProps } from './types';
import { SendAnalyticsObject } from '../../core/Analytics/types';
declare class GooglePay extends UIElement<GooglePayProps> {
    static type: string;
    static defaultProps: {
        environment: string;
        isExpress: boolean;
        existingPaymentMethodRequired: boolean;
        buttonColor: google.payments.api.ButtonColor;
        buttonType: google.payments.api.ButtonType;
        buttonSizeMode: any;
        showPayButton: boolean;
        configuration: {
            gatewayMerchantId: string;
            merchantId: string;
            merchantName: string;
        };
        amount: {
            value: number;
            currency: string;
        };
        countryCode: string;
        totalPriceStatus: google.payments.api.TotalPriceStatus;
        onAuthorized: (params: any) => any;
        onClick: (resolve: any) => any;
        allowedAuthMethods: google.payments.api.CardAuthMethod[];
        allowedCardNetworks: google.payments.api.CardNetwork[];
        allowCreditCards: boolean;
        allowPrepaidCards: boolean;
        billingAddressRequired: boolean;
        billingAddressParameters: any;
        assuranceDetailsRequired: boolean;
        emailRequired: boolean;
        shippingAddressRequired: boolean;
        shippingAddressParameters: any;
        shippingOptionRequired: boolean;
        shippingOptionParameters: any;
        paymentMethods: any[];
    };
    protected googlePay: GooglePayService;
    protected submitAnalytics(analyticsObj: SendAnalyticsObject): void;
    /**
     * Formats the component data input
     * For legacy support - maps configuration.merchantIdentifier to configuration.merchantId
     */
    formatProps(props: any): GooglePayProps;
    /**
     * Formats the component data output
     */
    formatData(): {
        paymentMethod: any;
        browserInfo: import("../../types").BrowserInfo;
    };
    submit: () => Promise<void>;
    /**
     * Validation
     */
    get isValid(): boolean;
    /**
     * Determine a shopper's ability to return a form of payment from the Google Pay API.
     */
    isAvailable: () => Promise<boolean>;
    /**
     * Determine a shopper's ability to return a form of payment from the Google Pay API.
     */
    isReadyToPay: () => Promise<google.payments.api.IsReadyToPayResponse>;
    /**
     * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.
     */
    prefetch: () => void;
    get browserInfo(): import("../../types").BrowserInfo;
    get icon(): string;
    render(): h.JSX.Element;
}
export default GooglePay;
