import type { NextFunction, Request, Response } from 'express'; import Joi from 'joi'; export interface ValidationConfig { stripUnknown?: boolean; abortEarly?: boolean; allowUnknown?: boolean; context?: Record; errorFormatter?: (error: Joi.ValidationError) => import('@iota-big3/sdk-types').ApiError; } export interface ValidationSchemas { body?: Joi.Schema; query?: Joi.Schema; params?: Joi.Schema; headers?: Joi.Schema; } export interface ValidationContext { body?: unknown; params?: Record; query?: Record; headers?: Record; context?: Record; } export declare class InputValidator { private config; private logger?; private schemas; private violations; constructor(config?: ValidationConfig, logger?: Logger); registerSchema(): void; validate(): (req: Request, res: Response, next: NextFunction) => Promise>>; private validateDataAsync; private defaultErrorFormatter; static schemas: { id: Joi.StringSchema; email: Joi.StringSchema; password: Joi.StringSchema; username: Joi.StringSchema; phone: Joi.StringSchema; url: Joi.StringSchema; pagination: { page: Joi.NumberSchema; limit: Joi.NumberSchema; sort: Joi.StringSchema; sortBy: Joi.StringSchema; }; createUser: { body: Joi.ObjectSchema; }; updateUser: { body: Joi.ObjectSchema; }; login: { body: Joi.ObjectSchema; }; }; static createValidator(name: string, validator: (value: unknown, helpers: Joi.CustomHelpers) => unknown): any; static sanitizers: { trim: (value: string) => string; lowercase: (value: string) => string; uppercase: (value: string) => string; escape: (value: string) => string; normalizeEmail: (value: string) => string; }; } //# sourceMappingURL=input-validator.d.ts.map