/**
 * Browser Process Guardian
 * Monitors and manages browser processes to prevent zombies and resource leaks
 */
export interface BrowserProcess {
    pid: number;
    sessionId: string;
    createdAt: number;
    lastActivity: number;
    processName: string;
    memoryMB?: number;
    status: 'active' | 'zombie' | 'terminated';
}
export interface ProcessStats {
    totalProcesses: number;
    activeProcesses: number;
    zombieProcesses: number;
    totalMemoryMB: number;
    processesKilled: number;
}
export declare class BrowserProcessGuardian {
    private static instance;
    private browserProcesses;
    private maxProcesses;
    private maxProcessAge;
    private maxMemoryPerProcess;
    private killCount;
    private monitoringInterval;
    static getInstance(): BrowserProcessGuardian;
    /**
     * Start monitoring browser processes
     */
    startMonitoring(): void;
    /**
     * Stop monitoring browser processes
     */
    stopMonitoring(): void;
    /**
     * Register a new browser process
     */
    registerBrowserProcess(pid: number, sessionId: string, processName?: string): void;
    /**
     * Update process activity timestamp
     */
    updateProcessActivity(pid: number): void;
    /**
     * Unregister a browser process (normal cleanup)
     */
    unregisterBrowserProcess(pid: number): void;
    /**
     * Monitor all tracked browser processes
     */
    private monitorProcesses;
    /**
     * Clean up zombie and stale browser processes
     */
    private cleanupZombieProcesses;
    /**
     * Enforce resource limits (memory, process count)
     */
    private enforceResourceLimits;
    /**
     * Clean up oldest processes when limit is exceeded
     */
    private cleanupOldestProcesses;
    /**
     * Check if a process is still running
     */
    private isProcessRunning;
    /**
     * Get process memory usage in MB
     */
    private getProcessMemoryMB;
    /**
     * Kill a browser process
     */
    private killProcess;
    /**
     * Clean up any existing browser processes on startup
     */
    private cleanupExistingBrowserProcesses;
    /**
     * Get process statistics
     */
    getProcessStats(): ProcessStats;
    /**
     * Force cleanup of all browser processes
     */
    forceCleanupAll(): Promise<void>;
    /**
     * Sleep utility
     */
    private sleep;
}
//# sourceMappingURL=browser-process-guardian.d.ts.map