import { type BoundedRetryConfig } from "../../utils/config-resource-limits.js"; export declare const DEFAULT_VERYFRONT_API_SUCCESS_BODY_BYTES: number; export declare const MAX_VERYFRONT_API_SUCCESS_BODY_BYTES: number; export type TransportRetryConfig = BoundedRetryConfig; export interface TransportRequestInit { method?: string; headers?: HeadersInit; body?: BodyInit | null; returnText?: boolean; /** Maximum decoded success-body bytes accepted before JSON/text parsing. */ maxResponseBytes?: number; /** Stream one top-level JSON string without materializing the response envelope. */ jsonStringFieldWithinLimit?: { fieldName: string; maximumBytes: number; }; expected404?: boolean; timeoutMs?: number; /** Caller-owned cancellation signal, composed with the per-attempt timeout. */ signal?: AbortSignal; /** Redirect policy for requests carrying platform credentials. Defaults to `"error"`. */ redirect?: RequestRedirect; /** Allow bounded upstream error bodies in logs/error context. Defaults to true. */ includeErrorBodyInDiagnostics?: boolean; } export interface VeryfrontApiTransportConfig { baseUrl: string; getToken: () => string; retry: TransportRetryConfig; timeoutMs?: number; defaultHeaders?: Record; onResponse?: (response: Response, init: TransportRequestInit, url: string, signal?: AbortSignal) => Promise; afterFetch?: (status: number, durationMs: number) => void; shouldRetry?: (error: unknown, attempt: number) => boolean; onRetry?: (info: { error: Error; attempt: number; delay: number; isTimeout: boolean; url: string; timeoutMs: number; }) => void; wrapFinalError?: (lastError: Error, lastAttempt: number) => Error; wrapFetch?: (fn: () => Promise, url: string, method: string, attempt: number) => Promise; /** Optional host egress policy applied to every redirect hop. */ outboundPolicy?: { authorizeUrl?: (url: URL) => void | Promise; }; } export interface VeryfrontApiTransport { request(pathOrUrl: string, init?: TransportRequestInit): Promise; } export declare function createVeryfrontApiTransport(config: VeryfrontApiTransportConfig): VeryfrontApiTransport; /** Canonical transport: span tracing, request metrics, API_CLIENT_ERROR mapping. */ export declare function createCanonicalVeryfrontApiTransport(baseUrl: string, getToken: () => string, retry: TransportRetryConfig, outboundPolicy?: VeryfrontApiTransportConfig["outboundPolicy"]): VeryfrontApiTransport; //# sourceMappingURL=veryfront-api-transport.d.ts.map