import { PropType } from 'vue';
import { SlotsType } from 'vue';
import { type EditFormDialogConfirmOptions, EditFormDialogSlot } from './types';
/**
 * 新增/编辑表单弹框
 */
export declare const EditFormDialog: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    /**
     * 弹框类型
     */
    type: {
        type: PropType<"drawer" | "modal">;
        default: string;
    };
    /**
     * 根据是否有id，判断是否为编辑状态
     */
    id: {
        type: StringConstructor;
        required: true;
    };
    /**
     * 表单数据
     */
    model: ObjectConstructor;
    /**
     * 标题
     */
    title: StringConstructor;
    /**
     * 宽度
     */
    width: (StringConstructor | NumberConstructor)[];
    /**
     * 表单验证规则
     */
    rules: ObjectConstructor;
    /**
     * 是否禁用表单
     */
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否在弹框关闭时销毁整个表单
     */
    unmountOnClose: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 初始化表单数据
     */
    initModel: {
        type: PropType<() => Record<string, any>>;
        default: () => {};
    };
    /**
     * 新增方法
     */
    add: PropType<(model: Record<string, any>, options: EditFormDialogConfirmOptions) => Promise<any>>;
    /**
     * 编辑方法
     */
    edit: PropType<(model: Record<string, any>, options: EditFormDialogConfirmOptions) => Promise<any>>;
    /**
     * 自定义新增编辑时标题的前缀 ['新增', '编辑']
     */
    prefix: {
        type: PropType<[string, string]>;
        default: () => string[];
    };
    /**
     * 提交方法
     */
    onConfirm: PropType<(model: Record<string, any>, options: EditFormDialogConfirmOptions) => Promise<any>>;
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("success" | "update:visible" | "update:model" | "confirm" | "close")[], "success" | "update:visible" | "update:model" | "confirm" | "close", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    /**
     * 弹框类型
     */
    type: {
        type: PropType<"drawer" | "modal">;
        default: string;
    };
    /**
     * 根据是否有id，判断是否为编辑状态
     */
    id: {
        type: StringConstructor;
        required: true;
    };
    /**
     * 表单数据
     */
    model: ObjectConstructor;
    /**
     * 标题
     */
    title: StringConstructor;
    /**
     * 宽度
     */
    width: (StringConstructor | NumberConstructor)[];
    /**
     * 表单验证规则
     */
    rules: ObjectConstructor;
    /**
     * 是否禁用表单
     */
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否在弹框关闭时销毁整个表单
     */
    unmountOnClose: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 初始化表单数据
     */
    initModel: {
        type: PropType<() => Record<string, any>>;
        default: () => {};
    };
    /**
     * 新增方法
     */
    add: PropType<(model: Record<string, any>, options: EditFormDialogConfirmOptions) => Promise<any>>;
    /**
     * 编辑方法
     */
    edit: PropType<(model: Record<string, any>, options: EditFormDialogConfirmOptions) => Promise<any>>;
    /**
     * 自定义新增编辑时标题的前缀 ['新增', '编辑']
     */
    prefix: {
        type: PropType<[string, string]>;
        default: () => string[];
    };
    /**
     * 提交方法
     */
    onConfirm: PropType<(model: Record<string, any>, options: EditFormDialogConfirmOptions) => Promise<any>>;
}>> & Readonly<{
    onConfirm?: ((...args: any[]) => any) | undefined;
    onSuccess?: ((...args: any[]) => any) | undefined;
    "onUpdate:visible"?: ((...args: any[]) => any) | undefined;
    "onUpdate:model"?: ((...args: any[]) => any) | undefined;
    onClose?: ((...args: any[]) => any) | undefined;
}>, {
    type: "drawer" | "modal";
    disabled: boolean;
    unmountOnClose: boolean;
    initModel: () => Record<string, any>;
    prefix: [string, string];
}, SlotsType<{
    default: EditFormDialogSlot;
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export interface EditFormDialogInstance extends InstanceType<typeof EditFormDialog> {
    open(value: any): void;
}
