/// export declare type ValidatorFunction = (val: any) => void | string | ErrorLikeObject | Promise; declare function extendValidators(name: string, fn: ValidatorFunction): void; export declare type ModelOption = { value: any; validate: Array; }; declare function model(value: any, ...validate: Array): ModelOption; export { extendValidators, model }; export declare type ParseOptions = { [key: string]: any; }; declare type ErrorState = { [P in keyof T]: boolean | string; }; export declare type ErrorLikeObject = { message: string; }; export declare type Options = { [k: string]: ModelOption | Options | any; }; export default function useModels(options?: Options): { input: (name: string, type?: string) => { onChange: (e: Event) => void; value: T; name: string; type: string; }; checkbox: (name: string, truevalue?: any, falsevalue?: any) => { onChange: (e: Event) => void; checked: boolean; type: string; name: string; value: any; }; radio: (name: string, value?: any) => { onChange: (e: Event) => void; checked: boolean; type: string; name: string; value: any; }; submit: (cb: (state: any) => any | void) => (e: Event) => Promise; error: (cb: (errors: any, state: any) => any | void) => () => void; errors: ErrorState; state: T; watch: (path: string, fn: (newVal: any, oldVal: any) => any) => () => void; hydrate: (_state: any, _errors?: any) => void; set: (name: string, value: any, validate?: boolean, watchers?: boolean) => void; get: (name: string) => T; getState: () => T; getErrors: () => ErrorState; setState: import("react").Dispatch>; setErrors: import("react").Dispatch>>; };