import { PersonaProtocolBase } from './base'; import { PersonaPacket, PersonaProtocolBaseConfig, ProtocolStatus, Session } from '../types'; type AudioAnalysisData = { localAmplitude: number; remoteAmplitude: number; }; type AudioVisualizerCallback = (data: AudioAnalysisData) => void; type PersonaWebRTCMessageCallback = (data: MessageEvent) => void; type PersonaWebRTCErrorCallback = (error: string) => void; type PersonaWebRTCConfig = PersonaProtocolBaseConfig & { webrtcUrl: string; iceServers?: RTCIceServer[]; }; declare class PersonaWebRTCClient { private config; private pc; private ws; private localStream; private remoteStream; private audioCtx; private localAnalyser; private remoteAnalyser; private analyzerFrame; private dataChannel; private isConnected; private visualizerCallbacks; private messageCallbacks; private errorCallbacks; private queuedMessages; private onIceServers; constructor(config: PersonaWebRTCConfig); connect(session: Session): Promise; /** * Server ICE annunciati da core nel messaggio OPEN; null se il socket si * chiude prima o se non arrivano entro il timeout dall'apertura (core senza * OPEN). */ private _waitForIceServers; disconnect(): Promise; addVisualizerCallback(callback: AudioVisualizerCallback): void; addMessageCallback(callback: PersonaWebRTCMessageCallback): void; addErrorCallback(callback: PersonaWebRTCErrorCallback): void; createDataChannel(label?: string): void; sendPacket(packet: PersonaPacket): void; private _startAnalyzers; private _stopAnalyzers; } type PersonaWebRTCProtocolConfig = PersonaWebRTCConfig & { autostart?: boolean; }; declare class PersonaWebRTCProtocol extends PersonaProtocolBase { status: ProtocolStatus; session: Session; autostart: boolean; config: PersonaWebRTCProtocolConfig; webRTCClient: PersonaWebRTCClient; constructor(config: PersonaWebRTCProtocolConfig); getName(): string; getPriority(): number; syncSession(session: Session): Promise; connect(session?: Session): Promise; disconnect(): Promise; sendPacket(packet: PersonaPacket): Promise; } export { PersonaWebRTCProtocol }; export type { PersonaWebRTCProtocolConfig, AudioVisualizerCallback, AudioAnalysisData }; //# sourceMappingURL=webrtc.d.ts.map