///
import { EventEmitter } from 'events';
import { Connection } from './connection';
import { Frame } from './frame.js';
import { Interceptor, InterceptorHandler } from './interceptor';
import { Logger } from './logger';
import { Page } from './page';
import { Target, TargetInitFn } from './target';
export interface BrowserConfig {
chromeAddress: string;
chromePort: number;
cdpTimeout: number;
navigationTimeout: number;
stableBoxTimeout: number;
suspendTargets: boolean;
toolkitBinding: string;
logger: Logger;
}
/**
* Manages connection to Chrome browser.
*
* A browser instance connects to Chrome via Chrome DevTools Protocol (CDP)
* using WebSocket endpoint (which becomes available once you start Chrome
* with `--remote-debugging-port` flag).
*
* Note: even though Chrome supports multiple CDP connections; it is rarely practical
* to establish more than one. Therefore, browser instance is commonly
* managed as a singleton.
*
* @public
*/
export declare class Browser extends EventEmitter {
connection: Connection;
config: BrowserConfig;
interceptors: Interceptor[];
targetInitFns: TargetInitFn[];
constructor(config?: Partial);
get logger(): Logger;
applyConfig(config: Partial): void;
connect(): Promise;
close(): Promise;
disconnect(): void;
isConnected(): boolean;
newTab(browserContextId?: string): Promise;
closeAllTabs(): void;
getTarget(targetId: string): Target | null;
getPage(targetId: string): Promise;
attachedTargets(): IterableIterator;
attachedPages(): IterableIterator;
resolveFrameById(frameId: string): Promise;
send(method: string, params?: any): Promise;
sendAndForget(method: string, params?: any): void;
http(pathname: string, readJson?: boolean): Promise;
getVersion(): Promise;
createBrowserContext(): Promise<{
browserContextId: string;
}>;
disposeBrowserContext(browserContextId: string): Promise;
interceptRequests(handler: InterceptorHandler, label?: string): Interceptor;
clearInterceptors(label?: string): void;
addTargetInit(fn: TargetInitFn): void;
}
export interface BrowserVersion {
browserVersion: string;
protocolVersion: string;
userAgent: string;
v8Version: string;
webkitVersion: string;
webSocketDebuggerUrl: string;
}
//# sourceMappingURL=browser.d.ts.map