import { SessionId } from "./WebRtcClientTypes"; import { WebWorker } from "./WebWorkerHelper"; import { Key, TurnCredentials, StreamHandle, RemoteStreamListener } from "../Types"; import { KeyStore } from "./KeyStore"; import { PeerConnectionManager } from "./PeerConnectionsManager"; import { StreamId, StreamRoomId } from "./types/ApiTypes"; import { Jsep } from "../service/WebRtcInterface"; import { SpeakerState } from "./audio/ActiveSpeakerDetector"; import { StateChangeDispatcher } from "../service/EventDispatcher"; import { StreamTrack } from "../service/StreamApi"; export declare class RTCRtpScriptTransform { constructor(worker: any, options: any); transform: (frame: any, controller: any) => void; } export interface StreamsCallbackInterface { trickle(sessionId: SessionId, candidate: RTCIceCandidate): Promise; acceptOffer(sessionId: SessionId, sdp: Jsep): Promise; } export interface UserAudioStats { streamId: number; rms: number; active: boolean; } export interface WebRtcStateEvents { connected: { streamId: StreamId; }; } export interface AudioLevelsStats { levels: SpeakerState[]; } type AudioLevelFuncCallback = (changes: AudioLevelsStats) => void; export declare class WebRtcClient { private assetsDir; uniqId: string; private e2eeWorker; private webWorkerApi; private configuration; private keyStore; private publishStreamHandle; private peerCredentials; private remoteStreamsListeners; private sequenceNumberByRemoteStreamId; private dataChannelByRemoteStreamId; private dataChannelCryptor; private sequenceNumberOfSender; private peerConnectionsManager; private streamsApiInterface; private activeSpeakerDetector; private audioLevelCallback; private encByReceiver; private logger; private peerConnectionReconfigureQueue; lastProcessedAnswer: { [roomId: string]: Jsep; }; private lastMeasuredLocalRMS; private eventsDispatcher; private localAudioLevelMeters; private bootstrapDataChannel; constructor(assetsDir: string); private ensureLocalAudioLevelMeter; private stopLocalAudioLevelMeter; setAudioLevelCallback(func: AudioLevelFuncCallback): void; bindApiInterface(streamsApiInterface: StreamsCallbackInterface): void; addRemoteStreamListener(listener: RemoteStreamListener): void; getStreamStateChangeDispatcher(): StateChangeDispatcher; getConnectionManager(): PeerConnectionManager; getWebRtcEventDispatcher(): StateChangeDispatcher; protected getWorker(): Promise; protected initPipeline(receiverTrackId: string, publisherId: number): Promise; protected getWorkerApi(): Promise; protected getPeerConnectionConfiguration(): RTCConfiguration; setTurnCredentials(turnCredentials: TurnCredentials[]): Promise; createPeerConnectionWithLocalStream(streamHandle: StreamHandle, streamRoomId: StreamRoomId, stream?: MediaStream, dataTracks?: StreamTrack[]): Promise; removeSenderPeerConnectionOnUnpublish(streamRoomId: StreamRoomId, stream: MediaStream): void; updatePeerConnectionWithLocalStream(streamRoomId: StreamRoomId, localStream: MediaStream, tracksToAdd: MediaStreamTrack[], tracksToRemove: MediaStreamTrack[]): Promise; encryptDataChannelData(data: Uint8Array): Promise>; private createPeerConnectionMultiForRoom; private startNegotiationMulti; updateKeys(_streamRoomId: StreamRoomId, keys: Key[]): Promise; getKeyStore(): KeyStore; private setupSenderTransform; private setupReceiverTransform; private waitUntilConnected; private teardownReceiver; private addRemoteTrack; private callRegisteredListeners; private callRegisteredListenersForDataChannel; onSubscriptionUpdated(_room: StreamRoomId, offer: { sdp: string; type: string; }): Promise; onSubscriptionUpdatedSingle(_room: StreamRoomId, offer: any): Promise; private reconfigureSingle; private reconfigureSingleCreateOffer; } export {};