import { Component, PropType, TransitionProps } from 'vue';
export type DialogCloseReason = "close" | "backdrop" | "escape" | "programmatic";
export type DialogDoneFn = (cancel?: boolean) => void;
export type DialogBeforeCloseFn = (done: DialogDoneFn, reason?: DialogCloseReason) => void | Promise<void>;
export type DialogTransition = string | TransitionProps;
export type DialogModelValueChangeHandler = (value: boolean) => void;
export type DialogFullscreenChangeHandler = (value: boolean) => void;
export type DialogResizeHandler = (event: MouseEvent, width: number, height: number) => void;
export interface DialogGlobalConfig {
    alignCenter?: boolean;
    draggable?: boolean;
    overflow?: boolean;
    lockScroll?: boolean;
    closeOnClickModal?: boolean;
    closeOnPressEscape?: boolean;
    transition?: DialogTransition;
    resizable?: boolean;
    maximizable?: boolean;
    stickyHeader?: boolean;
    stickyFooter?: boolean;
}
export interface DialogProps {
    modelValue?: boolean;
    title?: string;
    appendToBody?: boolean;
    appendTo?: string | HTMLElement;
    beforeClose?: DialogBeforeCloseFn;
    destroyOnClose?: boolean;
    closeOnClickModal?: boolean;
    closeOnPressEscape?: boolean;
    lockScroll?: boolean;
    modal?: boolean;
    modalPenetrable?: boolean;
    openDelay?: number;
    closeDelay?: number;
    top?: string;
    modalClass?: string;
    panelClass?: string;
    width?: string | number;
    zIndex?: number;
    center?: boolean;
    alignCenter?: boolean;
    closeIcon?: string | Component;
    draggable?: boolean;
    overflow?: boolean;
    fullscreen?: boolean;
    resizable?: boolean;
    minWidth?: string | number;
    maxWidth?: string | number;
    minHeight?: string | number;
    maxHeight?: string | number;
    maximizable?: boolean;
    stickyHeader?: boolean;
    stickyFooter?: boolean;
    bodyMaxHeight?: string | number;
    loading?: boolean;
    loadingText?: string;
    headerClass?: string;
    bodyClass?: string;
    footerClass?: string;
    showClose?: boolean;
    headerAriaLevel?: string;
    transition?: DialogTransition;
}
export declare const dialogProps: {
    modelValue: {
        type: BooleanConstructor;
        default: boolean;
    };
    title: {
        type: StringConstructor;
        default: string;
    };
    appendToBody: {
        type: BooleanConstructor;
        default: boolean;
    };
    appendTo: {
        type: PropType<string | HTMLElement>;
        default: string;
    };
    beforeClose: {
        type: PropType<DialogBeforeCloseFn>;
        default: undefined;
    };
    destroyOnClose: {
        type: BooleanConstructor;
        default: boolean;
    };
    closeOnClickModal: {
        type: BooleanConstructor;
        default: undefined;
    };
    closeOnPressEscape: {
        type: BooleanConstructor;
        default: undefined;
    };
    lockScroll: {
        type: BooleanConstructor;
        default: undefined;
    };
    modal: {
        type: BooleanConstructor;
        default: boolean;
    };
    modalPenetrable: {
        type: BooleanConstructor;
        default: boolean;
    };
    openDelay: {
        type: NumberConstructor;
        default: number;
    };
    closeDelay: {
        type: NumberConstructor;
        default: number;
    };
    top: {
        type: StringConstructor;
        default: string;
    };
    modalClass: {
        type: StringConstructor;
        default: string;
    };
    panelClass: {
        type: StringConstructor;
        default: string;
    };
    width: {
        type: PropType<string | number | undefined>;
        default: undefined;
    };
    zIndex: {
        type: NumberConstructor;
        default: undefined;
    };
    center: {
        type: BooleanConstructor;
        default: boolean;
    };
    alignCenter: {
        type: BooleanConstructor;
        default: undefined;
    };
    closeIcon: {
        type: PropType<string | Component>;
        default: string;
    };
    draggable: {
        type: BooleanConstructor;
        default: undefined;
    };
    overflow: {
        type: BooleanConstructor;
        default: undefined;
    };
    fullscreen: {
        type: BooleanConstructor;
        default: undefined;
    };
    resizable: {
        type: BooleanConstructor;
        default: undefined;
    };
    minWidth: {
        type: PropType<string | number | undefined>;
        default: undefined;
    };
    maxWidth: {
        type: PropType<string | number | undefined>;
        default: undefined;
    };
    minHeight: {
        type: PropType<string | number | undefined>;
        default: undefined;
    };
    maxHeight: {
        type: PropType<string | number | undefined>;
        default: undefined;
    };
    maximizable: {
        type: BooleanConstructor;
        default: undefined;
    };
    stickyHeader: {
        type: BooleanConstructor;
        default: undefined;
    };
    stickyFooter: {
        type: BooleanConstructor;
        default: undefined;
    };
    bodyMaxHeight: {
        type: PropType<string | number | undefined>;
        default: undefined;
    };
    loading: {
        type: BooleanConstructor;
        default: boolean;
    };
    loadingText: {
        type: StringConstructor;
        default: string;
    };
    headerClass: {
        type: StringConstructor;
        default: string;
    };
    bodyClass: {
        type: StringConstructor;
        default: string;
    };
    footerClass: {
        type: StringConstructor;
        default: string;
    };
    showClose: {
        type: BooleanConstructor;
        default: boolean;
    };
    headerAriaLevel: {
        type: StringConstructor;
        default: string;
    };
    transition: {
        type: PropType<DialogTransition>;
        default: undefined;
    };
};
