import { Request } from '../transport/request.js'; import { HttpResponse, RequestHandler } from '../types.js'; /** * Request handler that validates and decodes HTTP response bodies. * Supports multiple content types including JSON, XML, binary, form data, and event streams. */ export declare class ResponseValidationHandler implements RequestHandler { /** Next handler in the chain */ next?: RequestHandler; /** * Handles a standard HTTP request and validates its response. * @template T - The expected response data type * @param request - The HTTP request to process * @returns A promise that resolves to the validated HTTP response */ handle(request: Request): Promise>; /** * Handles a streaming HTTP request and validates response chunks. * @template T - The expected response data type for each chunk * @param request - The HTTP request to process * @returns An async generator that yields validated HTTP responses * @throws Error if response headers are enabled (streaming not supported with headers) */ stream(request: Request): AsyncGenerator>; private splitByDataChunks; private decodeBody; private decodeFile; private decodeMultipartFormData; private decodeText; private decodeFormUrlEncoded; private decodeEventStream; private decodeJson; /** * Validates response data against the expected schema if validation is enabled. * @template T - The expected data type * @param request - The HTTP request containing validation settings * @param response - The response definition with schema * @param data - The data to validate * @returns The validated data (parsed if validation enabled, raw otherwise) */ private validate; /** * Checks if a response should contain data based on its schema and status. * @template T - The response data type * @param responseDefinition - The response definition * @param response - The HTTP response * @returns True if the response should have content, false otherwise */ private hasContent; /** * Parses URL-encoded data into an object. * @param urlEncodedData - The URL-encoded string * @returns An object with decoded key-value pairs */ private fromUrlEncoded; /** * Parses multipart form data into an object. * @param arrayBuffer - The raw form data as ArrayBuffer * @returns An object with form field names and values */ private fromFormData; } //# sourceMappingURL=response-validation-handler.d.ts.map