import { ClientException } from './logger'; declare type NumberContraints = { min?: number; max?: number; }; declare type StringContraints = { minLen?: number; maxLen?: number; regexp?: RegExp; }; declare type ArrayContraints = { minSize?: number; maxSize?: number; }; declare type DateContraints = { min?: Date | undefined; max?: Date | undefined; }; declare type NullableMethods = { [P in Exclude]: T[P] extends (value: infer Value, constraints: infer Constraints) => infer Return ? (value: Value | undefined, constraints: Constraints) => Return | undefined : never; }; declare class NullableAssert implements NullableMethods { protected assert: Assert; signedFloat(value: number | undefined, constraints?: NumberContraints): number | undefined; uFloat(value: number | undefined, constraints?: NumberContraints): number | undefined; signedInt(value: number | undefined, constraints?: NumberContraints): number | undefined; uInt(value: number | undefined, constraints?: NumberContraints): number | undefined; string(value: string | undefined, constraints?: StringContraints): string | undefined; noEmptyString(value: string | undefined, constraints?: StringContraints): string | undefined; date(value: Date | undefined, constraints?: DateContraints): Date | undefined; array(value: readonly T[] | undefined, constraints?: ArrayContraints): readonly T[] | undefined; noEmptyArray(value: readonly T[] | undefined, constraints?: ArrayContraints): readonly T[] | undefined; bool(value: boolean | undefined): boolean | undefined; email(value: string | undefined): string | undefined; object(value: T | undefined): T | undefined; noEmptyObject(value: T | undefined): T | undefined; union(value: T | undefined, union: readonly U[]): T | undefined; enum(value: string | number | undefined, Enum: { [key: number]: string; }): string | number | undefined; constructor(assert: Assert); } export declare class Assert { protected ErrorFactory: typeof ClientException; constructor(ErrorFactory: typeof ClientException); nullable: NullableAssert; protected error(name: string, json: object): void; protected validateNumber(value: number, constraints: NumberContraints | undefined): void; protected between(value: number, min: number | undefined, max: number | undefined, error: string): void; protected validateUnsigned(value: number): void; protected validateInt(value: number): void; signedFloat(value: number, constraints?: NumberContraints): number; uFloat(value: number, constraints?: NumberContraints): number; signedInt(value: number, constraints?: NumberContraints): number; uInt(value: number, constraints?: NumberContraints): number; string(value: string, constraints?: StringContraints): string; noEmptyString(value: string, constraints?: StringContraints): string; date(value: Date, constraints?: DateContraints): Date; array(value: readonly T[], constraints?: { minSize?: number; maxSize?: number; }): readonly T[]; noEmptyArray(value: readonly T[], constraints?: { minSize?: number; maxSize?: number; }): readonly T[]; bool(value: boolean): boolean; email(value: string): string; object(value: T): T; noEmptyObject(value: T): T; union(value: T, union: readonly U[]): T; enum(value: number | string, Enum: { [key: number]: string; }): string | number; } export declare const assert: Assert; export declare const clientValidation: Assert; export {}; //# sourceMappingURL=assert.d.ts.map