import { type BrowserContext, type BrowserContextOptions } from 'playwright-core'; import type { ResolvedProxyConfig } from '../types'; export interface PoolEntry { context: BrowserContext; userId: string; profileKey: string; profileDir: string; lastAccess: number; createdAt: number; launching?: Promise; staged?: boolean; stagedGeneration?: string; virtualDisplay?: any; proxyConfig?: ResolvedProxyConfig | null; seedOptions?: Pick; } export declare class ContextPool { private pool; private headlessOverrides; private onEvictCallbacks; onEvict(callback: (userId: string) => void): void; private notifyEviction; getEntry(profileKey: string): PoolEntry | undefined; getDisplayForUser(userId: string): string | null; size(): number; listActiveUserIds(): string[]; getLifecycleSnapshot(): { liveContexts: number; launchingContexts: number; stagedContexts: number; }; getPoolEntries(): Map; private cleanupVirtualDisplay; private launchPersistentContext; restartContext(userId: string, headless?: boolean | 'virtual', profileKey?: string, options?: BrowserContextOptions, resolvedProxy?: ResolvedProxyConfig | null): Promise; private evictIfNeeded; ensureContext(profileKey: string, userId: string, options?: BrowserContextOptions, resolvedProxy?: ResolvedProxyConfig | null, staged?: boolean, stagedGeneration?: string): Promise; closeContext(profileKey: string): Promise; closeContextIfMatches(profileKey: string, expectedCreatedAt: number, expectedLastAccess?: number): Promise; setHeadlessOverride(userId: string, headless: boolean | 'virtual'): void; closeStagedContext(profileKey: string, generation?: string): Promise; closeContextByUserId(userId: string): Promise; closeStagedContextByUserId(userId: string, generation?: string): Promise; closeAll(): Promise; } export declare const contextPool: ContextPool; export declare function getDisplayForUser(userId: string): string | null; //# sourceMappingURL=context-pool.d.ts.map