UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

97 lines 2.85 kB
import { EventEmitter } from 'events'; export interface MemoryManagerConfig { warningThreshold: number; criticalThreshold: number; cleanupInterval: number; enableAutoCleanup: boolean; enableGcForcing: boolean; gcInterval: number; enableLeakDetection: boolean; leakDetectionInterval: number; trendSampleCount: number; } export interface MemorySnapshot { timestamp: number; rss: number; heapUsed: number; heapTotal: number; external: number; arrayBuffers: number; usagePercentage: number; } export interface MemoryStats { current: MemorySnapshot; peak: MemorySnapshot; average: { rss: number; heapUsed: number; heapTotal: number; }; growthRate: number; cleanupCount: number; gcCount: number; leakAlerts: number; pressureLevel: 'normal' | 'warning' | 'critical'; } export interface LeakDetection { leakDetected: boolean; severity: 'low' | 'medium' | 'high'; growthTrend: 'stable' | 'growing' | 'rapidly_growing'; growthRatePerMinute: number; confidence: number; recommendations: string[]; } export interface ManagedResource { id: string; type: string; size: number; createdAt: number; lastAccessed: number; cleanup: () => void; disposable: boolean; priority: 'low' | 'medium' | 'high'; } export declare class MemoryManager extends EventEmitter { private config; private snapshots; private managedResources; private cleanupTimer?; private gcTimer?; private leakDetectionTimer?; private stats; private isRunning; private peakSnapshot?; constructor(config?: Partial<MemoryManagerConfig>); start(): void; stop(): void; registerResource(resource: Omit<ManagedResource, 'createdAt' | 'lastAccessed'>): void; unregisterResource(resourceId: string): void; touchResource(resourceId: string): void; forceCleanup(): Promise<number>; forceGarbageCollection(): void; getStats(): MemoryStats; getSnapshots(count?: number): MemorySnapshot[]; getManagedResources(): Array<{ id: string; type: string; size: number; age: number; lastAccessed: number; priority: string; }>; detectMemoryLeaks(): LeakDetection; setPressureLevel(level: MemoryStats['pressureLevel']): void; updateConfig(newConfig: Partial<MemoryManagerConfig>): void; private takeMemorySnapshot; private updateStats; private updatePressureLevel; private handleCriticalMemoryPressure; private startCleanupMonitoring; private startGcMonitoring; private startLeakDetection; private performCleanup; private calculateGrowthRates; private calculateGrowthConsistency; private generateLeakRecommendations; } //# sourceMappingURL=memory-manager.d.ts.map