/**
 * Multi-Project Session Registry Types
 *
 * Core type definitions for managing multiple concurrent debugging sessions
 * with resource isolation and coordination.
 */
export interface PortRange {
    debugPort: number;
    inspectorPort: number;
    websocketPort: number;
}
export interface ResourceMetrics {
    browserProcesses: number;
    memoryUsageMB: number;
    cpuUsagePercent: number;
    tempDirectorySize: number;
    lastActivity: Date;
}
export interface ResourceQuotas {
    maxBrowserInstances: number;
    maxMemoryMB: number;
    maxConcurrentSessions: number;
    maxIdleTimeMinutes: number;
    maxTempDirectorySizeMB: number;
}
export interface ProjectSession {
    id: string;
    workingDirectory: string;
    targetUrl: string;
    assignedPorts: PortRange;
    browserInstanceId: string;
    tempDirectory: string;
    resourceUsage: ResourceMetrics;
    quotas: ResourceQuotas;
    lastActivity: Date;
    createdAt: Date;
    status: SessionStatus;
    metadata: ProjectMetadata;
}
export type SessionStatus = 'initializing' | 'active' | 'idle' | 'cleanup' | 'error';
export interface ProjectMetadata {
    framework?: string;
    packageJson?: any;
    gitBranch?: string;
    lastCommit?: string;
    dependencies?: string[];
}
export interface ResourceSummary {
    totalSessions: number;
    activeSessions: number;
    idleSessions: number;
    totalMemoryUsage: number;
    totalBrowserProcesses: number;
    availableResources: ResourceMetrics;
    quotaUtilization: number;
}
export interface OptimizationSuggestion {
    type: 'cleanup' | 'consolidate' | 'upgrade_quota' | 'share_resources';
    priority: 'low' | 'medium' | 'high' | 'critical';
    projectId?: string;
    description: string;
    estimatedSavings: Partial<ResourceMetrics>;
    actionRequired: boolean;
}
export interface SessionRegistryConfig {
    basePort: number;
    portRangeSize: number;
    defaultQuotas: ResourceQuotas;
    cleanupIntervalMs: number;
    monitoringIntervalMs: number;
    tempBaseDirectory: string;
    enableSharedBrowsers: boolean;
}
export interface SessionEvent {
    type: 'created' | 'updated' | 'cleanup' | 'error' | 'resource_warning';
    projectId: string;
    timestamp: Date;
    data: any;
    severity?: 'info' | 'warning' | 'error' | 'critical';
}
export declare const DEFAULT_CONFIG: SessionRegistryConfig;
export declare const DEFAULT_QUOTAS: ResourceQuotas;
//# sourceMappingURL=types.d.ts.map