import { type ErrorLike } from '../../utils/errors'; import type { FieldsMetaState } from './types'; import type { Validator, AsyncValidator } from './validation'; declare const FORM_ERROR: unique symbol; type FormLevelValidationResult = Partial<{ [P in keyof FormFields]: string; } & { [FORM_ERROR]: ErrorLike; }>; export type SubmissionErrors = FormLevelValidationResult | undefined | void; export type SubmissionResult = SubmissionErrors | Promise>; interface Validators { sync?: Validator; async?: AsyncValidator; } interface FormStateConfig { values: FormFields; fields: Partial<{ [P in keyof FormFields]: { validators: Validators; }; }>; validate?: (values: FormFields) => FormLevelValidationResult; onSubmit?: (values: FormFields) => SubmissionResult; } /** * FormState is a part of form management system, it's supposed to be used * together with Form and FormField components. */ export declare class FormState { values: FormFields; metas: FieldsMetaState; submitted: boolean; submitting: boolean; submitError: ErrorLike | undefined; formRef: HTMLFormElement | null; config: FormStateConfig; validating: boolean; constructor(config: FormStateConfig); handleSubmit(event: Event): Promise; private generateInitialFieldsState; } export {};