///
import { TypedRecord } from "typed-immutable-record";
import { FormErrorRecord } from "./error";
import { FieldValidationType } from "./validation";
import { FormContextPropsObject } from "./form";
import { FieldsGroupContextProps } from "./fields-group";
import { ModifierValue } from "./value";
export declare type FieldValue = any | undefined;
export declare type FieldFormatValueCallback = (value: FieldValue) => FieldValue;
export declare type FieldParseValueCallback = (value: ModifierValue) => ModifierValue;
export declare type FieldNormalizeValueCallback = (value: FieldValue) => FieldValue;
export interface CoreFieldProps {
name: string;
formId?: string;
destroyOnUnmount?: boolean;
formatValue?: FieldFormatValueCallback;
parseValue?: FieldParseValueCallback;
normalizeValue?: FieldNormalizeValueCallback;
validationType?: FieldValidationType;
}
export interface FieldProps extends CoreFieldProps {
defaultValue?: FieldValue;
initialValue?: FieldValue;
value?: FieldValue;
disabled?: boolean;
}
export interface FieldStoreState {
Name: string;
DefaultValue: FieldValue;
InitialValue: FieldValue;
Value: FieldValue;
TransitionalValue?: FieldValue;
Error?: FormErrorRecord;
Touched: boolean;
Pristine: boolean;
Validating: boolean;
FieldsGroup?: {
Id: string;
};
Props?: FieldStorePropsRecord;
}
export declare type FieldStoreProps = CoreFieldProps & React.Props;
export interface FieldStoreStateRecord extends TypedRecord, FieldStoreState {
}
export interface FieldStorePropsRecord extends TypedRecord, FieldStoreProps {
}
export interface FieldContext {
FormId: string;
FormProps: FormContextPropsObject;
FieldsGroupId: string;
FieldsGroupProps: FieldsGroupContextProps;
IsInFieldsArray: boolean;
}
export interface FieldChildContext {
FieldId: string;
}