import { DialogCloseContext, TdDialogProps, DialogInstance } from './type';
import './style';
export type DialogType = 'alert' | 'confirm' | 'show';
type DialogApi = {
    show: (options: Partial<TdDialogProps> | string) => DialogInstance;
    alert: (options: Partial<TdDialogProps> | string) => DialogInstance;
    confirm: (options: Partial<TdDialogProps> | string) => DialogInstance;
};
export declare const DialogPlugin: {
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        actions: {
            type: import("vue").PropType<import("@/button").TdButtonProps[]>;
        };
        beforeClose: {
            type: import("vue").PropType<(trigger: "cancel" | "close-btn" | "confirm" | "overlay", context: {
                e: MouseEvent;
            }) => void | Promise<void>>;
        };
        buttonLayout: {
            type: import("vue").PropType<"horizontal" | "vertical">;
            default: "horizontal" | "vertical";
            validator(val: "horizontal" | "vertical"): boolean;
        };
        cancelBtn: {
            type: import("vue").PropType<string | import("@/button").TdButtonProps | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
        };
        closeBtn: BooleanConstructor;
        closeOnOverlayClick: BooleanConstructor;
        confirmBtn: {
            type: import("vue").PropType<string | import("@/button").TdButtonProps | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
        };
        content: {
            type: import("vue").PropType<string | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
        };
        destroyOnClose: BooleanConstructor;
        middle: {
            type: import("vue").PropType<(h: typeof import("vue").h) => import("@/common").SlotReturnValue>;
        };
        overlayProps: {
            type: import("vue").PropType<import("@/overlay/type").TdOverlayProps>;
            default: () => {};
        };
        preventScrollThrough: {
            type: BooleanConstructor;
            default: boolean;
        };
        showOverlay: {
            type: BooleanConstructor;
            default: boolean;
        };
        title: {
            type: import("vue").PropType<string | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
        };
        top: {
            type: import("vue").PropType<(h: typeof import("vue").h) => import("@/common").SlotReturnValue>;
        };
        visible: BooleanConstructor;
        width: {
            type: import("vue").PropType<string | number>;
        };
        zIndex: {
            type: NumberConstructor;
        };
        onCancel: import("vue").PropType<(context: {
            e: MouseEvent;
        }) => void>;
        onClose: import("vue").PropType<(context: DialogCloseContext) => void>;
        onClosed: import("vue").PropType<() => void>;
        onConfirm: import("vue").PropType<(context: {
            e: MouseEvent;
        }) => void>;
        onOverlayClick: import("vue").PropType<(context: {
            e: MouseEvent;
        }) => void>;
    }>> & Readonly<{
        onCancel?: (...args: any[]) => any;
        onClose?: (...args: any[]) => any;
        onClosed?: (...args: any[]) => any;
        onConfirm?: (...args: any[]) => any;
        "onOverlay-click"?: (...args: any[]) => any;
        "onUpdate:visible"?: (...args: any[]) => any;
    }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "close" | "closed" | "confirm" | "overlay-click" | "update:visible")[], import("vue").PublicProps, {
        buttonLayout: "horizontal" | "vertical";
        closeBtn: boolean;
        closeOnOverlayClick: boolean;
        destroyOnClose: boolean;
        overlayProps: import("@/overlay/type").TdOverlayProps;
        preventScrollThrough: boolean;
        showOverlay: boolean;
        visible: boolean;
    }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        actions: {
            type: import("vue").PropType<import("@/button").TdButtonProps[]>;
        };
        beforeClose: {
            type: import("vue").PropType<(trigger: "cancel" | "close-btn" | "confirm" | "overlay", context: {
                e: MouseEvent;
            }) => void | Promise<void>>;
        };
        buttonLayout: {
            type: import("vue").PropType<"horizontal" | "vertical">;
            default: "horizontal" | "vertical";
            validator(val: "horizontal" | "vertical"): boolean;
        };
        cancelBtn: {
            type: import("vue").PropType<string | import("@/button").TdButtonProps | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
        };
        closeBtn: BooleanConstructor;
        closeOnOverlayClick: BooleanConstructor;
        confirmBtn: {
            type: import("vue").PropType<string | import("@/button").TdButtonProps | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
        };
        content: {
            type: import("vue").PropType<string | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
        };
        destroyOnClose: BooleanConstructor;
        middle: {
            type: import("vue").PropType<(h: typeof import("vue").h) => import("@/common").SlotReturnValue>;
        };
        overlayProps: {
            type: import("vue").PropType<import("@/overlay/type").TdOverlayProps>;
            default: () => {};
        };
        preventScrollThrough: {
            type: BooleanConstructor;
            default: boolean;
        };
        showOverlay: {
            type: BooleanConstructor;
            default: boolean;
        };
        title: {
            type: import("vue").PropType<string | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
        };
        top: {
            type: import("vue").PropType<(h: typeof import("vue").h) => import("@/common").SlotReturnValue>;
        };
        visible: BooleanConstructor;
        width: {
            type: import("vue").PropType<string | number>;
        };
        zIndex: {
            type: NumberConstructor;
        };
        onCancel: import("vue").PropType<(context: {
            e: MouseEvent;
        }) => void>;
        onClose: import("vue").PropType<(context: DialogCloseContext) => void>;
        onClosed: import("vue").PropType<() => void>;
        onConfirm: import("vue").PropType<(context: {
            e: MouseEvent;
        }) => void>;
        onOverlayClick: import("vue").PropType<(context: {
            e: MouseEvent;
        }) => void>;
    }>> & Readonly<{
        onCancel?: (...args: any[]) => any;
        onClose?: (...args: any[]) => any;
        onClosed?: (...args: any[]) => any;
        onConfirm?: (...args: any[]) => any;
        "onOverlay-click"?: (...args: any[]) => any;
        "onUpdate:visible"?: (...args: any[]) => any;
    }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
        buttonLayout: "horizontal" | "vertical";
        closeBtn: boolean;
        closeOnOverlayClick: boolean;
        destroyOnClose: boolean;
        overlayProps: import("@/overlay/type").TdOverlayProps;
        preventScrollThrough: boolean;
        showOverlay: boolean;
        visible: boolean;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    actions: {
        type: import("vue").PropType<import("@/button").TdButtonProps[]>;
    };
    beforeClose: {
        type: import("vue").PropType<(trigger: "cancel" | "close-btn" | "confirm" | "overlay", context: {
            e: MouseEvent;
        }) => void | Promise<void>>;
    };
    buttonLayout: {
        type: import("vue").PropType<"horizontal" | "vertical">;
        default: "horizontal" | "vertical";
        validator(val: "horizontal" | "vertical"): boolean;
    };
    cancelBtn: {
        type: import("vue").PropType<string | import("@/button").TdButtonProps | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
    };
    closeBtn: BooleanConstructor;
    closeOnOverlayClick: BooleanConstructor;
    confirmBtn: {
        type: import("vue").PropType<string | import("@/button").TdButtonProps | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
    };
    content: {
        type: import("vue").PropType<string | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
    };
    destroyOnClose: BooleanConstructor;
    middle: {
        type: import("vue").PropType<(h: typeof import("vue").h) => import("@/common").SlotReturnValue>;
    };
    overlayProps: {
        type: import("vue").PropType<import("@/overlay/type").TdOverlayProps>;
        default: () => {};
    };
    preventScrollThrough: {
        type: BooleanConstructor;
        default: boolean;
    };
    showOverlay: {
        type: BooleanConstructor;
        default: boolean;
    };
    title: {
        type: import("vue").PropType<string | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
    };
    top: {
        type: import("vue").PropType<(h: typeof import("vue").h) => import("@/common").SlotReturnValue>;
    };
    visible: BooleanConstructor;
    width: {
        type: import("vue").PropType<string | number>;
    };
    zIndex: {
        type: NumberConstructor;
    };
    onCancel: import("vue").PropType<(context: {
        e: MouseEvent;
    }) => void>;
    onClose: import("vue").PropType<(context: DialogCloseContext) => void>;
    onClosed: import("vue").PropType<() => void>;
    onConfirm: import("vue").PropType<(context: {
        e: MouseEvent;
    }) => void>;
    onOverlayClick: import("vue").PropType<(context: {
        e: MouseEvent;
    }) => void>;
}>> & Readonly<{
    onCancel?: (...args: any[]) => any;
    onClose?: (...args: any[]) => any;
    onClosed?: (...args: any[]) => any;
    onConfirm?: (...args: any[]) => any;
    "onOverlay-click"?: (...args: any[]) => any;
    "onUpdate:visible"?: (...args: any[]) => any;
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "close" | "closed" | "confirm" | "overlay-click" | "update:visible")[], "cancel" | "close" | "closed" | "confirm" | "overlay-click" | "update:visible", {
    buttonLayout: "horizontal" | "vertical";
    closeBtn: boolean;
    closeOnOverlayClick: boolean;
    destroyOnClose: boolean;
    overlayProps: import("@/overlay/type").TdOverlayProps;
    preventScrollThrough: boolean;
    showOverlay: boolean;
    visible: boolean;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & DialogApi;
export default DialogPlugin;
declare module 'vue' {
    interface ComponentCustomProperties {
        $dialog: DialogApi;
    }
}
