import type { Options } from "../Form/shared"; import type { ValidationError, ValidationKey } from "../Validation"; type Message = { name: "valueChanged"; value: Partial; } | { name: "acceptRequest"; } | { name: "accept"; } | { name: "cancelRequest"; } | { name: "cancel"; } | { name: "validate"; msg?: Message; } | { name: "validated"; errors: ValidationError[]; msg?: Message; } | { name: "reValidate"; }; interface Msg { /** * Updates the modified value. */ valueChanged: (value: Partial) => Message; /** * Requests to accept the Form. */ acceptRequest: () => Message; /** * Accepts the Form. */ accept: () => Message; /** * Requests to cancel the Form. */ cancelRequest: () => Message; /** * Cancels the Form. */ cancel: () => Message; /** * Validates all inputs. */ validate: (msg?: Message) => Message; /** * All inputs validated. */ validated: (errors: ValidationError[], msg?: Message) => Message; /** * Runs the validation again if it has already been performed. */ reValidate: () => Message; } interface FormMapOptions extends Options { /** * If true, all string values will be trimmed before they are validated and accepted. */ trimValues?: boolean; } /** * Creates the `Msg` object with the FormMap message creators. * @returns The `Msg` object. */ declare function createMsg(): Msg; /** * Trims all string values of the given object. * @param values The values to trim. * @returns The trimmed values. */ declare function trimValues(values: TValues): TValues; export type { FormMapOptions, Message, Msg }; export { createMsg, trimValues };