import { Ref, PropType, nextTick } from 'vue';
import { ElForm } from 'element-plus';
import { ComponentSchema, FormDataModel } from '../../../core/types/epic-designer';
interface FormInstance extends InstanceType<typeof ElForm> {
    getData?: () => Promise<FormDataModel> | FormDataModel;
    setData?: (FormDataModel: any) => void;
}
/**
 * 获取表单数据
 * @param formName 表单name
 */
declare function getData(): Promise<FormDataModel>;
/**
 * 设置表单数据
 * @param data
 */
declare function setData(data: FormDataModel): void;
/**
 * 校验表单数据
 * @param data
 */
declare function validate(): import('element-plus').FormValidationResult | undefined;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        'edit-node'?(_: {}): any;
        node?(_: {
            componentSchema: ComponentSchema;
        }): any;
    };
    refs: {
        form: ({
            $: import('vue').ComponentInternalInstance;
            $data: {};
            $props: Partial<{
                labelWidth: string | number;
                labelPosition: "left" | "right" | "top";
                requireAsteriskPosition: "left" | "right";
                labelSuffix: string;
                showMessage: boolean;
                validateOnRuleChange: boolean;
                scrollIntoViewOptions: ScrollIntoViewOptions | boolean;
            }> & Omit<{
                readonly labelWidth: string | number;
                readonly labelPosition: "left" | "right" | "top";
                readonly requireAsteriskPosition: "left" | "right";
                readonly labelSuffix: string;
                readonly showMessage: boolean;
                readonly validateOnRuleChange: boolean;
                readonly scrollIntoViewOptions: ScrollIntoViewOptions | boolean;
                readonly rules?: import('element-plus').FormRules | undefined;
                readonly size?: import('element-plus').ComponentSize | undefined;
                readonly disabled?: boolean | undefined;
                readonly model?: Record<string, any> | undefined;
                readonly inline?: boolean | undefined;
                readonly inlineMessage?: boolean | undefined;
                readonly statusIcon?: boolean | undefined;
                readonly hideRequiredAsterisk?: boolean | undefined;
                readonly scrollToError?: boolean | undefined;
                onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined | undefined;
            } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "labelWidth" | "labelPosition" | "requireAsteriskPosition" | "labelSuffix" | "showMessage" | "validateOnRuleChange" | "scrollIntoViewOptions">;
            $attrs: import('vue').Attrs;
            $refs: {
                [x: string]: unknown;
            };
            $slots: Readonly<{
                [name: string]: import('vue').Slot<any> | undefined;
            }>;
            $root: import('vue').ComponentPublicInstance | null;
            $parent: import('vue').ComponentPublicInstance | null;
            $host: Element | null;
            $emit: (event: "validate", prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => void;
            $el: any;
            $options: import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
                rules: {
                    type: PropType<Partial<Record<string, Record<string, any> | import('element-plus/es/utils').Arrayable<import('element-plus').FormItemRule>>>>;
                };
                size: {
                    type: PropType<"" | "small" | "default" | "large">;
                };
                labelWidth: {
                    type: PropType<string | number>;
                    default: string;
                };
                disabled: {
                    type: PropType<boolean>;
                };
                model: {
                    type: PropType<Record<string, any>>;
                };
                inline: {
                    type: PropType<boolean>;
                };
                labelPosition: {
                    type: PropType<"right" | "left" | "top">;
                    default: string;
                };
                requireAsteriskPosition: {
                    type: PropType<"right" | "left">;
                    default: string;
                };
                labelSuffix: {
                    type: PropType<string>;
                    default: string;
                };
                inlineMessage: {
                    type: PropType<boolean>;
                };
                statusIcon: {
                    type: PropType<boolean>;
                };
                showMessage: {
                    type: PropType<boolean>;
                    default: boolean;
                };
                validateOnRuleChange: {
                    type: PropType<boolean>;
                    default: boolean;
                };
                hideRequiredAsterisk: {
                    type: PropType<boolean>;
                };
                scrollToError: {
                    type: PropType<boolean>;
                };
                scrollIntoViewOptions: {
                    type: PropType<boolean | ScrollIntoViewOptions>;
                    default: boolean;
                };
            }>> & {
                onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined;
            }, {
                validate: (callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
                validateField: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>, callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
                resetFields: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>) => void;
                clearValidate: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>) => void;
                scrollToField: (prop: import('element-plus').FormItemProp) => void;
                getField: (prop: import('element-plus').FormItemProp) => import('element-plus').FormItemContext | undefined;
                fields: import('vue').Reactive<import('element-plus').FormItemContext[]>;
                setInitialValues: (initModel: Record<string, any>) => void;
            }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
                validate: (prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => void;
            }, string, {
                labelWidth: string | number;
                labelPosition: "left" | "right" | "top";
                requireAsteriskPosition: "left" | "right";
                labelSuffix: string;
                showMessage: boolean;
                validateOnRuleChange: boolean;
                scrollIntoViewOptions: ScrollIntoViewOptions | boolean;
            }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
                beforeCreate?: (() => void) | (() => void)[];
                created?: (() => void) | (() => void)[];
                beforeMount?: (() => void) | (() => void)[];
                mounted?: (() => void) | (() => void)[];
                beforeUpdate?: (() => void) | (() => void)[];
                updated?: (() => void) | (() => void)[];
                activated?: (() => void) | (() => void)[];
                deactivated?: (() => void) | (() => void)[];
                beforeDestroy?: (() => void) | (() => void)[];
                beforeUnmount?: (() => void) | (() => void)[];
                destroyed?: (() => void) | (() => void)[];
                unmounted?: (() => void) | (() => void)[];
                renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
            };
            $forceUpdate: () => void;
            $nextTick: typeof nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
        } & Readonly<{
            labelWidth: string | number;
            labelPosition: "left" | "right" | "top";
            requireAsteriskPosition: "left" | "right";
            labelSuffix: string;
            showMessage: boolean;
            validateOnRuleChange: boolean;
            scrollIntoViewOptions: ScrollIntoViewOptions | boolean;
        }> & Omit<Readonly<import('vue').ExtractPropTypes<{
            rules: {
                type: PropType<Partial<Record<string, Record<string, any> | import('element-plus/es/utils').Arrayable<import('element-plus').FormItemRule>>>>;
            };
            size: {
                type: PropType<"" | "small" | "default" | "large">;
            };
            labelWidth: {
                type: PropType<string | number>;
                default: string;
            };
            disabled: {
                type: PropType<boolean>;
            };
            model: {
                type: PropType<Record<string, any>>;
            };
            inline: {
                type: PropType<boolean>;
            };
            labelPosition: {
                type: PropType<"right" | "left" | "top">;
                default: string;
            };
            requireAsteriskPosition: {
                type: PropType<"right" | "left">;
                default: string;
            };
            labelSuffix: {
                type: PropType<string>;
                default: string;
            };
            inlineMessage: {
                type: PropType<boolean>;
            };
            statusIcon: {
                type: PropType<boolean>;
            };
            showMessage: {
                type: PropType<boolean>;
                default: boolean;
            };
            validateOnRuleChange: {
                type: PropType<boolean>;
                default: boolean;
            };
            hideRequiredAsterisk: {
                type: PropType<boolean>;
            };
            scrollToError: {
                type: PropType<boolean>;
            };
            scrollIntoViewOptions: {
                type: PropType<boolean | ScrollIntoViewOptions>;
                default: boolean;
            };
        }>> & {
            onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined;
        }, "labelWidth" | "validate" | "labelPosition" | "requireAsteriskPosition" | "labelSuffix" | "showMessage" | "validateOnRuleChange" | "scrollIntoViewOptions" | "validateField" | "resetFields" | "clearValidate" | "scrollToField" | "getField" | "fields" | "setInitialValues"> & import('vue').ShallowUnwrapRef<{
            validate: (callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
            validateField: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>, callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
            resetFields: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>) => void;
            clearValidate: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>) => void;
            scrollToField: (prop: import('element-plus').FormItemProp) => void;
            getField: (prop: import('element-plus').FormItemProp) => import('element-plus').FormItemContext | undefined;
            fields: import('vue').Reactive<import('element-plus').FormItemContext[]>;
            setInitialValues: (initModel: Record<string, any>) => void;
        }> & {} & import('vue').ComponentCustomProperties & {} & {
            $slots: {
                default?: (props: {}) => any;
            };
        }) | null;
        signatureCanvas: HTMLCanvasElement;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    componentSchema: {
        type: PropType<ComponentSchema>;
        require: boolean;
        default: () => {};
    };
}>, {
    form: Ref<FormInstance | null, FormInstance | null>;
    getData: typeof getData;
    setData: typeof setData;
    validate: typeof validate;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    componentSchema: {
        type: PropType<ComponentSchema>;
        require: boolean;
        default: () => {};
    };
}>> & Readonly<{}>, {
    componentSchema: ComponentSchema;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
    form: ({
        $: import('vue').ComponentInternalInstance;
        $data: {};
        $props: Partial<{
            labelWidth: string | number;
            labelPosition: "left" | "right" | "top";
            requireAsteriskPosition: "left" | "right";
            labelSuffix: string;
            showMessage: boolean;
            validateOnRuleChange: boolean;
            scrollIntoViewOptions: ScrollIntoViewOptions | boolean;
        }> & Omit<{
            readonly labelWidth: string | number;
            readonly labelPosition: "left" | "right" | "top";
            readonly requireAsteriskPosition: "left" | "right";
            readonly labelSuffix: string;
            readonly showMessage: boolean;
            readonly validateOnRuleChange: boolean;
            readonly scrollIntoViewOptions: ScrollIntoViewOptions | boolean;
            readonly rules?: import('element-plus').FormRules | undefined;
            readonly size?: import('element-plus').ComponentSize | undefined;
            readonly disabled?: boolean | undefined;
            readonly model?: Record<string, any> | undefined;
            readonly inline?: boolean | undefined;
            readonly inlineMessage?: boolean | undefined;
            readonly statusIcon?: boolean | undefined;
            readonly hideRequiredAsterisk?: boolean | undefined;
            readonly scrollToError?: boolean | undefined;
            onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined | undefined;
        } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "labelWidth" | "labelPosition" | "requireAsteriskPosition" | "labelSuffix" | "showMessage" | "validateOnRuleChange" | "scrollIntoViewOptions">;
        $attrs: import('vue').Attrs;
        $refs: {
            [x: string]: unknown;
        };
        $slots: Readonly<{
            [name: string]: import('vue').Slot<any> | undefined;
        }>;
        $root: import('vue').ComponentPublicInstance | null;
        $parent: import('vue').ComponentPublicInstance | null;
        $host: Element | null;
        $emit: (event: "validate", prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => void;
        $el: any;
        $options: import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
            rules: {
                type: PropType<Partial<Record<string, Record<string, any> | import('element-plus/es/utils').Arrayable<import('element-plus').FormItemRule>>>>;
            };
            size: {
                type: PropType<"" | "small" | "default" | "large">;
            };
            labelWidth: {
                type: PropType<string | number>;
                default: string;
            };
            disabled: {
                type: PropType<boolean>;
            };
            model: {
                type: PropType<Record<string, any>>;
            };
            inline: {
                type: PropType<boolean>;
            };
            labelPosition: {
                type: PropType<"right" | "left" | "top">;
                default: string;
            };
            requireAsteriskPosition: {
                type: PropType<"right" | "left">;
                default: string;
            };
            labelSuffix: {
                type: PropType<string>;
                default: string;
            };
            inlineMessage: {
                type: PropType<boolean>;
            };
            statusIcon: {
                type: PropType<boolean>;
            };
            showMessage: {
                type: PropType<boolean>;
                default: boolean;
            };
            validateOnRuleChange: {
                type: PropType<boolean>;
                default: boolean;
            };
            hideRequiredAsterisk: {
                type: PropType<boolean>;
            };
            scrollToError: {
                type: PropType<boolean>;
            };
            scrollIntoViewOptions: {
                type: PropType<boolean | ScrollIntoViewOptions>;
                default: boolean;
            };
        }>> & {
            onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined;
        }, {
            validate: (callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
            validateField: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>, callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
            resetFields: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>) => void;
            clearValidate: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>) => void;
            scrollToField: (prop: import('element-plus').FormItemProp) => void;
            getField: (prop: import('element-plus').FormItemProp) => import('element-plus').FormItemContext | undefined;
            fields: import('vue').Reactive<import('element-plus').FormItemContext[]>;
            setInitialValues: (initModel: Record<string, any>) => void;
        }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
            validate: (prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => void;
        }, string, {
            labelWidth: string | number;
            labelPosition: "left" | "right" | "top";
            requireAsteriskPosition: "left" | "right";
            labelSuffix: string;
            showMessage: boolean;
            validateOnRuleChange: boolean;
            scrollIntoViewOptions: ScrollIntoViewOptions | boolean;
        }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
            beforeCreate?: (() => void) | (() => void)[];
            created?: (() => void) | (() => void)[];
            beforeMount?: (() => void) | (() => void)[];
            mounted?: (() => void) | (() => void)[];
            beforeUpdate?: (() => void) | (() => void)[];
            updated?: (() => void) | (() => void)[];
            activated?: (() => void) | (() => void)[];
            deactivated?: (() => void) | (() => void)[];
            beforeDestroy?: (() => void) | (() => void)[];
            beforeUnmount?: (() => void) | (() => void)[];
            destroyed?: (() => void) | (() => void)[];
            unmounted?: (() => void) | (() => void)[];
            renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
            renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: typeof nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
    } & Readonly<{
        labelWidth: string | number;
        labelPosition: "left" | "right" | "top";
        requireAsteriskPosition: "left" | "right";
        labelSuffix: string;
        showMessage: boolean;
        validateOnRuleChange: boolean;
        scrollIntoViewOptions: ScrollIntoViewOptions | boolean;
    }> & Omit<Readonly<import('vue').ExtractPropTypes<{
        rules: {
            type: PropType<Partial<Record<string, Record<string, any> | import('element-plus/es/utils').Arrayable<import('element-plus').FormItemRule>>>>;
        };
        size: {
            type: PropType<"" | "small" | "default" | "large">;
        };
        labelWidth: {
            type: PropType<string | number>;
            default: string;
        };
        disabled: {
            type: PropType<boolean>;
        };
        model: {
            type: PropType<Record<string, any>>;
        };
        inline: {
            type: PropType<boolean>;
        };
        labelPosition: {
            type: PropType<"right" | "left" | "top">;
            default: string;
        };
        requireAsteriskPosition: {
            type: PropType<"right" | "left">;
            default: string;
        };
        labelSuffix: {
            type: PropType<string>;
            default: string;
        };
        inlineMessage: {
            type: PropType<boolean>;
        };
        statusIcon: {
            type: PropType<boolean>;
        };
        showMessage: {
            type: PropType<boolean>;
            default: boolean;
        };
        validateOnRuleChange: {
            type: PropType<boolean>;
            default: boolean;
        };
        hideRequiredAsterisk: {
            type: PropType<boolean>;
        };
        scrollToError: {
            type: PropType<boolean>;
        };
        scrollIntoViewOptions: {
            type: PropType<boolean | ScrollIntoViewOptions>;
            default: boolean;
        };
    }>> & {
        onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined;
    }, "labelWidth" | "validate" | "labelPosition" | "requireAsteriskPosition" | "labelSuffix" | "showMessage" | "validateOnRuleChange" | "scrollIntoViewOptions" | "validateField" | "resetFields" | "clearValidate" | "scrollToField" | "getField" | "fields" | "setInitialValues"> & import('vue').ShallowUnwrapRef<{
        validate: (callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
        validateField: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>, callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
        resetFields: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>) => void;
        clearValidate: (props?: import('element-plus/es/utils').Arrayable<import('element-plus').FormItemProp>) => void;
        scrollToField: (prop: import('element-plus').FormItemProp) => void;
        getField: (prop: import('element-plus').FormItemProp) => import('element-plus').FormItemContext | undefined;
        fields: import('vue').Reactive<import('element-plus').FormItemContext[]>;
        setInitialValues: (initModel: Record<string, any>) => void;
    }> & {} & import('vue').ComponentCustomProperties & {} & {
        $slots: {
            default?: (props: {}) => any;
        };
    }) | null;
    signatureCanvas: HTMLCanvasElement;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
