/** * Schema Validation Pipe * * NestJS pipe that validates request data using schema definitions. * Throws ValidationError[] which is caught by the global exception filter. * * @example * ```typescript * import { SchemaValidationPipe } from '@plyaz/core/backend'; * import { UploadFileRequestSchema } from '@plyaz/types/api'; * * @Post('upload') * async uploadFile( * @Body(new SchemaValidationPipe(UploadFileRequestSchema)) dto: UploadFileRequest * ) { * // dto is validated and typed * } * ``` * * @example Global pipe * ```typescript * // main.ts * import { SchemaValidationPipe } from '@plyaz/core/backend'; * import { MyGlobalSchema } from '@plyaz/types'; * * app.useGlobalPipes(new SchemaValidationPipe(MyGlobalSchema)); * ``` */ import type { PipeTransform } from '@nestjs/common'; import type { ValidatableSchema } from '@plyaz/types/core'; /** * Schema Validation Pipe * * Validates incoming data against a schema definition. * On validation failure, throws an array of ValidationError * which is handled by the global NestJS exception filter. */ export declare class SchemaValidationPipe implements PipeTransform { private readonly schema; constructor(schema: ValidatableSchema); /** * Transform and validate the incoming value * * @param value - The value to validate * @returns The validated and transformed value * @throws ValidationError[] if validation fails */ transform(value: unknown): T; } /** * Create a validation pipe for a specific schema * * @param schema - Schema to validate against * @returns SchemaValidationPipe instance * * @example * ```typescript * import { createValidationPipe } from '@plyaz/core/backend'; * import { UserSchema } from '@plyaz/types'; * * @Post() * create(@Body(createValidationPipe(UserSchema)) dto: User) { ... } * ``` */ export declare function createValidationPipe(schema: ValidatableSchema): SchemaValidationPipe; //# sourceMappingURL=schema.d.ts.map