export type BaseTypes = 'objectId' | 'dateInt6' | 'dateInt' | 'dateInt8' | 'dateInt12' | 'time' | 'humanReadableTimestamp' | 'date' | 'dateObject' | 'array' | 'object' | 'buffer' | 'string' | 'function' | 'boolean' | 'number' | 'bigint' | 'year' | 'email' | 'any'; export declare function issetOr(...elms: any[]): boolean; export declare function isEmptyOrNotSet(...elms: any[]): boolean; export declare function isDateObject(variable: any[]): boolean; /** Check all values are set */ export declare function checkAllObjectValuesAreEmpty(o: Record): boolean; /** Throw an error in case data passed is not a valid ctx */ export declare function checkCtxIntegrity(ctx: Record): void; /** ## VALIDATOR @name validator @description support multiple names, multiple values and multiple type check @option if nameString ends by $ sign it is considered optional @function validator([Objects]) @return {error|true/false|testMode} depend on mode (see prop mode) @param {} mode normal (default) | test (TODO) | boolean @param {} name 'myName' || [{myVar1: 'blah, myvar2: myvar2}], support multiple names / values @param {} value myVar, @param {string} myVar myVar, instead of name / value @param {array} in ['blah', 'otherPossibleValue', true], equal ONE OF THESE values @param {any} eq exactly equal to in, both support string or array of values @param {any} neq not in, both support string or array of values @param {number} lte 3, less than or equal @param {number} gte 1, greater or equal @param {number} lt 3, less than @param {number} gt 1, greater @param {string|string[]} type * possibleTypes: object, number, string, boolean, array, date, dateInt8, dateInt12, dateInt6, time, objectId (mongo), humanReadableTimestamp, buffer * Notes: multiples value is an OR, /!\ Array is type 'array' and not 'object' like in real JS /!\ @param {regExp} regexp /regexp/, test against regexp @param {number} minLength for string, array or number length @param {number} maxLength @param {number} length @param {boolean} optional default false @param {boolean} emptyAllowed default false (to use if must be set but can be empty) @param {boolean} mustNotBeSet this one must not be set @param {any} includes check if array or string includes value (like js .includes()) @example validator( { myNumber : 3, type: 'number', gte: 1, lte: 3 }, // use the name directly as a param { name: 'email', value: 'nameATsite.com', regexp: /[^\sAT]+AT[^\sAT]+\.[^\sAT]/}, { name: [{'blahVar': blahVarValue, 'myOtherVar': myOtherVarValue}], type: 'string'} // multiple names for same check ) ----------------------------------------*/ export type ValidatorObject = { name?: string; value?: any; type?: BaseTypes; eq?: any; neq?: any; in?: any[]; lt?: number; gt?: number; lte?: number; gte?: number; length?: number; minLength?: number; maxLength?: number; emptyAllowed?: boolean; regexp?: RegExp; mustNotBeSet?: boolean; isset?: boolean; optional?: boolean; isArray?: boolean; includes?: any; [k: string]: any; }; export declare function validator(...paramsToValidate: ValidatorObject[]): void; /** Same as validator but return a boolean * See {@link validator} */ export declare function isValid(...paramsToValidate: ValidatorObject[]): boolean; /** Default types + custom types * 'objectId','dateInt6','dateInt','dateInt8','dateInt12','time','humanReadableTimestamp','date','array','object','buffer','string','function','boolean','number','bigint', */ export declare function isType(value: any, type: BaseTypes): boolean; export declare function validatorReturnErrArray(...paramsToValidate: ValidatorObject[]): [string?, object?];