import { type ChromeLaunchOptions, type ChromeProcess } from './chrome-launcher.js'; import { type ProfileLockHandle } from './profile-lock.js'; import { type BrowserUseConfig } from './config.js'; export interface AttachedClient { close(): Promise; } export interface PersistentBackendOptions { config: BrowserUseConfig; headed?: boolean; sessionId?: string; launch?: (options: ChromeLaunchOptions) => Promise; lock?: (profileDir: string) => ProfileLockHandle; attachClient?: (config: BrowserUseConfig) => AttachedClient; } export declare class PersistentBackend { private readonly options; private chrome; private lock; private client; private sharedAdvert; private readonly launch; private readonly acquireLock; private readonly attachClient; readonly sessionId: string; constructor(options: PersistentBackendOptions); get owned(): boolean; profileDir(): string; browserUrl(): string | undefined; attached(): AttachedClient | undefined; pid(): number | undefined; private onChromeExit; private watchChrome; protected reapOrphans(profileDir: string, runner?: { ps(): string; kill(pid: number): void; }): number[]; start(signal?: AbortSignal): Promise; effectiveBrowserUrl(): string; attachConfig(): BrowserUseConfig; running(): boolean; stop(): Promise; restart(headed: boolean, signal?: AbortSignal): Promise; } export declare function shouldSelfLaunch(config: BrowserUseConfig): boolean; //# sourceMappingURL=persistent-backend.d.ts.map