import { Device, type types } from 'mediasoup-client'; import { IceParameters } from 'mediasoup-client/lib/Transport'; import EnhancedEventEmitter from '../../EnhancedEventEmitter'; import { CreateConsumerPayload, CreateConsumerResponse, PeerResponse, Role, TransportsStateInfo, UpdatePeerAppDataPayload } from '../../types/common'; import { ClientObserverEvents } from '../../types/engine'; import { LDTransport } from '../../types/mediasoup'; import { NetworkObserverEvents } from '../../types/network'; import { CallState } from '../CallState'; import Logger from '../Logger'; import { MyPeer } from '../MyPeer'; import SignalingApiClient from '../signalingApiClient/SignalingApiClient'; import DatachannelHeartbeater from './DatachannelHeartbeater'; import DataChannelsManager from './DataChannelsManager'; import SignalingHeartbeater from './SignalingHeartbeater'; declare class Network { #private; private readonly state; private readonly myPeer; private readonly clientEventEmitter; private readonly dataChannelsManager; private readonly signalingApiClient; private readonly datachannelHeartbeater; private readonly signalingHeartbeater; sendTransport?: LDTransport; receiveTransport?: LDTransport; heartbeatDataProducer?: types.DataProducer; signalingTransport?: LDTransport; private preferRelay?; peersLoaded: boolean; constructor(state: CallState, myPeer: MyPeer, loggerFactory: (namespace: string) => Logger, clientEventEmitter: EnhancedEventEmitter, dataChannelsManager: DataChannelsManager, signalingApiClient: SignalingApiClient, datachannelHeartbeater: DatachannelHeartbeater, signalingHeartbeater: SignalingHeartbeater); get isNetworkActive(): boolean; get observer(): EnhancedEventEmitter; private removeEventListeners; reset(): void; closeRemoteProducer(producerId: string): Promise; closeSendTransport(): void; closeReceiveTransport(): void; closeConnectionTransport(): void; private closeTransport; createSendTransport(mediasoupDevice: Device): Promise; createRecvTransport(mediasoupDevice: Device): Promise; createSignalingTransport(mediasoupDevice: Device): Promise; getIceParameters(transport: LDTransport): Promise; restartIce(transport: LDTransport): Promise; createConsumer({ producerId, rtpCapabilities, producerPeerId, }: CreateConsumerPayload): Promise; initializeHeartbeats(): Promise; createKeepAliveConsumer(): Promise; get channelMessagesDataConsumer(): types.DataConsumer | undefined; closeRemoteConsumer(consumerId: string): Promise; resumeRemoteConsumer(consumerId: string): Promise; pauseRemoteProducer(producerId: string): Promise; resumeRemoteProducer(producerId: string): Promise; pauseRemoteConsumer(consumerId: string): Promise; updatePeerAppData({ appData }: UpdatePeerAppDataPayload): Promise; setProducerMaxSpatialLayer(producerId: string, maxSpatialLayer: number): Promise; requestProducerMaxSpatialLayer(producerId: string, spatialLayer: number): Promise; changePeerProducePermissions(peerId: string, producePermissions?: string[]): Promise; addPeerProducePermission(peerId: string, label: string): Promise; removePeerProducePermission(peerId: string, label: string): Promise; updateConsumerPreferredLayers(consumerId: string, spatialLayer: number, temporalLayer?: number): Promise; requestConsumerKeyFrame(consumerId: string): Promise; ping(): Promise; getTransportsStateInfo(): Promise; setPreferRelay(value: boolean): void; getPreferRelay(): boolean; getChannelPeers(role?: Role): Promise<{ peers: PeerResponse[]; }>; createAllDataChannels(): Promise; closeAllDataChannels(): void; waitForReceiveTransportConnected({ onReceiveTransportFailed, }: { onReceiveTransportFailed: () => Promise; }): Promise; triggerChannelStateEvent(peersRole?: Role): Promise; waitForChannelMessagesDataConsumerConnected(): Promise; private waitForIceRestartStateTransition; private waitForTransportTerminalState; private waitForDataConsumerConnected; private getParsedTransportStats; private logTransportDetails; private stopRestartIceAttempts; private toRemoteConsumerOptions; private mapPeerResponse; private mapProducer; private connectTransport; private subscribeCommonTransportEvents; private checkTransportState; } export default Network;