import { Field } from '../Field'; import { FieldArray } from '../FieldArray'; import { FieldArrayType } from '../FieldArrayType'; import { ModelConstructorType } from '../Form'; import { ValidateType } from './validate'; import { NormalizeType } from './normalize'; export interface IFieldConfig { value: T; validate?: Array> | ValidateType; normalize?: Array> | NormalizeType; didChange?: (value: T, field: Field) => any; didFocus?: (field: Field) => any; didBlur?: (field: Field) => any; } export declare type ValuesType = { [P in keyof T]: T[P] extends FieldArrayType ? M extends ModelConstructorType ? Array>> : M : T[P]; }; export declare type FieldsType = { [P in keyof T]: T[P] extends FieldArrayType ? M extends ModelConstructorType ? FieldArray> : FieldArray : Field; }; export declare type ErrorsType = { [P in keyof T]: T[P] extends FieldArrayType ? Array> : string> : string; }; export interface IFieldArrayConfig { model: ModelConstructorType; value: any[]; validate?: Array> | ValidateType; }