import type { TooltipProps } from 'll-plus/es/components';
import type { ColProps, FormItemProps, RowProps } from 'ant-design-vue';
import type { ExtractPropTypes } from 'vue';
import type Form from '../form.vue';
type FormType<T = any> = ('input' | 'input-number' | 'cascader' | 'checkbox' | 'checkbox-group' | 'code-editor' | 'date-picker' | 'time-picker' | 'date-range' | 'time-range' | 'radio' | 'radio-group' | 'select' | 'switch' | 'textarea' | 'upload-image') & T;
export interface FormChangeEvent {
    item: FormColumn;
    value: any;
    formData: FormData;
}
export interface BasicFormColumn extends FormItemProps {
    label?: string;
    key: string;
    spanCol?: number | 24;
    colOptions?: ColProps;
    tip?: string;
    info?: string;
    tipConfig?: TooltipProps;
    type: FormType;
    unit?: string;
    change?: () => void;
    rowOptions?: RowProps;
    children?: FormColumn[];
    [key: string]: any;
}
export type FormColumn<T = any> = BasicFormColumn & T;
export type FormData = Record<string, any>;
export declare const formProps: {
    readonly formColumns: import("ll-plus/es/utils").EpPropFinalized<import("vue").PropType<any[]>, unknown, unknown, () => any[], boolean>;
    readonly formOptions: import("ll-plus/es/utils").EpPropFinalized<import("vue").PropType<Partial<ExtractPropTypes<{
        layout: import("vue-types").VueTypeDef<string>;
        labelCol: {
            type: import("vue").PropType<Partial<ExtractPropTypes<{
                span: (StringConstructor | NumberConstructor)[];
                order: (StringConstructor | NumberConstructor)[];
                offset: (StringConstructor | NumberConstructor)[];
                push: (StringConstructor | NumberConstructor)[];
                pull: (StringConstructor | NumberConstructor)[];
                xs: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                sm: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                md: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                lg: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                xl: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                xxl: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                prefixCls: StringConstructor;
                flex: (StringConstructor | NumberConstructor)[];
            }>> & import("vue").HTMLAttributes>;
            default: Partial<ExtractPropTypes<{
                span: (StringConstructor | NumberConstructor)[];
                order: (StringConstructor | NumberConstructor)[];
                offset: (StringConstructor | NumberConstructor)[];
                push: (StringConstructor | NumberConstructor)[];
                pull: (StringConstructor | NumberConstructor)[];
                xs: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                sm: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                md: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                lg: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                xl: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                xxl: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                prefixCls: StringConstructor;
                flex: (StringConstructor | NumberConstructor)[];
            }>> & import("vue").HTMLAttributes;
        };
        wrapperCol: {
            type: import("vue").PropType<Partial<ExtractPropTypes<{
                span: (StringConstructor | NumberConstructor)[];
                order: (StringConstructor | NumberConstructor)[];
                offset: (StringConstructor | NumberConstructor)[];
                push: (StringConstructor | NumberConstructor)[];
                pull: (StringConstructor | NumberConstructor)[];
                xs: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                sm: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                md: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                lg: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                xl: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                xxl: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                prefixCls: StringConstructor;
                flex: (StringConstructor | NumberConstructor)[];
            }>> & import("vue").HTMLAttributes>;
            default: Partial<ExtractPropTypes<{
                span: (StringConstructor | NumberConstructor)[];
                order: (StringConstructor | NumberConstructor)[];
                offset: (StringConstructor | NumberConstructor)[];
                push: (StringConstructor | NumberConstructor)[];
                pull: (StringConstructor | NumberConstructor)[];
                xs: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                sm: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                md: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                lg: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                xl: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                xxl: {
                    type: import("vue").PropType<string | number | import("ant-design-vue/es/grid").ColSize>;
                    default: string | number | import("ant-design-vue/es/grid").ColSize;
                };
                prefixCls: StringConstructor;
                flex: (StringConstructor | NumberConstructor)[];
            }>> & import("vue").HTMLAttributes;
        };
        colon: {
            type: BooleanConstructor;
            default: boolean;
        };
        labelAlign: {
            type: import("vue").PropType<import("ant-design-vue/es/form/interface").FormLabelAlign>;
            default: import("ant-design-vue/es/form/interface").FormLabelAlign;
        };
        labelWrap: {
            type: BooleanConstructor;
            default: boolean;
        };
        prefixCls: StringConstructor;
        requiredMark: {
            type: import("vue").PropType<"" | import("ant-design-vue/es/form/Form").RequiredMark>;
            default: "" | import("ant-design-vue/es/form/Form").RequiredMark;
        };
        hideRequiredMark: {
            type: BooleanConstructor;
            default: boolean;
        };
        model: import("vue-types").VueTypeValidableDef<{
            [key: string]: any;
        }> & {
            default: () => {
                [key: string]: any;
            };
        };
        rules: {
            type: import("vue").PropType<{
                [k: string]: import("ant-design-vue/es/form").RuleObject | import("ant-design-vue/es/form").RuleObject[];
            }>;
            default: {
                [k: string]: import("ant-design-vue/es/form").RuleObject | import("ant-design-vue/es/form").RuleObject[];
            };
        };
        validateMessages: {
            type: import("vue").PropType<import("ant-design-vue/es/form/interface").ValidateMessages>;
            default: import("ant-design-vue/es/form/interface").ValidateMessages;
        };
        validateOnRuleChange: {
            type: BooleanConstructor;
            default: boolean;
        };
        scrollToFirstError: {
            default: boolean | import("scroll-into-view-if-needed").Options<any>;
            type: import("vue").PropType<boolean | import("scroll-into-view-if-needed").Options<any>>;
        };
        onSubmit: {
            type: import("vue").PropType<(e: Event) => void>;
            default: (e: Event) => void;
        };
        name: StringConstructor;
        validateTrigger: {
            type: import("vue").PropType<string | string[]>;
            default: string | string[];
        };
        size: {
            type: import("vue").PropType<import("ant-design-vue/es/config-provider").SizeType>;
            default: import("ant-design-vue/es/config-provider").SizeType;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        onValuesChange: {
            type: import("vue").PropType<(changedValues: any, values: any) => void>;
            default: (changedValues: any, values: any) => void;
        };
        onFieldsChange: {
            type: import("vue").PropType<(changedFields: import("ant-design-vue/es/form/interface").FieldData[], allFields: import("ant-design-vue/es/form/interface").FieldData[]) => void>;
            default: (changedFields: import("ant-design-vue/es/form/interface").FieldData[], allFields: import("ant-design-vue/es/form/interface").FieldData[]) => void;
        };
        onFinish: {
            type: import("vue").PropType<(values: any) => void>;
            default: (values: any) => void;
        };
        onFinishFailed: {
            type: import("vue").PropType<(errorInfo: import("ant-design-vue/es/form/interface").ValidateErrorEntity<any>) => void>;
            default: (errorInfo: import("ant-design-vue/es/form/interface").ValidateErrorEntity<any>) => void;
        };
        onValidate: {
            type: import("vue").PropType<(name: string | number | string[] | number[], status: boolean, errors: string[]) => void>;
            default: (name: string | number | string[] | number[], status: boolean, errors: string[]) => void;
        };
    }>>>, unknown, unknown, () => {
        layout: string;
    }, boolean>;
    readonly formData: import("ll-plus/es/utils").EpPropFinalized<import("vue").PropType<FormData>, unknown, unknown, () => {}, boolean>;
    readonly rowOptions: import("ll-plus/es/utils").EpPropFinalized<import("vue").PropType<Partial<ExtractPropTypes<{
        align: {
            type: import("vue").PropType<"top" | "bottom" | "middle" | "stretch" | {
                xs?: "top" | "bottom" | "middle" | "stretch";
                sm?: "top" | "bottom" | "middle" | "stretch";
                md?: "top" | "bottom" | "middle" | "stretch";
                lg?: "top" | "bottom" | "middle" | "stretch";
                xl?: "top" | "bottom" | "middle" | "stretch";
                xxl?: "top" | "bottom" | "middle" | "stretch";
            }>;
            default: "top" | "bottom" | "middle" | "stretch" | {
                xs?: "top" | "bottom" | "middle" | "stretch";
                sm?: "top" | "bottom" | "middle" | "stretch";
                md?: "top" | "bottom" | "middle" | "stretch";
                lg?: "top" | "bottom" | "middle" | "stretch";
                xl?: "top" | "bottom" | "middle" | "stretch";
                xxl?: "top" | "bottom" | "middle" | "stretch";
            };
        };
        justify: {
            type: import("vue").PropType<"center" | "end" | "start" | "space-around" | "space-between" | "space-evenly" | {
                xs?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
                sm?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
                md?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
                lg?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
                xl?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
                xxl?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
            }>;
            default: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly" | {
                xs?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
                sm?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
                md?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
                lg?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
                xl?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
                xxl?: "center" | "end" | "start" | "space-around" | "space-between" | "space-evenly";
            };
        };
        prefixCls: StringConstructor;
        gutter: {
            type: import("vue").PropType<import("ant-design-vue/es/grid/Row").Gutter | [import("ant-design-vue/es/grid/Row").Gutter, import("ant-design-vue/es/grid/Row").Gutter]>;
            default: import("ant-design-vue/es/grid/Row").Gutter | [import("ant-design-vue/es/grid/Row").Gutter, import("ant-design-vue/es/grid/Row").Gutter];
        };
        wrap: {
            type: BooleanConstructor;
            default: any;
        };
    }>>>, unknown, unknown, () => {
        gutter: number;
    }, boolean>;
    readonly loading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
    readonly autoFocus: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
    readonly disabled: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
    readonly validateErrorStop: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
};
export declare const formEmits: {
    /**
     * @description 表单项值改变时触发
     */
    change: (params: FormChangeEvent) => boolean;
    blur: (params: FormChangeEvent) => boolean;
};
export type FormProps = ExtractPropTypes<typeof formProps>;
export type FormEmits = typeof formEmits;
export type FormInstance = InstanceType<typeof Form>;
export {};
