import { StripeIbanElement as StripeIbanElementType, StripeIbanElementOptions, StripeIbanElementChangeEvent } from '@stripe/stripe-js';
import { DefineComponent, Ref, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue-demi';
interface Props {
    options?: StripeIbanElementOptions;
}
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        error?(_: {
            error: string;
        }): any;
        loading?(_: {}): any;
    };
    refs: {
        elementRef: HTMLDivElement;
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<Props, {
    element: Ref<{
        mount: (domElement: string | HTMLElement) => void;
        blur: () => void;
        clear: () => void;
        destroy: () => void;
        focus: () => void;
        unmount: () => void;
        on: {
            (eventType: "change", handler: (event: StripeIbanElementChangeEvent) => any): StripeIbanElementType;
            (eventType: "ready", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "focus", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "blur", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "escape", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
        };
        once: {
            (eventType: "change", handler: (event: StripeIbanElementChangeEvent) => any): StripeIbanElementType;
            (eventType: "ready", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "focus", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "blur", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "escape", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
        };
        off: {
            (eventType: "change", handler?: (event: StripeIbanElementChangeEvent) => any): StripeIbanElementType;
            (eventType: "ready", handler?: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "focus", handler?: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "blur", handler?: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "escape", handler?: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
        };
        update: (options: Partial<StripeIbanElementOptions>) => void;
    } | null, StripeIbanElementType | {
        mount: (domElement: string | HTMLElement) => void;
        blur: () => void;
        clear: () => void;
        destroy: () => void;
        focus: () => void;
        unmount: () => void;
        on: {
            (eventType: "change", handler: (event: StripeIbanElementChangeEvent) => any): StripeIbanElementType;
            (eventType: "ready", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "focus", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "blur", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "escape", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
        };
        once: {
            (eventType: "change", handler: (event: StripeIbanElementChangeEvent) => any): StripeIbanElementType;
            (eventType: "ready", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "focus", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "blur", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "escape", handler: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
        };
        off: {
            (eventType: "change", handler?: (event: StripeIbanElementChangeEvent) => any): StripeIbanElementType;
            (eventType: "ready", handler?: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "focus", handler?: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "blur", handler?: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
            (eventType: "escape", handler?: (event: {
                elementType: "iban";
            }) => any): StripeIbanElementType;
        };
        update: (options: Partial<StripeIbanElementOptions>) => void;
    } | null>;
    loading: Ref<boolean, boolean>;
    error: Ref<string | null, string | null>;
    focus: () => void | undefined;
    blur: () => void | undefined;
    clear: () => void | undefined;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
    blur: () => any;
    change: (event: StripeIbanElementChangeEvent) => any;
    focus: () => any;
    ready: (element: StripeIbanElementType) => any;
    escape: () => any;
}, string, PublicProps, Readonly<Props> & Readonly<{
    onBlur?: () => any;
    onChange?: (event: StripeIbanElementChangeEvent) => any;
    onFocus?: () => any;
    onReady?: (element: StripeIbanElementType) => any;
    onEscape?: () => any;
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
    elementRef: HTMLDivElement;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
//# sourceMappingURL=VueStripeIbanElement.vue.d.ts.map