type HttpHeadersResolver = () => Record | Promise> | undefined; interface HttpClientConfig { /** Base URL for all requests */ baseUrl: string; /** Default headers applied to every request */ headers?: Record; /** Optional lazy header resolver invoked before each request */ resolveHeaders?: HttpHeadersResolver; /** Request timeout in ms (default: 30000) */ timeout?: number; /** Enable automatic retry on 429 and 5xx (default: true) */ retryOnError?: boolean; /** Maximum retry attempts (default: 5) */ retryLimit?: number; /** Initial delay between retries in ms (default: 300) */ retryDelay?: number; /** Custom fetch implementation (for testing) */ fetch?: typeof globalThis.fetch; } interface HttpResponse { data: T; status: number; headers: Headers; } export type { HttpClientConfig as H, HttpResponse as a };