/// /// import { RuleItem, ValidateError } from 'async-validator'; export declare type CustomRuleFunc = ({ getFieldValue }: { getFieldValue: (key: string) => any; }) => RuleItem; export declare type CustomRule = RuleItem | CustomRuleFunc; export interface FieldDetail { name: string; value: string; rules: CustomRule[]; isValid: boolean; errors: ValidateError[]; } export interface FieldsState { [key: string]: FieldDetail; } export interface FormState { isValid: boolean; isSubmitting: boolean; errors: Record; } export interface ValidateErrorType extends Error { errors: ValidateError[]; fields: Record; } export declare const ADD_FIELD = "addField"; export declare const UPDATE_VALUE = "updateValue"; export declare const UPDATE_VALIDATE_RESULT = "updateValidateResult"; export interface FieldAction { type: 'addField' | 'updateValue' | 'updateValidateResult'; name: string; value: any; } declare function useStore(initialValues?: Record): { form: FormState; fields: FieldsState; dispatch: import("react").Dispatch; validateField: (name: string) => Promise; validateAllField: () => Promise<{ isValid: boolean; errors: Record; value: { [x: string]: string; }; }>; getFieldValue: (key: string) => string; getFieldsValue: () => import("lodash").Dictionary; setFieldValue: (name: string, value: any) => void; resetFields: () => void; }; export default useStore;