import { EventEmitter } from '../../stencil-public-runtime';
import JustifiAnalytics from '../../api/Analytics';
import { BillingFormFields } from './billing-form/billing-form-schema';
import { ICheckout, ILoadedEventResponse } from '../../api';
import { ComponentErrorEvent, ComponentSubmitEvent } from '../../api/ComponentEvents';
import { CheckoutState } from '../../store/checkout.store';
import { CheckoutChangedEventDetail, Hook, PAYMENT_METHODS } from '../modular-checkout/ModularCheckout';
export declare class JustifiCheckout {
    analytics: JustifiAnalytics;
    modularCheckoutRef?: HTMLJustifiModularCheckoutElement;
    tokenizePaymentMethodRef?: HTMLJustifiTokenizePaymentMethodElement;
    plaidPaymentMethodRef?: HTMLJustifiPlaidPaymentMethodElement;
    sezzlePaymentMethodRef?: HTMLJustifiSezzlePaymentMethodElement;
    googlePayRef?: HTMLJustifiGooglePayElement;
    availablePaymentMethods: PAYMENT_METHODS[];
    checkout: ICheckout;
    complete: Function;
    errorMessage: string;
    insuranceToggled: boolean;
    serverError: string;
    authToken: string;
    checkoutId: string;
    disableBankAccount?: boolean;
    disableBnpl?: boolean;
    disableCreditCard?: boolean;
    disablePaymentMethodGroup?: boolean;
    hideBankAccountBillingForm?: boolean;
    hideCardBillingForm?: boolean;
    /** Passed to `justifi-google-pay` as `environment`. Omit to let the child use its default. */
    googlePayEnv?: 'TEST' | 'PRODUCTION';
    preCompleteHook?: Hook<CheckoutState>;
    propChanged(): void;
    errorEvent: EventEmitter<ComponentErrorEvent>;
    loadedEvent: EventEmitter<ILoadedEventResponse>;
    submitEvent: EventEmitter<ComponentSubmitEvent>;
    connectedCallback(): void;
    componentWillLoad(): void;
    disconnectedCallback(): void;
    checkoutComplete(_event: CustomEvent<any>): void;
    checkoutError(_event: CustomEvent<any>): void;
    checkoutChanged(event: CustomEvent<CheckoutChangedEventDetail>): void;
    fillBillingForm(fields: BillingFormFields): Promise<void>;
    validate(): Promise<{
        isValid: boolean;
    }>;
    private updateStore;
    private submit;
    private get showPaymentTypeHeader();
    render(): any;
}
