import { Capture } from "./capture.js"; import { NormalisedArgs } from "./request-loop.js"; import type { ResponseMode, WebFetchError, WebFetchOutcome } from "./types.js"; interface BuildSuccessInput { args: NormalisedArgs; capture: Capture; lastUrl: string; body: string; bytesReceived: number; truncated: boolean; truncatedAt?: number; contentType: string | undefined; now: () => number; t0: number; } /** * Compose a successful {@link WebFetchOutcome} from the captured * fields, applying redaction and the 64 KiB metadata budget. * * Implements the design's "Pipeline steps in detail" §11–12: redact * before metadata assembly, then run `budget.enforce` so the final * `metadata.budget.metadataBytes` reflects the size of the *trimmed* * payload. */ export declare function buildSuccessOutcome(input: BuildSuccessInput): WebFetchOutcome; interface ErrorOutcomeInput { requestedUrl: string; finalUrl: string; mode: ResponseMode; capture?: Capture | undefined; error: WebFetchError; now: () => number; t0: number; includeHeaders?: boolean | undefined; includeTls?: boolean | undefined; includeTiming?: boolean | undefined; includeRedirectChain?: boolean | undefined; redactSensitive?: boolean | undefined; } export declare function errorOutcome(input: ErrorOutcomeInput): WebFetchOutcome; export {};