import { ElectronApplication, JSHandle, Page } from '@playwright/test'; import { BrowserWindow } from 'electron'; import { Runner } from './podman-desktop-runner'; import { RunnerOptions } from './runner-options'; type WindowState = { isVisible: boolean; isDevToolsOpened: boolean; isCrashed: boolean; }; export declare class ElectronRunner extends Runner { protected _app: ElectronApplication | undefined; constructor(options?: { runnerOptions?: RunnerOptions; }); start(): Promise; getElectronApp(): ElectronApplication; /** * Get all pages (windows) from the Electron application. * Returns all windows including webviews. */ getWindows(): Page[]; getBrowserWindow(): Promise>; getBrowserWindowState(): Promise; close(timeout?: number): Promise; /** * Ensure no Electron processes survive after close. Tries a targeted kill by * PID first; if no PID is available (e.g. the process already crashed with * STATUS_STACK_BUFFER_OVERRUN and the handle is gone), falls back to killing * all Electron processes by image name. This prevents a stale * single-instance lock from blocking subsequent test launches. */ protected ensureElectronProcessesStopped(pid: number | undefined): void; protected forceKillByPid(pid: number): void; protected forceKillByName(): void; protected defaultOptions(): object; } export {};