import { type MiddlewareFailureResponder } from './MiddlewareFailureResponder';
import type { Middleware } from './MiddlewareStack';
import type { ISchema, TypedSchema } from '../validation/Validator';
type ValidationMiddlewareOptions = Readonly<{
    onFailure?: MiddlewareFailureResponder;
    middlewareKey?: string;
}>;
type FieldSanitizers = Readonly<Record<string, (value: unknown) => unknown>>;
export declare const ValidationMiddleware: Readonly<{
    create(schema: ISchema, options?: ValidationMiddlewareOptions): Middleware;
    createBody<TSchema extends TypedSchema<unknown>>(schema: TSchema, options?: ValidationMiddlewareOptions): Middleware;
    createBodyWithSanitization<TSchema extends TypedSchema<unknown>>(schema: TSchema, sanitizers?: FieldSanitizers, options?: ValidationMiddlewareOptions): Middleware;
    createQuery<TSchema extends TypedSchema<unknown>>(schema: TSchema, options?: ValidationMiddlewareOptions): Middleware;
    createParams<TSchema extends TypedSchema<unknown>>(schema: TSchema, options?: ValidationMiddlewareOptions): Middleware;
    /**
     * Create body validation middleware with bulletproof sanitization error handling.
     * Automatically converts SanitizerError to 422 validation response.
     * Recommended for authentication, user management, and financial operations.
     *
     * Use this when controllers apply Sanitizer methods with bulletproof=true (default).
     * The middleware will catch SanitizerError and convert to proper validation error response.
     *
     * @param schema - Validation schema
     * @param sanitizers - Optional field sanitizers to apply before validation
     * @returns Middleware with bulletproof error handling
     */
    createBodyWithBulletproofSanitization<TSchema extends TypedSchema<unknown>>(schema: TSchema, sanitizers?: FieldSanitizers, options?: ValidationMiddlewareOptions): Middleware;
}>;
export {};
//# sourceMappingURL=ValidationMiddleware.d.ts.map