UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

110 lines 4.34 kB
import { EventEmitter } from 'events'; import { AdaptivePollingConfig } from './adaptive-polling'; import { RenderOptimizerConfig } from './render-optimizer'; import { MemoryManagerConfig } from './memory-manager'; import { ApiOptimizerConfig } from './api-optimizer'; import { BatchRequestConfig } from './batch-request-manager'; import { ApiAnalyticsConfig } from './api-analytics'; import { ChangeDetectionConfig } from './change-detector'; import { ConnectionPoolConfig } from './connection-pool-manager'; import { FallbackManagerConfig } from './fallback-manager'; import { PerformanceMonitorConfig } from './performance-monitor'; import { ErrorRecoveryConfig } from './error-recovery-manager'; export interface PerformanceOptimizerConfig { enableAdaptivePolling: boolean; enableRenderOptimization: boolean; enableMemoryManagement: boolean; enableApiOptimization: boolean; enableBatchRequests: boolean; enableApiAnalytics: boolean; enableChangeDetection: boolean; enableConnectionPooling: boolean; enableFallbackManagement: boolean; enablePerformanceMonitoring: boolean; enableErrorRecovery: boolean; monitoringInterval: number; autoOptimizationThreshold: number; adaptivePolling?: Partial<AdaptivePollingConfig>; renderOptimizer?: Partial<RenderOptimizerConfig>; memoryManager?: Partial<MemoryManagerConfig>; apiOptimizer?: Partial<ApiOptimizerConfig>; batchRequests?: Partial<BatchRequestConfig>; apiAnalytics?: Partial<ApiAnalyticsConfig>; changeDetection?: Partial<ChangeDetectionConfig>; connectionPooling?: Partial<ConnectionPoolConfig>; fallbackManagement?: Partial<FallbackManagerConfig>; performanceMonitoring?: Partial<PerformanceMonitorConfig>; errorRecovery?: Partial<ErrorRecoveryConfig>; } export interface PerformanceMetrics { overallScore: number; components: { adaptivePolling?: any; renderOptimizer?: any; memoryManager?: any; apiOptimizer?: any; batchRequests?: any; apiAnalytics?: any; changeDetection?: any; connectionPooling?: any; fallbackManagement?: any; performanceMonitoring?: any; errorRecovery?: any; }; recommendations: string[]; systemResources: { cpu: number; memory: number; networkRequests: number; renderFrameRate: number; }; optimizationImpact: { apiCallsReduced: number; memoryFreed: number; renderTimeImproved: number; networkBandwidthSaved: number; }; } export declare class PerformanceOptimizer extends EventEmitter { private config; private adaptivePollingManager?; private renderOptimizer?; private memoryManager?; private apiOptimizer?; private batchRequestManager?; private apiAnalytics?; private changeDetector?; private connectionPoolManager?; private fallbackManager?; private performanceMonitor?; private errorRecoveryManager?; private monitoringTimer?; private isRunning; private startTime; constructor(config?: Partial<PerformanceOptimizerConfig>); start(): void; stop(): void; getPerformanceMetrics(): PerformanceMetrics; registerComponent(componentId: string, componentType: string, options?: any): void; registerDataSource(dataSourceId: string, initialInterval?: number): void; optimizeApiRequest(method: string, url: string, params?: Record<string, any>, body?: any, options?: any): Promise<any>; reportDataChange(dataSourceId: string, changeData?: any): void; markComponentDirty(componentId: string, force?: boolean): void; registerResource(resource: any): void; forceOptimization(): Promise<void>; updateConfig(newConfig: Partial<PerformanceOptimizerConfig>): void; getRecommendations(): string[]; private initializeComponents; private setupEventHandlers; private handleCriticalMemoryPressure; private handleRenderQueueFull; private handleRateLimitWarning; private startPerformanceMonitoring; private performPerformanceCheck; private calculatePerformanceScore; private generateRecommendations; private calculateSystemResources; private calculateOptimizationImpact; private estimateSize; } //# sourceMappingURL=performance-optimizer.d.ts.map