declare type FormValueMap = { [key: string]: any; }; declare type FormTouchedMap = { [key: string]: boolean; }; export interface FormState { values: FormValueMap; touched: FormTouchedMap; submitting: boolean; } interface ChangeAction { type: 'FIELD_CHANGE'; field: string; value: any; } interface BlurAction { field: string; type: 'FIELD_BLUR'; } interface ArrayChangeAction { field: string; type: 'FIELD_ARRAY_CHANGE'; values: Array; } interface FormSubmit { type: 'FORM_SUBMIT'; } interface FormSubmitted { type: 'FORM_SUBMITTED'; } interface FormCreated { type: 'FORM_CREATED'; } export declare type Action = ChangeAction | BlurAction | ArrayChangeAction | FormSubmit | FormSubmitted | FormCreated; export declare type Dispatcher = (action: Action) => void; export declare function reduce(prevState: FormState | undefined, action: Action): FormState; export {};