/**
* A2A Multimedia Protocol Extensions
* Supporting classes and implementations for the main protocol
*/
///
///
///
import { EventEmitter } from "events";
import { A2AMultimediaSession, QoSRequirements, MessageStatistics, BandwidthStatistics, LatencyStatistics, QualityStatistics, ErrorStatistics } from "./a2a-multimedia-protocol.js";
export declare class RoutingEngine extends EventEmitter {
private logger;
private routingTable;
private networkTopology;
private routeCache;
constructor();
initialize(): Promise;
findOptimalRoute(sourceId: string, targetId: string, qos: QoSRequirements): Promise;
private calculateOptimalRoute;
private scorePath;
private isRouteCacheValid;
private startRouteOptimization;
private optimizeRoutes;
private startTopologyMonitoring;
private monitorTopology;
}
export declare class MediaStreamBuffer {
private streamId;
private config;
private buffer;
private maxBufferSize;
private logger;
constructor(streamId: string, config: any);
addData(data: Buffer): void;
getData(): Buffer | null;
getBufferStats(): {
size: number;
chunks: number;
utilization: number;
};
}
export declare class StreamMonitor extends EventEmitter {
private streamId;
private targets;
private logger;
private active;
private metrics;
constructor(streamId: string, targets: string[]);
start(): void;
stop(): void;
private startMonitoring;
private collectMetrics;
private analyzeMetrics;
private initializeMetrics;
}
export declare class SessionPersistenceManager {
private logger;
private persistedSessions;
private storageBackend;
constructor(storageConfig?: any);
initialize(): Promise;
persistSession(session: A2AMultimediaSession): Promise;
restoreSession(sessionId: string): Promise;
deleteSession(sessionId: string): Promise;
listPersistedSessions(): Promise;
private loadPersistedSessions;
}
export declare class ProtocolStatisticsCalculator {
private logger;
constructor();
calculateMessageStatistics(sessionId: string): Promise;
calculateBandwidthStatistics(sessionId: string): Promise;
calculateLatencyStatistics(sessionId: string): Promise;
calculateQualityStatistics(sessionId: string): Promise;
calculateErrorStatistics(sessionId: string): Promise;
}
interface OptimalRoute {
path: string[];
hops: number;
score: number;
estimatedLatency: number;
estimatedBandwidth: number;
}
export {};
//# sourceMappingURL=a2a-multimedia-protocol-extensions.d.ts.map