import { EventEmitter } from '../../../stencil-public-runtime';
import { PaymentMethodPayload } from '../../checkout/payment-method-payload';
import { PlaidErrorCodes, PlaidError } from '../../../api/Plaid';
export declare class JustifiPlaidPaymentMethod {
    isAuthenticating: boolean;
    publicToken: string | null;
    linkToken: string | null;
    linkTokenId: string | null;
    error: PlaidError | null;
    plaidLink: any;
    isSelected: boolean;
    retryCount: number;
    isRetrying: boolean;
    private sdkLoaded;
    private plaidService;
    private unsubscribeFromStore;
    private maxRetries;
    private retryDelay;
    private timeoutId;
    private abortController;
    private hasLoggedDisabledWarning;
    private hasLoggedAchPaymentsDisabledWarning;
    paymentMethodOptionSelected: EventEmitter;
    plaidError: EventEmitter;
    plaidErrorRecovered: EventEmitter;
    onSelectionChange(newValue: boolean): void;
    componentWillLoad(): void;
    private loadPlaidSDK;
    waitForStoreAndInitialize: () => void;
    resolvePaymentMethod(): Promise<PaymentMethodPayload>;
    getPaymentToken(): Promise<string | undefined>;
    handleSelectionClick(): Promise<void>;
    initializePlaidLink: () => Promise<void>;
    getLinkToken: () => Promise<void>;
    mapApiErrorToPlaidError: (apiError: any) => PlaidErrorCodes;
    openPlaidLink: () => void;
    handlePlaidSuccess: (publicToken: string, _metadata: any) => void;
    handlePlaidExit: (err: any, _metadata: any) => void;
    handlePlaidEvent: (eventName: string, metadata: any) => void;
    handlePlaidLoad: () => void;
    handlePlaidError: (error: any) => void;
    handleError: (plaidError: PlaidError) => void;
    scheduleRetry: () => void;
    clearError: () => void;
    setSelected(selected: boolean): Promise<void>;
    isCurrentlySelected(): Promise<boolean>;
    deselect(): Promise<void>;
    reset(): Promise<void>;
    isReadyForAuthentication(): Promise<boolean>;
    retry(): Promise<void>;
    getErrorInfo(): Promise<PlaidError | null>;
    private syncWithStore;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    render(): any;
}
