declare const _default: import('vue').DefineComponent<{
    closeButtonProps: {
        type: ObjectConstructor;
        required: true;
        validator: (props: unknown) => boolean;
    };
    copy: {
        type: StringConstructor;
        default: string;
    };
    describedById: {
        type: StringConstructor;
        default: string;
    };
    labelledById: {
        type: StringConstructor;
        default: () => string;
    };
    show: {
        type: BooleanConstructor;
        default: boolean;
    };
    title: {
        type: StringConstructor;
        default: string;
    };
    bannerTitle: {
        type: StringConstructor;
        default: string;
    };
    kind: {
        type: StringConstructor;
        default: string;
        validator: (k: unknown) => boolean;
    };
    size: {
        type: StringConstructor;
        default: string;
        validator: (s: unknown) => boolean;
    };
    modalClass: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    dialogClass: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    contentClass: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    bannerKind: {
        type: StringConstructor;
        default: string;
        validate(kind: any): boolean;
    };
    bannerClass: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    hideClose: {
        type: BooleanConstructor;
        default: boolean;
    };
    closeOnClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    fixedHeaderFooter: {
        type: BooleanConstructor;
        default: boolean;
    };
    initialFocusElement: {
        type: ({
            new (): HTMLElement;
            prototype: HTMLElement;
        } | StringConstructor)[];
        default: string;
        validator: (initialFocusElement: unknown) => any;
    };
}, {}, {
    MODAL_KIND_MODIFIERS: {
        default: string;
        danger: string;
    };
    MODAL_SIZE_MODIFIERS: {
        default: string;
        full: string;
    };
    MODAL_BANNER_KINDS: {
        error: string;
        info: string;
        success: string;
        warning: string;
        base: string;
    };
    EVENT_KEYNAMES: {
        esc: string;
        escape: string;
        tab: string;
        enter: string;
        space: string;
        spacebar: string;
        up: string;
        arrowup: string;
        left: string;
        arrowleft: string;
        right: string;
        arrowright: string;
        down: string;
        arrowdown: string;
        home: string;
        end: string;
    };
}, {
    modalListeners(): {
        click: (event: any) => void;
        keydown: (event: any) => void;
        'after-enter': (event: any) => void;
    };
    open(): string;
    hasFooterSlot(): boolean;
    bannerKindClass(): never;
}, {
    close(): void;
    setFocusAfterTransition(): void;
    trapFocus(e: any): void;
    validateProps(): void;
}, {
    props: {
        visuallyHiddenClose: {
            type: BooleanConstructor;
            default: boolean;
        };
        visuallyHiddenCloseLabel: {
            type: StringConstructor;
            default: null;
        };
    };
    watch: {
        $props: {
            immediate: boolean;
            deep: boolean;
            handler(): void;
        };
    };
    computed: {
        showVisuallyHiddenClose(): any;
    };
    methods: {
        validateVisuallyHiddenCloseProps(): void;
    };
} | {
    methods: {
        getFirstFocusableElement(el: object): Promise<any>;
        focusFirstElement(el?: object): Promise<void>;
        focusElementById(elementId: any): Promise<void>;
        _getFirstFocusElement(focusableElements: any): any;
        _getFocusableElements(el?: object, includeNegativeTabIndex?: bool): any[];
        focusTrappedTabPress(e: object, el: object): void;
    };
}, import('vue').ComponentOptionsMixin, "update:show"[], string, Readonly<import('vue').ExtractPropTypes<{
    closeButtonProps: {
        type: ObjectConstructor;
        required: true;
        validator: (props: unknown) => boolean;
    };
    copy: {
        type: StringConstructor;
        default: string;
    };
    describedById: {
        type: StringConstructor;
        default: string;
    };
    labelledById: {
        type: StringConstructor;
        default: () => string;
    };
    show: {
        type: BooleanConstructor;
        default: boolean;
    };
    title: {
        type: StringConstructor;
        default: string;
    };
    bannerTitle: {
        type: StringConstructor;
        default: string;
    };
    kind: {
        type: StringConstructor;
        default: string;
        validator: (k: unknown) => boolean;
    };
    size: {
        type: StringConstructor;
        default: string;
        validator: (s: unknown) => boolean;
    };
    modalClass: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    dialogClass: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    contentClass: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    bannerKind: {
        type: StringConstructor;
        default: string;
        validate(kind: any): boolean;
    };
    bannerClass: {
        type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
        default: string;
    };
    hideClose: {
        type: BooleanConstructor;
        default: boolean;
    };
    closeOnClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    fixedHeaderFooter: {
        type: BooleanConstructor;
        default: boolean;
    };
    initialFocusElement: {
        type: ({
            new (): HTMLElement;
            prototype: HTMLElement;
        } | StringConstructor)[];
        default: string;
        validator: (initialFocusElement: unknown) => any;
    };
}>>, {
    title: string;
    copy: string;
    size: string;
    kind: string;
    hideClose: boolean;
    dialogClass: string | Record<string, any> | unknown[];
    bannerClass: string | Record<string, any> | unknown[];
    contentClass: string | Record<string, any> | unknown[];
    show: boolean;
    initialFocusElement: string | HTMLElement;
    describedById: string;
    labelledById: string;
    bannerTitle: string;
    modalClass: string | Record<string, any> | unknown[];
    bannerKind: string;
    closeOnClick: boolean;
    fixedHeaderFooter: boolean;
}>;
export default _default;
//# sourceMappingURL=modal.vue.d.ts.map