import { CustomException } from "../core/exceptions"; import { ArrayType, AuditBy, ObjectTS, RangeTimestamp } from "../utils/types"; export declare type ValidatorTypeResolver = K extends any[] ? Validator : K extends object ? TypeValidator | Validator : Validator; export declare type Validator

= undefined | ((path: string, p?: P) => void); export declare type TypeValidator = { [P in keyof T]: ValidatorTypeResolver; }; export declare class ValidationException extends CustomException { path: string; input?: string; constructor(debugMessage: string, path: string, input?: any); } export declare const validateExists: (mandatory?: boolean) => Validator; export declare const validateObjectValues: (validator: ValidatorTypeResolver, mandatory?: boolean) => Validator; export declare const validateArray: >(validator: ValidatorTypeResolver, mandatory?: boolean) => Validator; export declare const validateRegexp: (regexp: RegExp, mandatory?: boolean) => Validator; export declare const validateValue: (values: string[], mandatory?: boolean) => Validator; export declare const validateRange: (ranges: [number, number][], mandatory?: boolean) => Validator; export declare const validate: (instance: T, _validator: ValidatorTypeResolver, path?: string) => void; export declare const validateObject: (__validator: TypeValidator, instance: T, path?: string) => void; export declare const isTimestampValid: (time: number, range?: { min: number; max: number; }) => boolean; export declare const auditValidator: (range?: RangeTimestamp | undefined) => (_path: string, audit?: AuditBy | undefined) => void;