import { Hydrated } from "../center"; import { TypeStateManagerConfigs } from "../state-manager"; import { ReactStateManager } from "./state-manager"; import { ReactStoreManager } from "./store"; export declare class ReactFormManager, ErrorType = string[] | undefined | null, Meta = Record> { protected _config: ReactFormManagerConfig; protected readonly _KEYS: (keyof Required)[]; protected _fields: { [Key in keyof Required]: Entities; }; get fields(): Readonly<{ [Key in keyof Required]: Entities; }>; get KEYS(): (keyof Required)[]; get meta(): Meta; get hooks(): Readonly<{ useField: (name: Key) => { value: DataType[Key]; setValue: (newValue: DataType[Key]) => void; error: { [Key_1 in keyof DataType]?: ErrorType | undefined; }[Key]; setError: (newState: { [Key_1 in keyof DataType]?: ErrorType | undefined; }[Key]) => void; touched: { [Key_2 in keyof DataType]?: boolean | undefined; }[Key]; setTouched: (newState: { [Key_2 in keyof DataType]?: boolean | undefined; }[Key]) => void; modified: { [Key_3 in keyof DataType]?: boolean | undefined; }[Key]; setModified: (newState: { [Key_3 in keyof DataType]?: boolean | undefined; }[Key]) => void; setAsTouched: () => void; setAsModified: () => void; _setValue: (newState: DataType[Key]) => void; }; useData: () => [state: DataType, setState: (newValue: DataType) => void]; useErrors: () => [state: { [Key in keyof DataType]?: ErrorType | undefined; }, setState: (newValue: { [Key in keyof DataType]?: ErrorType | undefined; }) => void]; useTouched: () => [state: { [Key in keyof DataType]?: boolean | undefined; }, setState: (newValue: { [Key in keyof DataType]?: boolean | undefined; }) => void]; useModified: () => [state: { [Key in keyof DataType]?: boolean | undefined; }, setState: (newValue: { [Key in keyof DataType]?: boolean | undefined; }) => void]; useForm: () => { data: DataType; setData: (newValue: DataType) => void; errors: { [Key in keyof DataType]?: ErrorType | undefined; }; setErrors: (newValue: { [Key in keyof DataType]?: ErrorType | undefined; }) => void; touched: { [Key in keyof DataType]?: boolean | undefined; }; setTouched: (newValue: { [Key in keyof DataType]?: boolean | undefined; }) => void; modified: { [Key in keyof DataType]?: boolean | undefined; }; setModified: (newValue: { [Key in keyof DataType]?: boolean | undefined; }) => void; }; useIsModified: () => [isModified: boolean]; useIsTouched: () => [isTouched: boolean]; useHasErrors: () => [hasErrors: boolean]; }>; protected readonly _truthyValues: { [Key in keyof Required]: true; }; protected readonly _falsyValues: { [Key in keyof Required]: false; }; protected readonly _data: ReactStoreManager; get data(): { [Key in keyof Required]: ReactStateManager; }; protected readonly _errors: ReactStoreManager<{ [Key in keyof DataType]?: ErrorType; }>; get errors(): { [Key_1 in keyof Required<{ [Key in keyof DataType]?: ErrorType | undefined; }>]: ReactStateManager<{ [Key in keyof DataType]?: ErrorType | undefined; }[Key_1]>; }; protected readonly _touched: ReactStoreManager<{ [Key in keyof DataType]?: boolean; }>; get touched(): { [Key_1 in keyof Required<{ [Key in keyof DataType]?: boolean | undefined; }>]: ReactStateManager<{ [Key in keyof DataType]?: boolean | undefined; }[Key_1]>; }; protected readonly _modified: ReactStoreManager<{ [Key in keyof DataType]?: boolean; }>; get modified(): { [Key_1 in keyof Required<{ [Key in keyof DataType]?: boolean | undefined; }>]: ReactStateManager<{ [Key in keyof DataType]?: boolean | undefined; }[Key_1]>; }; get value(): { data: DataType; errors: { [Key in keyof DataType]: ErrorType | undefined; }; touched: { [Key in keyof DataType]: boolean | undefined; }; modified: { [Key in keyof DataType]: boolean | undefined; }; }; set value(newValues: { data?: Partial; errors?: { [Key in keyof DataType]?: ErrorType | undefined; }; touched?: { [Key in keyof DataType]?: boolean | undefined; }; modified?: { [Key in keyof DataType]?: boolean | undefined; }; }); update(updater: { data?: Partial; errors?: { [Key in keyof DataType]?: ErrorType | undefined; }; touched?: { [Key in keyof DataType]?: boolean | undefined; }; modified?: { [Key in keyof DataType]?: boolean | undefined; }; } | ((prev: { data: DataType; errors: { [Key in keyof DataType]: ErrorType | undefined; }; touched: { [Key in keyof DataType]: boolean | undefined; }; modified: { [Key in keyof DataType]: boolean | undefined; }; }) => { data?: Partial; errors?: { [Key in keyof DataType]?: ErrorType | undefined; }; touched?: { [Key in keyof DataType]?: boolean | undefined; }; modified?: { [Key in keyof DataType]?: boolean | undefined; }; })): this; protected readonly _validators: { [Key in keyof Required]: (value: any) => void; } | undefined; protected readonly _hooks: Readonly<{ useField: (name: Key) => { value: DataType[Key]; setValue: (newValue: DataType[Key]) => void; error: { [Key_1 in keyof DataType]?: ErrorType | undefined; }[Key]; setError: (newState: { [Key_1 in keyof DataType]?: ErrorType | undefined; }[Key]) => void; touched: { [Key_2 in keyof DataType]?: boolean | undefined; }[Key]; setTouched: (newState: { [Key_2 in keyof DataType]?: boolean | undefined; }[Key]) => void; modified: { [Key_3 in keyof DataType]?: boolean | undefined; }[Key]; setModified: (newState: { [Key_3 in keyof DataType]?: boolean | undefined; }[Key]) => void; setAsTouched: () => void; setAsModified: () => void; _setValue: (newState: DataType[Key]) => void; }; useData: () => [state: DataType, setState: (newValue: DataType) => void]; useErrors: () => [state: { [Key in keyof DataType]?: ErrorType | undefined; }, setState: (newValue: { [Key in keyof DataType]?: ErrorType | undefined; }) => void]; useTouched: () => [state: { [Key in keyof DataType]?: boolean | undefined; }, setState: (newValue: { [Key in keyof DataType]?: boolean | undefined; }) => void]; useModified: () => [state: { [Key in keyof DataType]?: boolean | undefined; }, setState: (newValue: { [Key in keyof DataType]?: boolean | undefined; }) => void]; useForm: () => { data: DataType; setData: (newValue: DataType) => void; errors: { [Key in keyof DataType]?: ErrorType | undefined; }; setErrors: (newValue: { [Key in keyof DataType]?: ErrorType | undefined; }) => void; touched: { [Key in keyof DataType]?: boolean | undefined; }; setTouched: (newValue: { [Key in keyof DataType]?: boolean | undefined; }) => void; modified: { [Key in keyof DataType]?: boolean | undefined; }; setModified: (newValue: { [Key in keyof DataType]?: boolean | undefined; }) => void; }; useIsModified: () => [isModified: boolean]; useIsTouched: () => [isTouched: boolean]; useHasErrors: () => [hasErrors: boolean]; }>; reset(resetValues?: { data?: Partial; modified?: { [Key in keyof DataType]?: boolean; }; touched?: { [Key in keyof DataType]?: boolean; }; errors?: { [Key in keyof DataType]?: ErrorType; }; }): void; setAllAsTouched(): void; setAllAsUntouched(): void; setAllAsModified(): void; setAllAsUnmodified(): void; getModifiedValues({ defaultFields, }?: { defaultFields: (keyof Required)[]; }): Partial; get hasErrors(): boolean; get isModified(): boolean; get isTouched(): boolean; hydrate(value: { data: DataType; errors?: { [Key in keyof DataType]?: ErrorType | undefined; }; touched?: { [Key in keyof DataType]?: boolean | undefined; }; modified?: { [Key in keyof DataType]?: boolean | undefined; }; }): { update: (record: Hydrated["data"]) => void; value: { data: DataType; errors?: { [Key in keyof DataType]?: ErrorType | undefined; }; touched?: { [Key in keyof DataType]?: boolean | undefined; }; modified?: { [Key in keyof DataType]?: boolean | undefined; }; }; }; fulfill(): Promise; constructor(initialValues: { [Key in keyof Required]: DataType[Key]; }, _config?: ReactFormManagerConfig); } export declare function form, ErrorType = string[] | undefined | null, Meta = Record>(initialValues: { [Key in keyof Required]: DataType[Key]; }, config?: ReactFormManagerConfig): ReactFormManager; declare class Entities { readonly data: ReactStateManager; readonly error: ReactStateManager; readonly modified: ReactStateManager; readonly touched: ReactStateManager; constructor(data: ReactStateManager, error: ReactStateManager, modified: ReactStateManager, touched: ReactStateManager); get values(): EntitiesType; set values(values: EntitiesType); update(updater: (prev: EntitiesType) => EntitiesType): this; } type EntitiesType = { data: DataType; error: ErrorType | undefined; modified: boolean | undefined; touched: boolean | undefined; }; export type ReactFormManagerConfig, ErrorType = string[] | undefined | null, Meta = Record> = { uid: string; getValidator?: (fieldName: keyof DataType, form: ReactFormManager) => (value: any) => void; onReset?: () => void; hasError?: (error: ErrorType | undefined) => boolean; meta?: Meta; errors?: { [Key in keyof DataType]?: StateConfig; }; touched?: { [Key in keyof DataType]?: StateConfig; }; modified?: { [Key in keyof DataType]?: StateConfig; }; data?: { [Key in keyof DataType]?: StateConfig; }; }; type StateConfig = Omit, "uid">; export {};