import { Boxed, ValidationErrors } from 'pure-forms'; export interface MaxLengthValidationError { maxLength: number; value: string; actualLength: number; } declare module 'pure-forms/src/state' { interface ValidationErrors { maxLength?: MaxLengthValidationError; } } /** * A validation function that requires a `string` or `array` value to have a maximum length. * Considers `null` and `undefined` as valid. Combine this function with the `required` * validation function if `null` or `undefined` should be considered invalid. * * The validation error returned by this validation function has the following shape: * * ```typescript * { * maxLength: { * maxLength: number; * value: string; * actualLength: number; * }; * } * ``` * * Usually you would use this validation function in conjunction with the `validate` * update function to perform synchronous validation in your reducer: * * ```typescript * updateGroup({ * name: validate(maxLength(10)), * }) * ``` * * Note that this function is generic to allow the compiler to properly infer the type * of the `validate` function for both optional and non-optional controls. */ export declare function maxLength(maxLengthParam: number): | Boxed | null | undefined>(value: T) => ValidationErrors;