/** * Extract Enriched Headers from Response * * Utilities for extracting enriched headers from HTTP responses * to transfer context between different API clients */ import type { ApiHeaders, RequestHeaderExtraction } from '@plyaz/types/api'; /** * Extract enriched headers from a response object * These headers are prefixed with 'X-Enriched-' by the middleware * * @param headers - Response headers (can be Headers object or plain object) * @returns Extracted enriched headers without the prefix * * @example * ```typescript * // Extract from fetch response * const response = await fetch(url); * const enrichedHeaders = extractEnrichedHeaders(response.headers); * * // Use in another API call * const anotherClient = createApiClient({ * headers: enrichedHeaders * }); * ``` */ export declare function extractEnrichedHeaders(headers: Headers | Record): ApiHeaders; /** * Transfer enriched headers from one response to another request * Useful for microservice-to-microservice communication * * @param sourceHeaders - Headers from the source response * @param targetConfig - Target API configuration to enhance * @returns Enhanced configuration with transferred headers * * @example * ```typescript * // Service A calls Service B * const responseB = await apiServiceB.getData(); * * // Extract and transfer headers to Service C * const configC = transferEnrichedHeaders( * responseB.headers, * { timeout: 10000 } * ); * * const responseC = await apiServiceC.process(data, configC); * ``` */ export declare function transferEnrichedHeaders(sourceHeaders: Headers | Record, targetConfig?: T): T; /** * Check if headers contain enriched context headers * * @param headers - Headers to check * @returns True if enriched headers are present */ export declare function hasEnrichedHeaders(headers: Headers | Record): boolean; export declare function extractHeadersFromRequest; }>(request: T): RequestHeaderExtraction; export declare function extractClientHints; }>(request: T): ApiHeaders; export declare function extractDeviceInfo; }>(request: T): ApiHeaders; export declare function extractNetworkInfo; }>(request: T): ApiHeaders; export declare function prepareEnrichedHeadersForTransfer(headers: ApiHeaders): ApiHeaders; //# sourceMappingURL=extract.d.ts.map