import { h } from 'preact';
import UIElement from '../UIElement';
import { PaymentAction } from '../../types';
import { PayPalElementProps } from './types';
import './Paypal.scss';
declare class PaypalElement extends UIElement<PayPalElementProps> {
    static type: string;
    static subtype: string;
    private paymentData;
    private resolve;
    private reject;
    protected static defaultProps: PayPalElementProps;
    constructor(props: any);
    formatProps(props: PayPalElementProps): PayPalElementProps;
    submit: () => void;
    /**
     * Formats the component data output
     */
    protected formatData(): {
        paymentMethod: {
            type: string;
            subtype: string;
        };
    };
    handleAction: (action: PaymentAction) => any;
    updateWithAction: (action: PaymentAction) => any;
    /**
     * Dropin Validation
     *
     * @remarks
     * Paypal does not require any specific Dropin validation
     */
    get isValid(): boolean;
    private handleCancel;
    private handleOnApprove;
    handleResolve(token: string): void;
    handleReject(errorMessage: string): void;
    private handleSubmit;
    render(): h.JSX.Element;
}
export default PaypalElement;
