import { hasSlotContent } from '../../common/utils';
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    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: (StringConstructor | {
            new (): HTMLElement;
            prototype: HTMLElement;
        })[];
        default: string;
        validator: (initialFocusElement: unknown) => any;
    };
    appendTo: {
        type: StringConstructor;
        default: undefined;
    };
}>, {}, {
    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;
    };
    hasSlotContent: typeof hasSlotContent;
    i18n: any;
}, {
    modalListeners(): {
        click: (event: any) => void;
        keydown: (event: any) => void;
        'after-enter': () => Promise<void>;
        focusin: (event: any) => void;
    };
    open(): string;
    hasFooterSlot(): boolean;
    bannerKindClass(): any;
    closeButtonTitle(): any;
}, {
    close(): void;
    setFocusAfterTransition(): Promise<void>;
    trapFocus(e: any): void;
    handleModalClick(event: any): 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, ("click" | "keydown" | "update:show")[], "click" | "keydown" | "update:show", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    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: (StringConstructor | {
            new (): HTMLElement;
            prototype: HTMLElement;
        })[];
        default: string;
        validator: (initialFocusElement: unknown) => any;
    };
    appendTo: {
        type: StringConstructor;
        default: undefined;
    };
}>> & Readonly<{
    onClick?: ((...args: any[]) => any) | undefined;
    onKeydown?: ((...args: any[]) => any) | undefined;
    "onUpdate:show"?: ((...args: any[]) => any) | undefined;
}>, {
    title: string;
    copy: string;
    size: string;
    kind: string;
    hideClose: boolean;
    dialogClass: string | unknown[] | Record<string, any>;
    bannerClass: string | unknown[] | Record<string, any>;
    contentClass: string | unknown[] | Record<string, any>;
    show: boolean;
    appendTo: string;
    initialFocusElement: string | HTMLElement;
    describedById: string;
    labelledById: string;
    bannerTitle: string;
    modalClass: string | unknown[] | Record<string, any>;
    bannerKind: string;
    closeOnClick: boolean;
    fixedHeaderFooter: boolean;
}, {}, {
    DtLazyShow: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
        show: {
            type: BooleanConstructor;
            default: boolean;
        };
        transition: {
            type: StringConstructor;
            default: null;
        };
        appear: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>, {}, {
        initialized: boolean;
    }, {
        isCSSEnabled(): boolean;
    }, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
        show: {
            type: BooleanConstructor;
            default: boolean;
        };
        transition: {
            type: StringConstructor;
            default: null;
        };
        appear: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{}>, {
        show: boolean;
        appear: boolean;
        transition: string;
    }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
    DtButton: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
        circle: {
            type: BooleanConstructor;
            default: boolean;
        };
        iconPosition: {
            type: StringConstructor;
            default: string;
            validator: (position: unknown) => boolean;
        };
        importance: {
            type: StringConstructor;
            default: string;
            validator: (i: unknown) => boolean;
        };
        link: {
            type: BooleanConstructor;
            default: boolean;
        };
        linkKind: {
            type: StringConstructor;
            default: string;
            validator: (lk: unknown) => boolean;
        };
        linkInverted: {
            type: BooleanConstructor;
            default: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        type: {
            type: StringConstructor;
            default: string;
            validator: (t: unknown) => boolean;
        };
        width: {
            type: StringConstructor;
            default: null;
        };
        size: {
            type: StringConstructor;
            default: string;
            validator: (s: unknown) => boolean;
        };
        labelClass: {
            type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
            default: string;
        };
        loading: {
            type: BooleanConstructor;
            default: boolean;
        };
        kind: {
            type: StringConstructor;
            default: string;
            validator: (k: unknown) => boolean;
        };
        assertiveOnFocus: {
            type: BooleanConstructor;
            default: boolean;
        };
        active: {
            type: BooleanConstructor;
            default: boolean;
        };
        to: {
            type: (ObjectConstructor | StringConstructor)[];
            default: null;
        };
        href: {
            type: StringConstructor;
            default: null;
        };
        target: {
            type: StringConstructor;
            default: null;
        };
        rel: {
            type: StringConstructor;
            default: null;
        };
        replace: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>, {}, {
        ICON_POSITION_MODIFIERS: {
            left: string;
            right: string;
            top: string;
            bottom: string;
        };
        isInFocus: boolean;
        hasSlotContent: typeof hasSlotContent;
        i18n: any;
    }, {
        computedTag(): string | import('vue').ConcreteComponent<{}, any, any, import('vue').ComputedOptions, import('vue').MethodOptions, {}, any>;
        isNativeButton(): boolean;
        computedAttrs(): {
            'aria-disabled'?: string | undefined;
            tabindex?: string | undefined;
            to: string | Record<string, any>;
            replace: boolean;
            type?: undefined;
            disabled?: undefined;
        } | {
            'aria-disabled'?: string | undefined;
            tabindex?: string | undefined;
            href: string | null;
            target: string;
            rel: string;
            type?: undefined;
            disabled?: undefined;
        } | {
            type: string;
            disabled: boolean;
        };
        computedListeners(): {
            focusin: (e: any) => void;
            focusout: (e: any) => void;
        };
        computedAriaLive(): unknown;
        iconSize(): any;
        loaderSize(): any;
    }, {
        resolveRouterLink(): string | import('vue').ConcreteComponent<{}, any, any, import('vue').ComputedOptions, import('vue').MethodOptions, {}, any>;
        buttonClasses(): any[];
        isInvalidPropCombination(circle: any, kind: any, importance: any): boolean;
        shouldRenderIcon(): any;
        isIconOnly(): any;
        isVerticalIconLayout(): boolean;
    }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("focusin" | "focusout")[], "focusin" | "focusout", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
        circle: {
            type: BooleanConstructor;
            default: boolean;
        };
        iconPosition: {
            type: StringConstructor;
            default: string;
            validator: (position: unknown) => boolean;
        };
        importance: {
            type: StringConstructor;
            default: string;
            validator: (i: unknown) => boolean;
        };
        link: {
            type: BooleanConstructor;
            default: boolean;
        };
        linkKind: {
            type: StringConstructor;
            default: string;
            validator: (lk: unknown) => boolean;
        };
        linkInverted: {
            type: BooleanConstructor;
            default: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        type: {
            type: StringConstructor;
            default: string;
            validator: (t: unknown) => boolean;
        };
        width: {
            type: StringConstructor;
            default: null;
        };
        size: {
            type: StringConstructor;
            default: string;
            validator: (s: unknown) => boolean;
        };
        labelClass: {
            type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
            default: string;
        };
        loading: {
            type: BooleanConstructor;
            default: boolean;
        };
        kind: {
            type: StringConstructor;
            default: string;
            validator: (k: unknown) => boolean;
        };
        assertiveOnFocus: {
            type: BooleanConstructor;
            default: boolean;
        };
        active: {
            type: BooleanConstructor;
            default: boolean;
        };
        to: {
            type: (ObjectConstructor | StringConstructor)[];
            default: null;
        };
        href: {
            type: StringConstructor;
            default: null;
        };
        target: {
            type: StringConstructor;
            default: null;
        };
        rel: {
            type: StringConstructor;
            default: null;
        };
        replace: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{
        onFocusin?: ((...args: any[]) => any) | undefined;
        onFocusout?: ((...args: any[]) => any) | undefined;
    }>, {
        link: boolean;
        disabled: boolean;
        type: string;
        target: string;
        circle: boolean;
        active: boolean;
        loading: boolean;
        size: string;
        replace: boolean;
        kind: string;
        labelClass: string | unknown[] | Record<string, any>;
        href: string;
        to: string | Record<string, any>;
        iconPosition: string;
        importance: string;
        linkKind: string;
        linkInverted: boolean;
        width: string;
        assertiveOnFocus: boolean;
        rel: string;
    }, {}, {
        DtLoader: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
            ariaLabel: {
                type: StringConstructor;
                default: string;
            };
            size: {
                type: StringConstructor;
                default: string;
                validator: (s: unknown) => boolean;
            };
        }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
            ariaLabel: {
                type: StringConstructor;
                default: string;
            };
            size: {
                type: StringConstructor;
                default: string;
                validator: (s: unknown) => boolean;
            };
        }>> & Readonly<{}>, {
            size: string;
            ariaLabel: string;
        }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
    }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
    DtIconClose: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
        size: {
            type: StringConstructor;
            default: string;
            validator: (s: unknown) => boolean;
        };
        ariaLabel: {
            type: StringConstructor;
            default: undefined;
        };
    }>, {}, {}, {
        iconSizeClass(): any;
        ariaHidden(): "true" | "false";
        dataQA(): {};
    }, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "loaded"[], "loaded", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
        size: {
            type: StringConstructor;
            default: string;
            validator: (s: unknown) => boolean;
        };
        ariaLabel: {
            type: StringConstructor;
            default: undefined;
        };
    }>> & Readonly<{
        onLoaded?: ((...args: any[]) => any) | undefined;
    }>, {
        size: string;
        ariaLabel: string;
    }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
    SrOnlyCloseButton: import('vue').DefineComponent<{}, {}, {
        i18n: any;
    }, {
        closeButtonTitle(): any;
    }, {
        close(): void;
    }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "close"[], "close", import('vue').PublicProps, Readonly<{}> & Readonly<{
        onClose?: ((...args: any[]) => any) | undefined;
    }>, {}, {}, {
        DtIconClose: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
            size: {
                type: StringConstructor;
                default: string;
                validator: (s: unknown) => boolean;
            };
            ariaLabel: {
                type: StringConstructor;
                default: undefined;
            };
        }>, {}, {}, {
            iconSizeClass(): any;
            ariaHidden(): "true" | "false";
            dataQA(): {};
        }, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "loaded"[], "loaded", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
            size: {
                type: StringConstructor;
                default: string;
                validator: (s: unknown) => boolean;
            };
            ariaLabel: {
                type: StringConstructor;
                default: undefined;
            };
        }>> & Readonly<{
            onLoaded?: ((...args: any[]) => any) | undefined;
        }>, {
            size: string;
            ariaLabel: string;
        }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
        DtButton: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
            circle: {
                type: BooleanConstructor;
                default: boolean;
            };
            iconPosition: {
                type: StringConstructor;
                default: string;
                validator: (position: unknown) => boolean;
            };
            importance: {
                type: StringConstructor;
                default: string;
                validator: (i: unknown) => boolean;
            };
            link: {
                type: BooleanConstructor;
                default: boolean;
            };
            linkKind: {
                type: StringConstructor;
                default: string;
                validator: (lk: unknown) => boolean;
            };
            linkInverted: {
                type: BooleanConstructor;
                default: boolean;
            };
            disabled: {
                type: BooleanConstructor;
                default: boolean;
            };
            type: {
                type: StringConstructor;
                default: string;
                validator: (t: unknown) => boolean;
            };
            width: {
                type: StringConstructor;
                default: null;
            };
            size: {
                type: StringConstructor;
                default: string;
                validator: (s: unknown) => boolean;
            };
            labelClass: {
                type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
                default: string;
            };
            loading: {
                type: BooleanConstructor;
                default: boolean;
            };
            kind: {
                type: StringConstructor;
                default: string;
                validator: (k: unknown) => boolean;
            };
            assertiveOnFocus: {
                type: BooleanConstructor;
                default: boolean;
            };
            active: {
                type: BooleanConstructor;
                default: boolean;
            };
            to: {
                type: (ObjectConstructor | StringConstructor)[];
                default: null;
            };
            href: {
                type: StringConstructor;
                default: null;
            };
            target: {
                type: StringConstructor;
                default: null;
            };
            rel: {
                type: StringConstructor;
                default: null;
            };
            replace: {
                type: BooleanConstructor;
                default: boolean;
            };
        }>, {}, {
            ICON_POSITION_MODIFIERS: {
                left: string;
                right: string;
                top: string;
                bottom: string;
            };
            isInFocus: boolean;
            hasSlotContent: typeof hasSlotContent;
            i18n: any;
        }, {
            computedTag(): string | import('vue').ConcreteComponent<{}, any, any, import('vue').ComputedOptions, import('vue').MethodOptions, {}, any>;
            isNativeButton(): boolean;
            computedAttrs(): {
                'aria-disabled'?: string | undefined;
                tabindex?: string | undefined;
                to: string | Record<string, any>;
                replace: boolean;
                type?: undefined;
                disabled?: undefined;
            } | {
                'aria-disabled'?: string | undefined;
                tabindex?: string | undefined;
                href: string | null;
                target: string;
                rel: string;
                type?: undefined;
                disabled?: undefined;
            } | {
                type: string;
                disabled: boolean;
            };
            computedListeners(): {
                focusin: (e: any) => void;
                focusout: (e: any) => void;
            };
            computedAriaLive(): unknown;
            iconSize(): any;
            loaderSize(): any;
        }, {
            resolveRouterLink(): string | import('vue').ConcreteComponent<{}, any, any, import('vue').ComputedOptions, import('vue').MethodOptions, {}, any>;
            buttonClasses(): any[];
            isInvalidPropCombination(circle: any, kind: any, importance: any): boolean;
            shouldRenderIcon(): any;
            isIconOnly(): any;
            isVerticalIconLayout(): boolean;
        }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("focusin" | "focusout")[], "focusin" | "focusout", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
            circle: {
                type: BooleanConstructor;
                default: boolean;
            };
            iconPosition: {
                type: StringConstructor;
                default: string;
                validator: (position: unknown) => boolean;
            };
            importance: {
                type: StringConstructor;
                default: string;
                validator: (i: unknown) => boolean;
            };
            link: {
                type: BooleanConstructor;
                default: boolean;
            };
            linkKind: {
                type: StringConstructor;
                default: string;
                validator: (lk: unknown) => boolean;
            };
            linkInverted: {
                type: BooleanConstructor;
                default: boolean;
            };
            disabled: {
                type: BooleanConstructor;
                default: boolean;
            };
            type: {
                type: StringConstructor;
                default: string;
                validator: (t: unknown) => boolean;
            };
            width: {
                type: StringConstructor;
                default: null;
            };
            size: {
                type: StringConstructor;
                default: string;
                validator: (s: unknown) => boolean;
            };
            labelClass: {
                type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
                default: string;
            };
            loading: {
                type: BooleanConstructor;
                default: boolean;
            };
            kind: {
                type: StringConstructor;
                default: string;
                validator: (k: unknown) => boolean;
            };
            assertiveOnFocus: {
                type: BooleanConstructor;
                default: boolean;
            };
            active: {
                type: BooleanConstructor;
                default: boolean;
            };
            to: {
                type: (ObjectConstructor | StringConstructor)[];
                default: null;
            };
            href: {
                type: StringConstructor;
                default: null;
            };
            target: {
                type: StringConstructor;
                default: null;
            };
            rel: {
                type: StringConstructor;
                default: null;
            };
            replace: {
                type: BooleanConstructor;
                default: boolean;
            };
        }>> & Readonly<{
            onFocusin?: ((...args: any[]) => any) | undefined;
            onFocusout?: ((...args: any[]) => any) | undefined;
        }>, {
            link: boolean;
            disabled: boolean;
            type: string;
            target: string;
            circle: boolean;
            active: boolean;
            loading: boolean;
            size: string;
            replace: boolean;
            kind: string;
            labelClass: string | unknown[] | Record<string, any>;
            href: string;
            to: string | Record<string, any>;
            iconPosition: string;
            importance: string;
            linkKind: string;
            linkInverted: boolean;
            width: string;
            assertiveOnFocus: boolean;
            rel: string;
        }, {}, {
            DtLoader: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
                ariaLabel: {
                    type: StringConstructor;
                    default: string;
                };
                size: {
                    type: StringConstructor;
                    default: string;
                    validator: (s: unknown) => boolean;
                };
            }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
                ariaLabel: {
                    type: StringConstructor;
                    default: string;
                };
                size: {
                    type: StringConstructor;
                    default: string;
                    validator: (s: unknown) => boolean;
                };
            }>> & Readonly<{}>, {
                size: string;
                ariaLabel: string;
            }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
        }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
    }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export default _default;
//# sourceMappingURL=modal.vue.d.ts.map