///
import validatorLib from 'validator';
import { ValidatorLibValidatorName } from './ValidatorLibValidatorName';
export { ValidatorLibValidatorName };
export declare type ArgsByValidatorLibValidator = {
[key in ValidatorLibValidatorName]: OverloadedParametersAndRemoveFirst;
};
export interface ArgsByCustomValidator {
isRequired: [];
}
export declare type CustomValidatorName = keyof ArgsByCustomValidator;
export declare type ArgsByValidator = ArgsByValidatorLibValidator & ArgsByCustomValidator;
export declare type ValidatorName = keyof ArgsByValidator;
export declare type ErrorMessageConfig = Record;
export interface Context {
fieldLabel?: string;
errorMessages?: Record;
errorMessageVars?: ErrorMessageConfig;
}
export interface ErrorContext extends Context {
validatorName: string;
errorMessages: ErrorMessageConfig;
}
export declare type ContextOrValidator = string | Context | Validator;
export declare type ValidateResponse = (value: string, values: FormValues, e: ReactEvent) => Record[] | true;
export declare type FormValue = string | string[] | boolean;
export declare type FormValues = Record;
export declare type Validator = (value: FormValue, values: FormValues, e: ReactEvent) => ValidatorResponse;
export declare type CustomValidation = (value: FormValue, values: FormValues, e: ReactEvent) => boolean;
export interface ValidatorResponse {
validatorName: string;
valid: boolean;
errorMessageConfig: ErrorMessageConfig;
errorMessage?: string;
}
export declare type ValidatorConfigurer = (validatorLibArgsOrErrorMessageConfigOrErrorMessage?: ArgsByValidator[T] | ErrorMessageConfig | string, errorMessageConfigOrErrorMessage?: ErrorMessageConfig | string, errorMessage?: string) => Validator;
export declare type Maybe = T | null | undefined;
declare type InputElement = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
export declare type ReactEvent = React.ChangeEvent | React.FocusEvent;
export declare type RemoveFirstFromTuple = T['length'] extends 0 ? undefined : (((...b: T) => void) extends (a: any, ...b: infer I) => void ? I : []);
declare type OverloadedParametersAndRemoveFirst = T extends {
(...args: infer A1): any;
(...args: infer A2): any;
(...args: infer A3): any;
(...args: infer A4): any;
} ? RemoveFirstFromTuple | RemoveFirstFromTuple | RemoveFirstFromTuple | RemoveFirstFromTuple : T extends {
(...args: infer A1): any;
(...args: infer A2): any;
(...args: infer A3): any;
} ? RemoveFirstFromTuple | RemoveFirstFromTuple | RemoveFirstFromTuple : T extends {
(...args: infer A1): any;
(...args: infer A2): any;
} ? RemoveFirstFromTuple | RemoveFirstFromTuple : T extends (...args: infer A) => any ? RemoveFirstFromTuple : any;