polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
110 lines • 4.34 kB
TypeScript
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