import type * as pw from 'playwright-core'; type PropType = TObj[TProp]; type PluginEnv = { framework: 'playwright'; }; /** Strongly typed plugin lifecycle events for internal use */ export declare abstract class PluginLifecycleMethods { onPluginRegistered(_env?: PluginEnv): Promise; beforeLaunch(_options: pw.LaunchOptions): Promise; afterLaunch(_browserOrContext?: pw.Browser | pw.BrowserContext): Promise; beforeConnect(_options: pw.ConnectOptions): Promise; afterConnect(_browser: pw.Browser): Promise; onBrowser(_browser: pw.Browser): Promise; onPageCreated(_page: pw.Page): Promise; onPageClose(_page: pw.Page): Promise; onDisconnected(_browser?: pw.Browser): Promise; beforeContext(_options?: pw.BrowserContextOptions, _browser?: pw.Browser): Promise; onContextCreated(_context?: pw.BrowserContext, _options?: pw.BrowserContextOptions): Promise; } /** A valid plugin method name */ export type PluginMethodName = keyof PluginLifecycleMethods; /** A valid plugin method function */ export type PluginMethodFn = PropType; type PluginRequirements = Set<'launch' | 'headful' | 'dataFromPlugins' | 'runLast'>; type PluginDependencies = Set | Map | string[]; interface PluginData { name: string | { [key: string]: unknown; }; value: { [key: string]: unknown; }; } export interface CompatiblePluginLifecycleMethods { onPluginRegistered(...args: unknown[]): Promise | unknown; beforeLaunch(...args: unknown[]): Promise | unknown; afterLaunch(...args: unknown[]): Promise | unknown; beforeConnect(...args: unknown[]): Promise | unknown; afterConnect(...args: unknown[]): Promise | unknown; onBrowser(...args: unknown[]): Promise | unknown; onPageCreated(...args: unknown[]): Promise | unknown; onPageClose(...args: unknown[]): Promise | unknown; onDisconnected(...args: unknown[]): Promise | unknown; beforeContext(...args: unknown[]): Promise | unknown; onContextCreated(...args: unknown[]): Promise | unknown; } /** * PuppeteerExtraPlugin interface, strongly typed for internal use * @private */ export interface PuppeteerExtraPlugin extends Partial { _isPuppeteerExtraPlugin: boolean; name: string; /** Disable the puppeteer compatibility shim for this plugin */ noPuppeteerShim?: boolean; requirements?: PluginRequirements; dependencies?: PluginDependencies; data?: PluginData[]; getDataFromPlugins?(name?: string): void; _registerChildClassMembers?(prototype: object): void; _childClassMembers?: string[]; plugins?: CompatiblePlugin[]; } /** * Minimal compatible PuppeteerExtraPlugin interface * @private */ export interface CompatiblePuppeteerPlugin extends Partial { _isPuppeteerExtraPlugin: boolean; name?: string; } export interface CompatiblePlaywrightPlugin extends Partial { _isPlaywrightExtraPlugin: boolean; name?: string; } export interface CompatibleExtraPlugin extends Partial { _isExtraPlugin: boolean; name?: string; } /** * A compatible plugin */ export type CompatiblePlugin = CompatiblePuppeteerPlugin | CompatiblePlaywrightPlugin | CompatibleExtraPlugin; export type CompatiblePluginModule = (...args: unknown[]) => CompatiblePlugin; export type Plugin = PuppeteerExtraPlugin; export type PluginModule = (...args: unknown[]) => Plugin; export {}; //# sourceMappingURL=index.d.ts.map