import { FormModelField, FormModelFieldSchema } from './FormModelField'; import { ServerValidationError } from './validation/ServerValidationError'; export type FormModelValues = Record; export type FormModelInitialiseValues = { [K in keyof TValues]: TValues[K] | TOutput[TValues[K]['name']]; }; export type FormModelSchema> = { [K in keyof TValues]: FormModelFieldSchema; }; export type FormModelFields = { [K in keyof TValues]: FormModelField; }; export interface FormModelError { message: string; value?: any; } export declare class FormModel> { fields: FormModelFields; errors: FormModelError[]; constructor(schema: FormModelSchema); get data(): TOutput; get hasChanged(): boolean; get hasErrors(): boolean; initialise(input: FormModelInitialiseValues): void; get(key: K): TValues[K] | undefined; set(key: K, value: TValues[K]): void; clearErrors(): void; applyServerValidationErrorToFields(error: ServerValidationError): void; }