///
import { CdpHeaders } from '../../cdp/index.js';
import { Logger } from '../../logger.js';
import { BlobService } from './blob.js';
import { BrowserService } from './browser.js';
import { ProxyService } from './proxy.js';
export declare const RETRIABLE_ERRORS: string[];
export type FetchMode = 'Fetch' | 'Node' | 'Node+Proxy';
export interface FetchRequestSpec {
mode: FetchMode;
requestBodyFormat: RequestBodyFormat;
responseBodyFormat: ResponseBodyFormat;
retries: number;
timeout: number;
method: string;
url: string;
headers: CdpHeaders;
body: any;
}
export interface FetchResponseSpec {
url: string;
status: number;
statusText: string;
headers: CdpHeaders;
body: any | null;
}
export type RequestBodyFormat = 'none' | 'json' | 'text' | 'multipart' | 'urlencoded';
export type ResponseBodyFormat = 'none' | 'json' | 'text' | 'urlencoded' | 'blob' | 'base64';
export interface RequestBodySpec {
body: string;
headers: CdpHeaders;
}
export declare class FetchService {
protected blobs: BlobService;
protected logger: Logger;
protected browser: BrowserService;
protected proxy: ProxyService;
constructor(blobs: BlobService, logger: Logger, browser: BrowserService, proxy: ProxyService);
send(_spec: Partial): Promise;
prepareRequestSpec(spec: Partial): Promise;
protected prepareRequestHeaders(spec: Partial): CdpHeaders;
protected prepareRequestBody(spec: Partial): Promise;
prepareMultipartRequestBody(spec: Partial): Promise;
sendWithRetries(spec: FetchRequestSpec): Promise;
protected sendSingleRequest(spec: FetchRequestSpec): Promise;
sendFetchRequestWithTimeout(spec: FetchRequestSpec): Promise;
sendFetchRequest(spec: FetchRequestSpec): Promise;
sendNodeRequest(spec: FetchRequestSpec, useProxy: boolean): Promise;
protected parseResponseBody(spec: FetchRequestSpec, buffer: Buffer): Promise;
}
//# sourceMappingURL=fetch.d.ts.map