import type { RequestUploadEvidence } from './request-upload-evidence.ts'; import type { RequestCompressionEvidence } from './responses-request-compression.ts'; export type RequestBodyProtocol = 'openai-responses' | 'openai-completions' | 'anthropic-messages'; export declare const REQUEST_BODY_EVIDENCE_LIMITS: Readonly<{ bytes: number; values: 65536; tokens: 131072; depth: 64; keyCharacters: 128; }>; export type RequestBodyEvidence = { readonly state: 'complete'; readonly totalBytes: number; readonly conversationBytes: number; readonly toolSchemaBytes: number; readonly systemBytes: number; readonly otherBytes: number; /** Disjoint subsets of conversationBytes, not additional payload bytes. */ readonly imageBlockBytes: number; readonly opaqueReplayBytes: number; readonly remainingConversationBytes: number; } | { readonly state: 'unavailable' | 'size-limit' | 'work-limit' | 'invalid-json' | 'unsupported-shape'; readonly totalBytes?: number; }; export interface RequestBodyDispatchEvidence { readonly protocol: RequestBodyProtocol; /** Fetch invocation to response headers, not upload duration or clone-observation time. */ readonly responseHeadersMs: number; readonly upload?: RequestUploadEvidence; readonly compression?: RequestCompressionEvidence; } export declare function formatRequestBodyEvidence(evidence: RequestBodyEvidence, responseHeadersMs?: number, compression?: RequestCompressionEvidence): string; /** Diagnostic-only traversal of the original JSON spans; never reserializes or changes a request. */ export declare function requestBodyEvidence(body: string | undefined, protocol: RequestBodyProtocol): RequestBodyEvidence; //# sourceMappingURL=request-body-evidence.d.ts.map