/**
 * 弹窗按钮配置接口
 */
export interface DialogButton {
    /** 按钮文本 */
    text: string;
    /** 按钮类型 */
    type?: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text' | 'default';
    /** 按钮尺寸 */
    size?: 'large' | 'default' | 'small';
    /** 是否显示加载状态 */
    loading?: boolean;
    /** 是否禁用 */
    disabled?: boolean;
    /** 自定义类名 */
    class?: string;
    /** 自定义样式 */
    style?: string | Record<string, any>;
    /** 图标 */
    icon?: string;
    /** 按钮动作 */
    action?: string;
    /** 按钮点击回调 */
    callback?: () => boolean | void | Promise<boolean | void>;
}
/**
 * 弹窗组件Props接口
 */
export interface DialogProps {
    /** 是否显示弹窗 */
    visible: boolean;
    /** 弹窗宽度 */
    width?: string;
    /** 标题 */
    title?: string;
    /** 内容（当没有插槽时使用） */
    content?: string;
    /** 是否显示底部按钮区域 */
    showFooter?: boolean;
    /** 是否点击模态层关闭弹窗 */
    closeOnClickModal?: boolean;
    /** 按钮配置 */
    buttons?: DialogButton[];
    /** 自定义类名 */
    customClass?: string;
}
/**
 * 弹窗服务选项接口
 */
export interface DialogOptions extends Partial<DialogProps> {
    /** 弹窗标题 */
    title?: string;
    /** 弹窗内容 */
    content?: string;
    /** 弹窗宽度 */
    width?: string;
    /** 距离顶部位置 */
    top?: string;
    /** 是否显示遮罩层 */
    modal?: boolean;
    /** 是否锁定滚动 */
    lockScroll?: boolean;
    /** 是否点击遮罩层关闭 */
    closeOnClickModal?: boolean;
    /** 是否按ESC键关闭 */
    closeOnPressEscape?: boolean;
    /** 是否显示关闭按钮 */
    showClose?: boolean;
    /** 是否居中显示 */
    center?: boolean;
    /** 自定义类名 */
    customClass?: string;
    /** 是否显示底部按钮区域 */
    showFooter?: boolean;
    /** 按钮配置 */
    buttons?: DialogButton[];
}
/**
 * 弹窗服务返回结果接口
 */
export interface DialogResult {
    /** 动作类型 */
    action: string;
    /** 按钮配置 */
    button?: DialogButton;
    /** 按钮索引 */
    index?: number;
}
/**
 * 弹窗服务接口
 */
export interface DialogService {
    /** 警告弹窗 */
    alert: (content: string, title?: string, options?: DialogOptions) => Promise<DialogResult>;
    /** 确认弹窗 */
    confirm: (content: string, title?: string, options?: DialogOptions) => Promise<DialogResult>;
    /** 成功提示弹窗 */
    success: (content: string, title?: string, options?: DialogOptions) => Promise<DialogResult>;
    /** 错误提示弹窗 */
    error: (content: string, title?: string, options?: DialogOptions) => Promise<DialogResult>;
    /** 信息提示弹窗 */
    info: (content: string, title?: string, options?: DialogOptions) => Promise<DialogResult>;
    /** 自定义弹窗 */
    custom: (options: DialogOptions) => Promise<DialogResult>;
    /** 显示弹窗 */
    show: (options: DialogOptions) => Promise<DialogResult>;
    /** 作为 Vue 插件安装（可选） */
    install?: (app: import('vue').App) => void;
}
