import { BrowserContext, Page } from 'playwright'; import { Logger } from 'pino'; import { PageId, ProxyConfig, Viewport } from '../types/index.js'; export interface BrowserConfig { headless: boolean; maxContexts: number; storageDir: string; defaultTimeoutMs: number; cdp?: { enabled: boolean; host: string; port: number; autoDetect: boolean; maxRetries: number; retryDelay: number; remote: { enabled: boolean; url: string | null; sslMode: 'auto' | 'enabled' | 'disabled' | 'insecure'; apiKey: string | null; headers: Record; }; detection: { enabled: boolean; ports: number[]; timeout: number; useRemote: boolean; }; launch: { autoLaunch: boolean; browserPath: string | null; userDataDir: string | null; additionalArgs: string[]; }; connection: { timeout: number; keepAlive: boolean; reconnect: boolean; maxReconnects: number; }; }; } export interface ContextOptions { viewport?: Viewport; userAgent?: string; proxy?: ProxyConfig; extraHeaders?: Record; persistSessionKey?: string; } export interface PageInfo { id: PageId; page: Page; context: BrowserContext; createdAt: Date; sessionKey?: string; } export declare class BrowserManager { private config; private logger; private browser; private contexts; private pages; private contextCounter; private cdpManager; private engine; constructor(config: BrowserConfig, logger: Logger); initialize(): Promise; private initializeCDP; private initializePlaywright; private launchCDPBrowser; createContext(options?: ContextOptions): Promise; private createCDPContext; private createPlaywrightContext; createPage(context: BrowserContext, sessionKey?: string): Promise; getPage(pageId: PageId): PageInfo | undefined; closePage(pageId: PageId): Promise; cleanup(): Promise; getStats(): { totalPages: number; totalContexts: number; maxContexts: number; persistentContexts: number; }; private generatePageId; private getContextKey; private sanitizeSessionKey; } //# sourceMappingURL=browser-manager.d.ts.map