import { HostBudgets, type HostBudgetOptions } from "./budget.js"; import { EgressPolicy, type EgressPolicyOptions } from "./policy.js"; export interface EgressClientOptions extends HostBudgetOptions, EgressPolicyOptions { timeoutMs?: number; maxResponseBytes?: number; maxRequestBytes?: number; maxRedirects?: number; } export interface EgressRequestOptions { hostClass: string; /** true pins to the initial origin; a URL string explicitly pins to that origin. */ pinnedOrigin?: boolean | string | URL; } export declare function createEgressClient(options: EgressClientOptions): { egressFetch: (raw: string | URL, init: RequestInit | undefined, context: EgressRequestOptions) => Promise; policy: EgressPolicy; budgets: HostBudgets; }; /** Stateless convenience form. Reuse createEgressClient when pool/config are fixed. */ export declare function egressFetch(url: string | URL, init: RequestInit | undefined, options: EgressClientOptions & EgressRequestOptions): Promise;