/** * @license * Copyright 2017 Google Inc. * SPDX-License-Identifier: Apache-2.0 */ import type { Protocol } from 'devtools-protocol'; import { type CDPSession } from '../api/CDPSession.js'; import type { Frame } from '../api/Frame.js'; import { type HeadersInput } from '../api/HTTPRequest.js'; import type { Credentials, Page } from '../api/Page.js'; import { type Logger } from '../common/Debug.js'; import { EventEmitter } from '../common/EventEmitter.js'; import { type NetworkManagerEvents } from '../common/NetworkManagerEvents.js'; /** * @public */ export interface NetworkConditions { /** * Emulates the offline mode. * * @remarks * * Shortcut for {@link Page.setOfflineMode}. */ offline?: boolean; /** * Download speed (bytes/s). If not provided, download throttling is * disabled and only the offline mode is emulated. */ download?: number; /** * Upload speed (bytes/s). If not provided, upload throttling is * disabled and only the offline mode is emulated. */ upload?: number; /** * Latency (ms). If not provided, no latency is emulated. */ latency?: number; } /** * @public */ export interface InternalNetworkConditions extends NetworkConditions { offline: boolean; download: number; upload: number; latency: number; } /** * @internal */ export interface FrameProvider { frame(id: string): Frame | null; page(): Page; } /** * @internal */ export declare class NetworkManager extends EventEmitter { #private; constructor(frameManager: FrameProvider, networkEnabled: boolean | undefined, logger: Logger); addClient(client: CDPSession): Promise; authenticate(credentials: Credentials | null): Promise; setExtraHTTPHeaders(headers: HeadersInput): Promise; extraHTTPHeaders(): Record; inFlightRequestsCount(): number; setOfflineMode(value: boolean): Promise; emulateNetworkConditions(networkConditions: NetworkConditions | null): Promise; setUserAgent(userAgent: string, userAgentMetadata?: Protocol.Emulation.UserAgentMetadata, platform?: string): Promise; setAcceptLanguage(acceptLanguage: string | undefined): Promise; setCacheEnabled(enabled: boolean): Promise; setRequestInterception(value: boolean): Promise; } //# sourceMappingURL=NetworkManager.d.ts.map