import type { ExtractPropTypes } from 'vue'; import type { ResponsiveCols } from 'element-ultra/components/grid'; import type Form from './form.vue'; export type ModelValue = string | number | any[] | boolean; export interface FormModelItem { /** 表单默认值 */ value?: V; /** 必填 */ required?: boolean | [boolean, string]; /** 指定长度 */ len?: number | [number, string]; /** 最小值或最小长度 */ min?: number | [number, string]; /** 最大值或最大长度 */ max?: number | [number, string]; /** 匹配正则表达式 */ match?: RegExp | [RegExp, string]; /** 自定义验证器 */ validator?(value: any, model: Record, rule: FormRules[string]): string | Promise; /** 子对象 */ children?: Record; } export type FormRules = Record>; export type FormModel = Record; export declare const formProps: { data: { type: PropType>; }; defaultData: { type: PropType>; }; rules: { type: PropType; }; labelPosition: PropType<"left" | "right" | "top">; labelWidth: { type: (StringConstructor | NumberConstructor)[]; default: string; }; labelSuffix: { type: StringConstructor; default: string; }; cols: { type: PropType; default: () => { cols: number; xs: number; s: number; l: number; xl: number; }; }; size: PropType<"default" | "small" | "large">; disabled: BooleanConstructor; }; export type FormProps = ExtractPropTypes; export declare const formComponents: Set; export type FormInstance = InstanceType;