import { DataDescription, ModelInstance, ModelType, ModelValidatorComponent, PropertyValidatorComponent, PropertyValidator, PropertyConfig, PropertyValidators, ValueGetter, Arrayable, DataValue, ModelErrors, ValidatorContext, ValuePropertyValidatorComponent, MaybeFunction, PropertyValidatorComponentTypeAdvanced, PrimitiveValueType } from './types.js'; declare const multiValidator: >(validators: ValuePropertyValidatorComponent[]) => ValuePropertyValidatorComponent; declare const isType: >(type: string) => ValuePropertyValidatorComponent; declare const isNumber: ValuePropertyValidatorComponent; declare const isInteger: ValuePropertyValidatorComponent; declare const isObject: ValuePropertyValidatorComponent; declare const isBoolean: ValuePropertyValidatorComponent; declare const isString: ValuePropertyValidatorComponent; declare const isArray: ValuePropertyValidatorComponent; declare const arrayType: (type: PrimitiveValueType) => ValuePropertyValidatorComponent; declare const meetsRegex: (regex: string | RegExp, flags?: string, errorMessage?: string) => ValuePropertyValidatorComponent; declare const choices: (choiceArray: readonly T[]) => ValuePropertyValidatorComponent; declare const isDate: ValuePropertyValidatorComponent; declare const isRequired: ValuePropertyValidatorComponent; declare const maxNumber: (max: number) => ValuePropertyValidatorComponent; declare const minNumber: (min: number) => ValuePropertyValidatorComponent; declare const maxTextLength: (max: number) => ValuePropertyValidatorComponent; declare const minTextLength: (min: number) => ValuePropertyValidatorComponent; declare const aggregateValidator: (value: any, methodOrMethods: PropertyValidatorComponent | readonly PropertyValidatorComponent[]) => PropertyValidator; declare const emptyValidator: () => undefined; declare const createPropertyValidator: , T extends DataDescription = Readonly<{ [s: string]: any; }>, TModelExtensions extends object = object, TModelInstanceExtensions extends object = object>(valueGetter: ValueGetter, config: PropertyConfig) => PropertyValidator; declare const createModelValidator: (validators: PropertyValidators, modelValidators?: readonly ModelValidatorComponent[]) => (instance: ModelInstance, propertyConfiguration: ValidatorContext) => Promise | undefined>; declare const isValid: (errors: ModelErrors) => boolean; declare const referenceTypeMatch: (referencedModel: MaybeFunction>) => PropertyValidatorComponentTypeAdvanced, any>; /** * A validator that can validate an entire object. * * @param required - If this object is required. * @param keyToValidators - An object that has a dotted path key to the property to validate, and one or more validators for it. */ declare const objectValidator: ({ required, keyToValidators, }: { required?: boolean; keyToValidators: Record | ValuePropertyValidatorComponent[]>; }) => ValuePropertyValidatorComponent; declare const optionalValidator: >(validator: ValuePropertyValidatorComponent) => ValuePropertyValidatorComponent; declare const isValidUuid: ValuePropertyValidatorComponent; export { isNumber, isBoolean, isString, isInteger, isType, isDate, isArray, isRequired, maxNumber, minNumber, choices, maxTextLength, minTextLength, meetsRegex, aggregateValidator, emptyValidator, createPropertyValidator, createModelValidator, arrayType, isValid, referenceTypeMatch, multiValidator, isObject, objectValidator, optionalValidator, isValidUuid, };