export interface HttpClientOptions { concurrency?: number; timeoutMs?: number; retries?: number; minDelayMs?: number; requestsPerSecond?: number; preferCurl?: boolean; rateLimitCooldownMs?: number; cookie?: string; userAgent?: string; onRetry?: (event: HttpRetryEvent) => void; } export interface HttpClientStats { fetchRequests: number; curlRequests: number; cloudflareChallenges: number; curlFallbacks: number; http429Responses: number; retryableFailures: number; automaticRetries: number; rateLimitCooldowns: number; rateLimitCooldownWaitMs: number; statusCodes: Record; } export interface HttpRetryEvent { url: string; attemptNumber: number; retriesLeft: number; retriesConsumed: number; error: Error; status?: number; } export declare class HttpClient { private readonly queue; private readonly fetchWithCookies; private readonly timeoutMs; private readonly retries; private readonly minDelayMs; private readonly headers; private readonly cookie; private readonly userAgent; private readonly rateLimitCooldownMs; private readonly onRetry; private readonly rateLimitUntil; private useCurlTransport; private readonly requestStats; constructor(options?: HttpClientOptions); bytes(url: string, signal?: AbortSignal): Promise<{ data: Uint8Array; response: Response; }>; private fetchBytes; private curlBytes; text(url: string, encoding?: string, signal?: AbortSignal): Promise; onIdle(): Promise; stats(): HttpClientStats; private recordStatus; private applyRateLimitCooldown; private waitForRateLimitCooldown; } //# sourceMappingURL=client.d.ts.map