import type puppeteer from 'puppeteer'; import type playwright from 'playwright'; declare type AutomationLibrary = 'playwright' | 'puppeteer'; interface LaunchOptionsBase { testName: string; browserOptions?: LaunchOptionsOptionsMap[TAutomationLibrary]; noServer?: boolean; automationLibrary: TAutomationLibrary; headless?: boolean; _runId?: string; } export declare type BrowserOptions = PuppeteerBrowserOptions | PlaywrightBrowserOptions; interface LaunchOptionsOptionsMap { puppeteer: PuppeteerBrowserOptions; playwright: PlaywrightBrowserOptions; } interface AutomationLibraryPageMap { puppeteer: puppeteer.Page; playwright: playwright.Page; } export interface PuppeteerBrowserOptions { headless?: boolean; browserArgs?: string[]; } export interface PlaywrightBrowserOptions { browser: 'chromium' | 'webkit' | 'firefox'; headless?: boolean; browserArgs?: string[]; } export declare function launch(options: LaunchOptionsBase, userTestFunction: (page: AutomationLibraryPageMap[TSelectedAutomationLibrary]) => Promise): Promise; export declare function launchImpl(options: LaunchOptionsBase, userTestFunction: (page: AutomationLibraryPageMap[T]) => Promise, dateConstructor?: typeof Date): Promise; export {};