import { TypedEventEmitter } from '@ulixee/commons/lib/eventUtils'; import Resolvable from '@ulixee/commons/lib/Resolvable'; import IBrowser, { IBrowserEvents } from '@ulixee/unblocked-specification/agent/browser/IBrowser'; import IBrowserEngine from '@ulixee/unblocked-specification/agent/browser/IBrowserEngine'; import IBrowserUserConfig from '@ulixee/unblocked-specification/agent/browser/IBrowserUserConfig'; import { IBrowserContextHooks } from '@ulixee/unblocked-specification/agent/hooks/IBrowserHooks'; import { IBrowserHooks, IHooksProvider } from '@ulixee/unblocked-specification/agent/hooks/IHooks'; import Protocol from 'devtools-protocol'; import IConnectionTransport from '../interfaces/IConnectionTransport'; import BrowserContext, { IBrowserContextCreateOptions } from './BrowserContext'; import DevtoolsSession from './DevtoolsSession'; import Page, { IPageCreateOptions } from './Page'; import TargetInfo = Protocol.Target.TargetInfo; export default class Browser extends TypedEventEmitter implements IBrowser { private debugLog; devtoolsSession: DevtoolsSession; readonly id: string; readonly engine: IBrowserEngine; readonly browserContextsById: Map; hooks: IBrowserHooks; get name(): string; get fullVersion(): string; get majorVersion(): number; get supportsBrowserContextProxy(): boolean; launchPromise: Resolvable; isLaunchStarted: boolean; private isShuttingDown; private connection; private process; private version; private preferencesInterceptor?; private browserContextCreationHooks; private connectOnlyToPageTargets?; private get defaultBrowserContext(); constructor(engine: IBrowserEngine, hooks?: IHooksProvider, browserUserConfig?: IBrowserUserConfig, debugLog?: boolean); connect(transport: IConnectionTransport): Promise; launch(): Promise; newContext(options?: IBrowserContextCreateOptions): Promise; connectToPage(targetId: string, options: IPageCreateOptions, hooks?: IBrowserContextHooks): Promise; getAllPageTargets(): Promise; getBrowserContext(id: string): BrowserContext; isEqualEngine(engine: IBrowserEngine): boolean; close(): Promise; isConnected(): boolean; setUserDataDir(): void; protected bindDevtoolsEvents(): void; protected testConnection(): Promise; private applyDefaultLaunchArgs; private onAttachedToTarget; private onTargetInfoChanged; private onTargetCreated; private onTargetDestroyed; private onTargetCrashed; private onDetachedFromTarget; private onNewContext; }