import { FC, ReactNode } from 'react'; import AntForm, { FormInstance, FormItemProps as AntFormItemProps, FormProps as AntFormProps } from 'antd/es/form'; interface FormProps extends AntFormProps { cols?: number; labelWidth?: number; children?: ReactNode; } declare function InternalForm({ cols, labelWidth, className, labelWrap, ...restProps }: FormProps): JSX.Element; interface FormItemProps extends AntFormItemProps { colSpan?: number; rowSpan?: number; br?: boolean; } declare const FormItem: FC; declare type JSONFormsDataFieldRule = { len?: number; max?: number; message?: string; min?: number; pattern?: string; required?: boolean; }; declare type JSONFormsDataField = { /** 配合 label 属性使用,表示是否显示 label 后面的冒号 */ colon?: boolean; /** 设置依赖字段 */ dependencies?: string[]; /** 是否隐藏字段 */ hidden?: boolean; /** label 标签的文本 */ label: string; /** label 标签的文本对齐方式 */ labelAlign?: 'left' | 'right'; /** name 字段名称 */ name: string; /** 校验规则,设置字段的校验逻辑 */ rules?: JSONFormsDataFieldRule[]; /** 下一个是否强制换行 */ br?: boolean; /** 编辑器 */ editor?: string; }; export declare type JSONFormsData = { /** 一行显示多少列 */ cols?: number; /** label 标签的文本对齐方式 */ labelAlign?: 'left' | 'right'; /** label 标签的文本换行方式 */ labelWrap?: boolean; /** 表单默认值,只有初始化以及重置时生效 */ initialValues?: object; /** 当字段被删除时保留字段值 */ preserve?: boolean; /** 提交失败自动滚动到第一个错误字段 */ scrollToFirstError?: boolean; /** 实际的字段信息 */ fields: JSONFormsDataField[]; }; declare type ExtendEditors = { name: string; editor: ReactNode; }; interface JSONFormsProps { data: JSONFormsData; form?: FormInstance; extendEditors?: ExtendEditors[]; } declare const DynamicJSONForm: ({ data, form, extendEditors, }: JSONFormsProps) => JSX.Element; declare type InternalFormType = typeof InternalForm; interface FormInterface extends InternalFormType { useForm: typeof AntForm.useForm; Item: typeof FormItem; List: typeof AntForm.List; ErrorList: typeof AntForm.ErrorList; Provider: typeof AntForm.Provider; DynamicJSONForm: typeof DynamicJSONForm; } declare const Form: FormInterface; export default Form;