export interface FormValidationResult<E> {
formErrors: FieldErrorsMap<E>;
export type FormSubmission<V> = Action<
FormValidationResult<AnyFormValueValidatorError<V>>,
export type FieldsValidation<V> = Action<
[config: Config, value: FieldValue],
FieldError<AnyFieldValueValidatorError<V>>[],
export interface FormState<T, V extends Validator> {
readonly context: FormContext;
readonly submission: FormSubmission<V>;
readonly fieldsValidation: FieldsValidation<V>;
* An accessor that maintains form state consistency:
* - A snapshot of the form state is returned on access
* - Default values from JSON Schema are taken into account during assignment
* You can gain direct access to the internal state by hacking types:
* `(form.context as FormInternalContext<typeof validator>).value`
errors: FieldErrorsMap<PossibleError<V>>;
submit(e: SubmitEvent): void;