import { Component, Ref } from 'vue';
export interface IModalInstance {
    bodyRef: Ref<any>;
    close: () => void;
    setLoading: (v: boolean) => void;
}
export interface IModalContext extends IModalInstance {
    setOnConfirm: (fn: any) => void;
}
export interface IModalOptions {
    title: string;
    body: Component | null;
    bodyProps?: any;
    width?: number;
    height?: number;
    zIndex?: number;
    className?: string;
    closable?: boolean;
    closeOnEsc?: boolean;
    closeOnMaskClick?: boolean;
    showFooter?: boolean;
    showCancel?: boolean;
    showConfirmContinue?: boolean;
    confirmText?: string;
    confirmContinueText?: string;
    cancelText?: string;
    onConfirm?: (ins: IModalInstance) => Promise<void> | void;
    onConfirmContinue?: (ins: IModalInstance) => Promise<void> | void;
    onCancel?: (ins: IModalInstance) => Promise<void> | void;
}
export interface IModalProps extends IModalOptions {
    __onRegisterIns: (ins: IModalInstance) => void;
    __onDestroyed: () => void;
}
