export declare type Validity = true | { valid: false | undefined; message: string; }; export declare type FormValue = Record; interface Callbacks { onValue?: (values: Partial) => void; } export interface FormMiddlewareApi { value: { (): Partial; (values: S): S; (values: Partial): Partial; }; submit: { (callback: (values: Partial) => void): void; (callback: (values: S) => void, defaults: S): void; }; onValue(callback: (values: Partial) => void): void; disabled(disabled?: boolean): boolean; valid(): boolean; reset(): void; field(name: K, required?: boolean): Field; } export interface FormMiddleware extends FormMiddlewareApi { (): FormMiddlewareApi; } export interface Field { value: { (newValue: S[K]): S[K]; (): S[K] | undefined; }; valid(valid?: boolean, message?: string): Validity; required(required?: boolean): boolean; disabled(required?: boolean): boolean; name: string; } export interface State { callbacks: Callbacks; required: Record; values: Partial; valid: Record; disabled: Record; formDisabled: boolean; } export declare const createFormMiddleware: = any>() => import("@dojo/framework/core/interfaces").MiddlewareResultFactory[], { icache: import("@dojo/framework/core/interfaces").MiddlewareResultFactory[], { invalidator: import("@dojo/framework/core/interfaces").MiddlewareResultFactory[], import("@dojo/framework/core/interfaces").MiddlewareMap<() => { api: {}; properties: {}; }>, () => void>; destroy: import("@dojo/framework/core/interfaces").MiddlewareResultFactory[], import("@dojo/framework/core/interfaces").MiddlewareMap<() => { api: {}; properties: {}; }>, (destroyFunction: () => void) => void>; }, import("@dojo/framework/core/middleware/icache").ICacheResult>>; }, FormMiddleware>; export default createFormMiddleware;