/** * Enhanced Streaming API * * Production-ready multi-modal streaming API with: * - Complete multimedia support (video, audio, data) * - Real-time performance optimization (<100ms text, <500ms multimedia) * - Advanced error handling and recovery * - A2A protocol integration * - Edge caching and CDN optimization * - Machine learning-based adaptation */ /// import { EventEmitter } from "events"; import { VideoStreamRequest, AudioStreamRequest, VideoStreamResponse, AudioStreamResponse, MultiModalChunk, StreamingSession, NetworkConditions, PerformanceMetrics, StreamQuality, EdgeCacheConfig, CDNConfiguration, SynchronizationConfig, UserPreferences, QualityConstraints } from "../types/streaming.js"; export interface EnhancedStreamingConfig { webrtc: { iceServers: RTCIceServer[]; enableDataChannels: boolean; enableTranscoding: boolean; }; caching: EdgeCacheConfig; cdn: CDNConfiguration; synchronization: SynchronizationConfig; quality: { enableAdaptation: boolean; targetLatency: number; adaptationSpeed: "slow" | "medium" | "fast"; mlPrediction: boolean; }; a2a: { enableCoordination: boolean; consensusThreshold: number; failoverTimeout: number; }; performance: { textLatencyTarget: number; multimediaLatencyTarget: number; enableOptimizations: boolean; monitoringInterval: number; }; security: { enableEncryption: boolean; enableAuthentication: boolean; enableIntegrityChecks: boolean; }; } export interface StreamSession { id: string; type: "video" | "audio" | "multimodal" | "data"; status: "initializing" | "active" | "paused" | "degraded" | "failed" | "ended"; participants: string[]; streams: { video: Map; audio: Map; data: Map; }; quality: StreamQuality; metrics: PerformanceMetrics; coordination: { a2aSession?: StreamingSession; masterAgent?: string; consensusRequired: boolean; }; security: { encrypted: boolean; authenticated: boolean; integrityProtected: boolean; }; timestamps: { created: number; started?: number; ended?: number; lastActivity: number; }; } export interface StreamingContext { sessionId: string; userId?: string; userPreferences: UserPreferences; deviceCapabilities: any; networkConditions: NetworkConditions; constraints: QualityConstraints; metadata: Record; } export declare class EnhancedStreamingAPI extends EventEmitter { private logger; private config; private webrtc; private codecManager; private bufferSync; private a2aExtension; private qualityEngine; private edgeCache; private sessions; private performanceMonitor; private errorHandler; private optimizationEngine; private securityManager; constructor(config: EnhancedStreamingConfig); /** * Create a new streaming session */ createSession(sessionId: string, type: "video" | "audio" | "multimodal" | "data", context: StreamingContext): Promise; /** * Start video streaming with advanced optimization */ startVideoStream(sessionId: string, request: VideoStreamRequest, context: StreamingContext): Promise; /** * Start audio streaming with low-latency optimization */ startAudioStream(sessionId: string, request: AudioStreamRequest, context: StreamingContext): Promise; /** * Process multi-modal chunks with synchronization */ processMultiModalChunk(sessionId: string, chunk: MultiModalChunk): Promise; /** * Adapt stream quality based on real-time conditions */ adaptStreamQuality(sessionId: string, streamId: string, conditions?: NetworkConditions): Promise; /** * Get comprehensive session metrics */ getSessionMetrics(sessionId: string): PerformanceMetrics | null; /** * Handle emergency stream degradation */ emergencyDegrade(sessionId: string, reason: string): Promise; /** * End streaming session and cleanup resources */ endSession(sessionId: string): Promise; /** * Get overall API performance statistics */ getPerformanceStatistics(): any; /** * Setup event handlers for all components */ private setupEventHandlers; /** * Validate streaming context */ private validateStreamingContext; /** * Determine initial quality based on context */ private determineInitialQuality; /** * Initialize performance metrics */ private initializeMetrics; /** * Calculate optimal buffer size */ private calculateOptimalBufferSize; /** * Generate cache key for content */ private generateCacheKey; /** * Create video response from cached content */ private createVideoResponseFromCache; /** * Setup transcription for audio stream */ private setupTranscription; /** * Start monitoring for a stream */ private startStreamMonitoring; /** * Validate latency against target */ private validateLatencyTarget; /** * Calculate current FPS for session */ private calculateCurrentFPS; /** * Calculate sync accuracy */ private calculateSyncAccuracy; /** * Calculate average consensus time */ private calculateAverageConsensusTime; /** * Calculate message latency */ private calculateMessageLatency; /** * Get memory usage */ private getMemoryUsage; /** * Get average buffer health */ private getAverageBufferHealth; /** * Handle agent failure event */ private handleAgentFailure; /** * Handle buffer underrun event */ private handleBufferUnderrun; /** * Handle performance alert */ private handlePerformanceAlert; /** * Start monitoring systems */ private startMonitoring; /** * Check health of all sessions */ private checkSessionHealth; /** * Clean up all resources */ cleanup(): Promise; } //# sourceMappingURL=enhanced-streaming-api.d.ts.map