UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

95 lines 3.14 kB
import { EventEmitter } from 'events'; export interface RenderOptimizerConfig { minRenderInterval: number; maxRenderInterval: number; enableIncrementalRendering: boolean; enableRenderBatching: boolean; batchWindow: number; enableVirtualDom: boolean; targetFrameRate: number; enableProfiling: boolean; maxPendingRenders: number; } export interface ComponentRenderState { componentId: string; componentType: string; lastRenderTime: number; contentHash: string; renderCount: number; averageRenderTime: number; isDirty: boolean; priority: 'low' | 'medium' | 'high'; isVisible: boolean; dimensions?: { width: number; height: number; x: number; y: number; }; } export interface VirtualNode { type: string; props: Record<string, any>; children: VirtualNode[]; key?: string; hash: string; } export interface RenderMetrics { totalRenders: number; averageRenderTime: number; currentFps: number; skippedRenders: number; batchedRenders: number; incrementalRenders: number; virtualDomMemory: number; activeComponents: number; dirtyComponents: number; } export declare class RenderOptimizer extends EventEmitter { private config; private componentStates; private virtualNodes; private pendingOperations; private batchTimer?; private renderTimer?; private lastFrameTime; private frameCount; private isRunning; private metrics; constructor(config?: Partial<RenderOptimizerConfig>); start(): void; stop(): void; registerComponent(componentId: string, componentType: string, options?: { priority?: 'low' | 'medium' | 'high'; dimensions?: ComponentRenderState['dimensions']; isVisible?: boolean; }): void; unregisterComponent(componentId: string): void; markDirty(componentId: string, force?: boolean): void; scheduleRender(componentId: string, priority?: 'low' | 'medium' | 'high', renderFn?: () => Promise<void> | void, force?: boolean): void; updateContent(componentId: string, content: any): boolean; updateVisibility(componentId: string, isVisible: boolean): void; updateDimensions(componentId: string, dimensions: ComponentRenderState['dimensions']): void; getMetrics(): RenderMetrics; getComponentStates(): Map<string, ComponentRenderState>; flushRenders(): Promise<void>; clearPendingRenders(): void; updateConfig(newConfig: Partial<RenderOptimizerConfig>): void; private generateContentHash; private shouldRenderImmediately; private getPriorityValue; private scheduleBatchRender; private processBatchRenders; private processBatchOperations; private processRenderOperation; private performDefaultRender; private updateVirtualNode; private setupRenderLoop; private updateFpsMetrics; private updateAverageRenderTime; private updateActiveComponentsCount; private updateDirtyComponentsCount; private updateVirtualDomMemory; private updateMetrics; } //# sourceMappingURL=render-optimizer.d.ts.map