/**
 * Session Registry - Multi-Project Resource Coordination
 *
 * Central coordinator for managing multiple concurrent debugging sessions
 * with automatic resource isolation and intelligent cleanup.
 */
import { EventEmitter } from 'events';
import { ProjectSession, ResourceSummary, OptimizationSuggestion, SessionRegistryConfig, ResourceMetrics } from './types';
export declare class SessionRegistry extends EventEmitter {
    private sessions;
    private workingDirToSession;
    private portAllocator;
    private resourceMonitor;
    private cleanupCoordinator;
    private config;
    private cleanupInterval?;
    private monitoringInterval?;
    private persistentStorage;
    private initialized;
    constructor(config?: Partial<SessionRegistryConfig>);
    /**
     * Initialize session registry from persistent storage
     */
    private initializeFromStorage;
    /**
     * Save current sessions to persistent storage
     */
    private saveToStorage;
    /**
     * Register a new project debugging session
     */
    registerProject(workingDirectory: string, targetUrl: string): Promise<ProjectSession>;
    /**
     * Get existing project session by working directory
     */
    getProjectSession(workingDirectory: string): Promise<ProjectSession | null>;
    /**
     * Get session by ID
     */
    getSession(sessionId: string): ProjectSession | null;
    /**
     * Update session resource usage
     */
    updateResourceUsage(sessionId: string, metrics: Partial<ResourceMetrics>): Promise<void>;
    /**
     * Get comprehensive resource summary
     */
    getResourceSummary(): Promise<ResourceSummary>;
    /**
     * Get optimization suggestions
     */
    getOptimizationSuggestions(): Promise<OptimizationSuggestion[]>;
    /**
     * Cleanup idle sessions
     */
    cleanupIdleSessions(): Promise<string[]>;
    /**
     * Cleanup specific session
     */
    cleanupSession(sessionId: string): Promise<void>;
    /**
     * Emergency cleanup - clean up all sessions
     */
    emergencyCleanup(): Promise<void>;
    /**
     * Shutdown the registry
     */
    shutdown(): Promise<void>;
    private generateProjectId;
    private detectProjectMetadata;
    private enforceQuotas;
    private calculateQuotaUtilization;
    private getPriorityWeight;
    private startBackgroundTasks;
    private emitEvent;
}
//# sourceMappingURL=session-registry.d.ts.map