UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

66 lines 1.98 kB
import { EventEmitter } from 'events'; export interface ApiOptimizerConfig { enableCaching: boolean; cacheTtl: number; maxCacheSize: number; enableDeduplication: boolean; deduplicationWindow: number; enableCoalescing: boolean; coalescingWindow: number; enableCompression: boolean; compressionThreshold: number; } export interface OptimizationStats { totalRequests: number; cachedRequests: number; deduplicatedRequests: number; coalescedRequests: number; cacheHitRatio: number; averageResponseTime: number; bytesSaved: number; currentCacheSize: number; } export declare class ApiOptimizer extends EventEmitter { private config; private cache; private pendingRequests; private recentRequests; private stats; private coalescingTimers; constructor(config?: Partial<ApiOptimizerConfig>); optimizeRequest(method: string, url: string, params?: Record<string, any>, body?: any, options?: { priority?: 'low' | 'medium' | 'high'; bypassCache?: boolean; ttl?: number; }): Promise<any>; invalidateCache(pattern?: string): void; getStats(): OptimizationStats; getCacheInfo(): { size: number; entries: Array<{ hash: string; timestamp: number; ttl: number; hitCount: number; size: number; }>; }; updateConfig(newConfig: Partial<ApiOptimizerConfig>): void; reset(): void; private createRequestSignature; private hashSignature; private hashObject; private getCachedResponse; private checkForDuplicate; private coalesceRequest; private executePendingRequest; private executeRequest; private cacheResponse; private evictOldestEntry; private estimateSize; private getPriorityValue; private updateStats; private setupCacheCleanup; private cleanupExpiredEntries; } //# sourceMappingURL=api-optimizer.d.ts.map