import { StripeAddressElement as StripeAddressElementType, StripeAddressElementOptions, StripeAddressElementChangeEvent, StripeError } from '@stripe/stripe-js';
import { DefineComponent, ExtractPropTypes, Ref, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue-demi';
interface AddressElementWithEvents extends StripeAddressElementType {
    on(eventType: string, handler: (...args: any[]) => void): this;
    off(eventType: string, handler?: (...args: any[]) => void): this;
    getValue(): Promise<Pick<StripeAddressElementChangeEvent, 'complete' | 'isNewAddress' | 'value'>>;
}
declare const _default: DefineComponent<ExtractPropTypes<{
    options: {
        type: () => StripeAddressElementOptions;
        default: () => {
            mode: "shipping";
        };
    };
}>, {
    addressRef: Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
    element: Ref<{
        on: (eventType: string, handler: (...args: any[]) => void) => AddressElementWithEvents;
        off: (eventType: string, handler?: (...args: any[]) => void) => AddressElementWithEvents;
        getValue: () => Promise<Pick<StripeAddressElementChangeEvent, "complete" | "isNewAddress" | "value">>;
        mount: (domElement: string | HTMLElement) => void;
        blur: () => void;
        clear: () => void;
        destroy: () => void;
        focus: () => void;
        unmount: () => void;
        once: {
            (eventType: "change", handler: (event: StripeAddressElementChangeEvent) => any): StripeAddressElementType;
            (eventType: "ready", handler: (event: {
                elementType: "address";
            }) => any): StripeAddressElementType;
            (eventType: "focus", handler: (event: {
                elementType: "address";
            }) => any): StripeAddressElementType;
            (eventType: "blur", handler: (event: {
                elementType: "address";
            }) => any): StripeAddressElementType;
            (eventType: "escape", handler: (event: {
                elementType: "address";
            }) => any): StripeAddressElementType;
            (eventType: "loaderror", handler: (event: {
                elementType: "address";
                error: StripeError;
            }) => any): StripeAddressElementType;
            (eventType: "loaderstart", handler: (event: {
                elementType: "address";
            }) => any): StripeAddressElementType;
        };
        update: (options: Partial<StripeAddressElementOptions>) => StripeAddressElementType;
    } | null, AddressElementWithEvents | {
        on: (eventType: string, handler: (...args: any[]) => void) => AddressElementWithEvents;
        off: (eventType: string, handler?: (...args: any[]) => void) => AddressElementWithEvents;
        getValue: () => Promise<Pick<StripeAddressElementChangeEvent, "complete" | "isNewAddress" | "value">>;
        mount: (domElement: string | HTMLElement) => void;
        blur: () => void;
        clear: () => void;
        destroy: () => void;
        focus: () => void;
        unmount: () => void;
        once: {
            (eventType: "change", handler: (event: StripeAddressElementChangeEvent) => any): StripeAddressElementType;
            (eventType: "ready", handler: (event: {
                elementType: "address";
            }) => any): StripeAddressElementType;
            (eventType: "focus", handler: (event: {
                elementType: "address";
            }) => any): StripeAddressElementType;
            (eventType: "blur", handler: (event: {
                elementType: "address";
            }) => any): StripeAddressElementType;
            (eventType: "escape", handler: (event: {
                elementType: "address";
            }) => any): StripeAddressElementType;
            (eventType: "loaderror", handler: (event: {
                elementType: "address";
                error: StripeError;
            }) => any): StripeAddressElementType;
            (eventType: "loaderstart", handler: (event: {
                elementType: "address";
            }) => any): StripeAddressElementType;
        };
        update: (options: Partial<StripeAddressElementOptions>) => StripeAddressElementType;
    } | null>;
    getValue: () => Promise<Pick<StripeAddressElementChangeEvent, "value" | "complete" | "isNewAddress">>;
    focus: () => void;
    clear: () => void;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("blur" | "change" | "focus" | "ready" | "escape" | "loadError")[], "blur" | "change" | "focus" | "ready" | "escape" | "loadError", PublicProps, Readonly< ExtractPropTypes<{
    options: {
        type: () => StripeAddressElementOptions;
        default: () => {
            mode: "shipping";
        };
    };
}>> & Readonly<{
    onFocus?: (...args: any[]) => any;
    onBlur?: (...args: any[]) => any;
    onChange?: (...args: any[]) => any;
    onReady?: (...args: any[]) => any;
    onEscape?: (...args: any[]) => any;
    onLoadError?: (...args: any[]) => any;
}>, {
    options: StripeAddressElementOptions;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default _default;
//# sourceMappingURL=VueStripeAddressElement.vue.d.ts.map