UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

69 lines 2.14 kB
import { EventEmitter } from 'events'; export interface AdaptivePollingConfig { baseInterval: number; minInterval: number; maxInterval: number; sensitivity: number; sampleSize: number; rateLimitPerMinute: number; } export interface DataSourceStats { id: string; currentInterval: number; lastPoll: number; changeCount: number; totalPolls: number; changeRate: number; volatility: number; changeSamples: number[]; } export interface BatchRequestConfig { maxBatchSize: number; batchTimeout: number; batchInterval: number; } export interface ApiCallStats { totalCalls: number; successfulCalls: number; failedCalls: number; averageResponseTime: number; callsPerMinute: number; lastCallTime: number; } export declare class AdaptivePollingManager extends EventEmitter { private config; private dataSourceStats; private intervalTimers; private batchConfig; private apiStats; private pendingRequests; private batchTimers; private isRunning; constructor(config?: Partial<AdaptivePollingConfig>); start(): void; stop(): void; registerDataSource(dataSourceId: string, initialInterval?: number): void; unregisterDataSource(dataSourceId: string): void; reportDataChange(dataSourceId: string, changeData?: any): void; getOptimalInterval(dataSourceId: string): number; queueBatchRequest(batchId: string, request: any, priority?: 'high' | 'medium' | 'low'): Promise<any>; getApiStats(): ApiCallStats; getDataSourceStats(): Map<string, DataSourceStats>; getStats(): { dataSourceCount: number; totalPolls: number; totalChanges: number; apiStats: ApiCallStats; averageInterval: number; activeDataSources: string[]; }; private startPollingForDataSource; private pollDataSource; private updateVolatilityAndInterval; private calculateOptimalInterval; private restartPollingForDataSource; private processBatch; private trackApiCall; private setupRateLimitMonitoring; } //# sourceMappingURL=adaptive-polling.d.ts.map