import { EventEmitter } from "../../stencil-public-runtime";
import { CheckoutState } from "../../store/checkout.store";
import JustifiAnalytics from "../../api/Analytics";
import { BillingFormFields } from "../../components";
import { CheckoutChangedEventDetail, SelectedPaymentMethod, Hook } from "./ModularCheckout";
export declare class JustifiModularCheckout {
    analytics: JustifiAnalytics;
    private observer?;
    private paymentMethodFormRef?;
    private billingFormRef?;
    private insuranceFormRef?;
    private applePayRef?;
    private googlePayRef?;
    private getCheckout;
    private completeCheckout;
    private plaidService;
    authToken: string;
    checkoutId: string;
    preCompleteHook?: Hook<CheckoutState>;
    hostEl: HTMLElement;
    errorEvent: EventEmitter;
    submitEvent: EventEmitter;
    checkoutChangedEvent: EventEmitter<CheckoutChangedEventDetail>;
    connectedCallback(): void;
    componentWillLoad(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    private fetchCheckout;
    private updateStore;
    private emitCheckoutChanged;
    private queryFormRefs;
    private setupApplePayListeners;
    private removeApplePayListeners;
    private setupGooglePayListeners;
    private removeGooglePayListeners;
    private handleApplePayStarted;
    private handleGooglePayStarted;
    private handleGooglePayCompleted;
    private handleGooglePayCancelled;
    private handleApplePayCompleted;
    private handleApplePayError;
    private handleApplePayCancelled;
    private tokenizePaymentMethod;
    fillBillingForm(fields: BillingFormFields): Promise<void>;
    setSelectedPaymentMethod(paymentMethod: SelectedPaymentMethod): Promise<void>;
    validate(): Promise<boolean>;
    submitCheckout(submitCheckoutArgs?: BillingFormFields): Promise<void>;
    render(): any;
}
