import React from 'react'; import Control from './control'; import { FieldError, FormProps, FieldState, KeyType, FormValidateFn } from './interface'; export declare type DeepPartial = T extends object ? { [P in keyof T]?: DeepPartial; } : T; /** * setFieldValue: setFieldsValue, setFieldValue, setFields * innerSetValue: such as Input change * reset: 重置 */ export declare type NotifyType = 'setFieldValue' | 'reset' | 'innerSetValue'; export declare type innerCallbackType = 'onValuesChange' | 'onSubmit' | 'onChange' | 'onSubmitFailed'; export declare type StoreChangeInfo = { prev: any; field?: T | T[]; isFormList?: boolean; ignore?: boolean; changeValues?: { [key in KeyType]: unknown; }; data?: { errors?: FieldError; warnings?: React.ReactNode; touched?: boolean; }; }; declare class Store { private isSubmitting; private registerFields; private registerWatchers; private registerStateWatchers; private touchedFields; private store; private initialValues; private callbacks; private notifyWatchers; private notifyStateWatchers; private triggerValuesChange; private triggerTouchChange; innerCollectFormState: () => void; innerSetCallbacks: (values: Pick, innerCallbackType> & { onValidateFail?: (errors: { [key in FieldKey]: FieldError; }) => void; }) => void; registerStateWatcher: (item: any) => () => void; registerWatcher: (item: any) => () => void; registerField: (item: Control) => () => void; private getRegisteredFields; getRegisteredField: (field?: FieldKey) => Control; private notify; innerSetInitialValues: (values: Partial) => void; innerSetInitialValue: (field: FieldKey, value: FieldValue) => void; private _getIterativelyKeysByField; private _inTouchFields; private _popTouchField; private _pushTouchField; /** * * 内部使用,更新value,会同时触发onChange 和 onValuesChange * @options.isFormList 强制更新field对应的组件包括其子组件,form */ innerSetFieldValue: (field: FieldKey, value: FieldValue, options?: { isFormList?: boolean; ignore?: boolean; }) => void; innerGetStore: () => Partial; innerGetFieldValue: (field: FieldKey) => any; getTouchedFields: () => FieldKey[]; setFieldValue: (field: FieldKey, value: FieldValue) => void; setFieldsValue: (values: DeepPartial) => void; setFields: (obj: { [field in FieldKey]?: { value?: FieldValue; error?: FieldError; touched?: boolean; warning?: React.ReactNode; }; }) => void; getFieldValue: (field: FieldKey) => FieldValue; getFieldError: (field: FieldKey) => FieldError | null; getFieldsError: (fields?: FieldKey[]) => { [key in FieldKey]?: FieldError; }; getFields: () => Partial; getFieldsValue: (fields?: FieldKey[]) => Partial; resetFields: (fieldKeys?: FieldKey | FieldKey[]) => void; validate: FormValidateFn; private toggleSubmitting; submit: () => void; getFieldsState: (fields?: FieldKey[]) => { [key in FieldKey]?: FieldState; }; clearFields: (fieldKeys?: FieldKey | FieldKey[]) => void; } export default Store;