tasq/node_modules/agentic-flow/dist/swarm/transport-router.d.ts

124 lines
3.1 KiB
TypeScript

import { QuicCoordinator, SwarmMessage, SwarmAgent } from './quic-coordinator.js';
export type TransportProtocol = 'quic' | 'http2' | 'auto';
export interface TransportConfig {
protocol: TransportProtocol;
enableFallback: boolean;
quicConfig?: {
host: string;
port: number;
maxConnections: number;
certPath?: string;
keyPath?: string;
};
http2Config?: {
host: string;
port: number;
maxConnections: number;
secure: boolean;
};
}
export interface TransportStats {
protocol: 'quic' | 'http2';
messagesSent: number;
messagesReceived: number;
bytesTransferred: number;
averageLatency: number;
errorRate: number;
}
export interface RouteResult {
success: boolean;
protocol: 'quic' | 'http2';
latency: number;
error?: string;
}
/**
* TransportRouter - Intelligent transport layer with automatic protocol selection
*
* Features:
* - Automatic QUIC/HTTP2 protocol selection
* - Transparent fallback on failure
* - Connection pooling for both protocols
* - Per-protocol statistics tracking
* - Health checking and availability detection
*/
export declare class TransportRouter {
private config;
private quicClient?;
private quicPool?;
private quicCoordinator?;
private http2Sessions;
private currentProtocol;
private stats;
private healthCheckTimer?;
private quicAvailable;
constructor(config: TransportConfig);
/**
* Initialize transport router
*/
initialize(): Promise<void>;
/**
* Initialize QUIC transport
*/
private initializeQuic;
/**
* Initialize HTTP/2 transport
*/
private initializeHttp2;
/**
* Initialize QUIC coordinator for swarm
*/
initializeSwarm(swarmId: string, topology: 'mesh' | 'hierarchical' | 'ring' | 'star', maxAgents?: number): Promise<QuicCoordinator>;
/**
* Route message through appropriate transport
*/
route(message: SwarmMessage, target: SwarmAgent): Promise<RouteResult>;
/**
* Send message via QUIC
*/
private sendViaQuic;
/**
* Send message via HTTP/2
*/
private sendViaHttp2;
/**
* Get current transport protocol
*/
getCurrentProtocol(): 'quic' | 'http2';
/**
* Check if QUIC is available
*/
isQuicAvailable(): boolean;
/**
* Get transport statistics
*/
getStats(protocol?: 'quic' | 'http2'): TransportStats | Map<'quic' | 'http2', TransportStats>;
/**
* Get QUIC coordinator (if initialized)
*/
getCoordinator(): QuicCoordinator | undefined;
/**
* Shutdown transport router
*/
shutdown(): Promise<void>;
/**
* Start health checks for protocol availability
*/
private startHealthChecks;
/**
* Check QUIC health
*/
private checkQuicHealth;
/**
* Update transport statistics
*/
private updateStats;
/**
* Serialize message to bytes
*/
private serializeMessage;
/**
* Estimate message size in bytes
*/
private estimateMessageSize;
}
//# sourceMappingURL=transport-router.d.ts.map