import ErrorCodes from '../Error/ErrorCodes'; interface IOutsideValidationSubject { [key: string]: any; } export interface IValidationSubject { name: string; subject: any; } export declare const validatableType: readonly ["string", "number", "boolean", "function", "object", "undefined", "null", "array"]; export type ValidatableType = (typeof validatableType)[number]; export declare class Validate { private validationSubject; private error; private _canBeNull; constructor(validationSubject: IOutsideValidationSubject); static oneOfPossibleTypesIsType(types: ValidatableType | ValidatableType[], type: ValidatableType): boolean; static validateType(types: ValidatableType | ValidatableType[], subject: any): string | true; static validateSingleType(type: ValidatableType, subject: any): true | "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function"; canBeNull(): this; setError(error: Error): this; required(errorCode?: ErrorCodes): this; boolean(errorCode?: ErrorCodes): this; number(errorCode?: ErrorCodes): this; min(value: number, errorCode?: ErrorCodes): this; max(value: number, errorCode?: ErrorCodes): this; string(equals?: (string | undefined)[] | null, errorCode?: ErrorCodes): this; lengthMin(value: number, errorCode?: ErrorCodes): this; lengthMax(value: number, errorCode?: ErrorCodes): this; object(objectInterface?: object, errorCode?: ErrorCodes): this; array(types: ValidatableType | ValidatableType[], objectInterface?: object, errorCode?: ErrorCodes): this; function(errorCode?: ErrorCodes): this; date(errorCode?: ErrorCodes): this; uri(errorCode?: ErrorCodes): this; matchRegExp(regexp: RegExp, errorCode?: ErrorCodes): this; timerTime(errorCode?: ErrorCodes): this; own(callback: (validationSubject: IValidationSubject) => string | true, errorCode?: ErrorCodes): this; throwError(message: string, errorCode?: ErrorCodes): void; canBeNullAndIs(): boolean; private getSubjectFromOutside; private checkObjectInterface; } export default function validate(validationSubject: IOutsideValidationSubject): Validate; export {};