import { launch } from '@puppeteer/browsers'; import type { Browser } from '../api/Browser.js'; import { Connection } from '../cdp/Connection.js'; import type { Product } from '../common/Product.js'; import type { BrowserLaunchArgumentOptions, ChromeReleaseChannel, PuppeteerNodeLaunchOptions } from './LaunchOptions.js'; import type { PuppeteerNode } from './PuppeteerNode.js'; /** * @internal */ export interface ResolvedLaunchArgs { isTempUserDataDir: boolean; userDataDir: string; executablePath: string; args: string[]; } /** * Describes a launcher - a class that is able to create and launch a browser instance. * * @public */ export declare abstract class ProductLauncher { #private; /** * @internal */ puppeteer: PuppeteerNode; /** * @internal */ protected actualBrowserRevision?: string; /** * @internal */ constructor(puppeteer: PuppeteerNode, product: Product); get product(): Product; launch(options?: PuppeteerNodeLaunchOptions): Promise; abstract executablePath(channel?: ChromeReleaseChannel): string; abstract defaultArgs(object: BrowserLaunchArgumentOptions): string[]; /** * Set only for Firefox, after the launcher resolves the `latest` revision to * the actual revision. * @internal */ getActualBrowserRevision(): string | undefined; /** * @internal */ protected abstract computeLaunchArguments(options: PuppeteerNodeLaunchOptions): Promise; /** * @internal */ protected abstract cleanUserDataDir(path: string, opts: { isTemp: boolean; }): Promise; /** * @internal */ protected closeBrowser(browserProcess: ReturnType, cdpConnection?: Connection): Promise; /** * @internal */ protected waitForPageTarget(browser: Browser, timeout: number): Promise; /** * @internal */ protected createCdpSocketConnection(browserProcess: ReturnType, opts: { timeout: number; protocolTimeout: number | undefined; slowMo: number; }): Promise; /** * @internal */ protected createCdpPipeConnection(browserProcess: ReturnType, opts: { timeout: number; protocolTimeout: number | undefined; slowMo: number; }): Promise; /** * @internal */ protected getProfilePath(): string; /** * @internal */ protected resolveExecutablePath(headless?: boolean | 'shell'): string; } //# sourceMappingURL=ProductLauncher.d.ts.map