/** * JSON Schema validation utilities using @cfworker/json-schema */ import type { TJsonSchema, IOpenApiRouteMeta, IOpenApiParamMeta } from '../decorators/decorators.types.js'; import type { IRequestContext } from '../core/smartserve.interfaces.js'; /** * Validation error detail */ export interface IValidationError { /** JSON pointer path to the error location */ path: string; /** Human-readable error message */ message: string; /** JSON Schema keyword that failed */ keyword?: string; } /** * Validation result */ export interface IValidationResult { /** Whether validation passed */ valid: boolean; /** Array of validation errors */ errors: IValidationError[]; } /** * Validate data against a JSON Schema */ export declare function validateSchema(data: unknown, schema: TJsonSchema): IValidationResult; /** * Validate a single parameter value */ export declare function validateParam(name: string, value: unknown, meta: IOpenApiParamMeta, location: 'path' | 'query' | 'header'): IValidationResult; /** * Create a 400 Bad Request response for validation errors */ export declare function createValidationErrorResponse(errors: IValidationError[], source: 'body' | 'params' | 'query' | 'headers'): Response; /** * Validate the full request based on OpenAPI metadata * Returns a Response if validation fails, undefined if valid */ export declare function validateRequest(ctx: IRequestContext, openapi: IOpenApiRouteMeta): Promise<{ valid: boolean; response?: Response; coercedParams?: Record; coercedQuery?: Record; }>; /** * Create a validation request interceptor for a route */ export declare function createValidationInterceptor(openapi: IOpenApiRouteMeta): (ctx: IRequestContext) => Promise;