import { EnhancedEventEmitter } from './EnhancedEventEmitter'; import { Channel } from './Channel'; import { PayloadChannel } from './PayloadChannel'; import { Transport, TransportListenIp } from './Transport'; import { WebRtcTransport, WebRtcTransportOptions } from './WebRtcTransport'; import { PlainTransport, PlainTransportOptions } from './PlainTransport'; import { PipeTransport, PipeTransportOptions } from './PipeTransport'; import { DirectTransport, DirectTransportOptions } from './DirectTransport'; import { Producer } from './Producer'; import { Consumer } from './Consumer'; import { DataProducer } from './DataProducer'; import { DataConsumer } from './DataConsumer'; import { RtpObserver } from './RtpObserver'; import { ActiveSpeakerObserver, ActiveSpeakerObserverOptions } from './ActiveSpeakerObserver'; import { AudioLevelObserver, AudioLevelObserverOptions } from './AudioLevelObserver'; import { RtpCapabilities, RtpCodecCapability } from './RtpParameters'; import { NumSctpStreams } from './SctpParameters'; export declare type RouterOptions = { /** * Router media codecs. */ mediaCodecs?: RtpCodecCapability[]; /** * Custom application data. */ appData?: Record; }; export declare type PipeToRouterOptions = { /** * The id of the Producer to consume. */ producerId?: string; /** * The id of the DataProducer to consume. */ dataProducerId?: string; /** * Target Router instance. */ router: Router; /** * IP used in the PipeTransport pair. Default '127.0.0.1'. */ listenIp?: TransportListenIp | string; /** * Create a SCTP association. Default true. */ enableSctp?: boolean; /** * SCTP streams number. */ numSctpStreams?: NumSctpStreams; /** * Enable RTX and NACK for RTP retransmission. */ enableRtx?: boolean; /** * Enable SRTP. */ enableSrtp?: boolean; }; export declare type PipeToRouterResult = { /** * The Consumer created in the current Router. */ pipeConsumer?: Consumer; /** * The Producer created in the target Router. */ pipeProducer?: Producer; /** * The DataConsumer created in the current Router. */ pipeDataConsumer?: DataConsumer; /** * The DataProducer created in the target Router. */ pipeDataProducer?: DataProducer; }; declare type PipeTransportPair = { [key: string]: PipeTransport; }; export declare type RouterEvents = { workerclose: []; '@close': []; }; export declare type RouterObserverEvents = { close: []; newtransport: [Transport]; newrtpobserver: [RtpObserver]; }; export declare class Router extends EnhancedEventEmitter { #private; /** * @private */ constructor({ internal, data, channel, payloadChannel, appData }: { internal: any; data: any; channel: Channel; payloadChannel: PayloadChannel; appData?: Record; }); /** * Router id. */ get id(): string; /** * Whether the Router is closed. */ get closed(): boolean; /** * RTP capabilities of the Router. */ get rtpCapabilities(): RtpCapabilities; /** * App custom data. */ get appData(): Record; /** * Invalid setter. */ set appData(appData: Record); /** * Observer. */ get observer(): EnhancedEventEmitter; /** * @private * Just for testing purposes. */ get transportsForTesting(): Map; /** * Close the Router. */ close(): void; /** * Worker was closed. * * @private */ workerClosed(): void; /** * Dump Router. */ dump(): Promise; /** * Create a WebRtcTransport. */ createWebRtcTransport({ webRtcServer, listenIps, port, enableUdp, enableTcp, preferUdp, preferTcp, initialAvailableOutgoingBitrate, enableSctp, numSctpStreams, maxSctpMessageSize, sctpSendBufferSize, appData }: WebRtcTransportOptions): Promise; /** * Create a PlainTransport. */ createPlainTransport({ listenIp, port, rtcpMux, comedia, enableSctp, numSctpStreams, maxSctpMessageSize, sctpSendBufferSize, enableSrtp, srtpCryptoSuite, appData }: PlainTransportOptions): Promise; /** * Create a PipeTransport. */ createPipeTransport({ listenIp, port, enableSctp, numSctpStreams, maxSctpMessageSize, sctpSendBufferSize, enableRtx, enableSrtp, appData }: PipeTransportOptions): Promise; /** * Create a DirectTransport. */ createDirectTransport({ maxMessageSize, appData }?: DirectTransportOptions): Promise; /** * Pipes the given Producer or DataProducer into another Router in same host. */ pipeToRouter({ producerId, dataProducerId, router, listenIp, enableSctp, numSctpStreams, enableRtx, enableSrtp }: PipeToRouterOptions): Promise; /** * @private */ addPipeTransportPair(pipeTransportPairKey: string, pipeTransportPairPromise: Promise): void; /** * Create an ActiveSpeakerObserver */ createActiveSpeakerObserver({ interval, appData }?: ActiveSpeakerObserverOptions): Promise; /** * Create an AudioLevelObserver. */ createAudioLevelObserver({ maxEntries, threshold, interval, appData }?: AudioLevelObserverOptions): Promise; /** * Check whether the given RTP capabilities can consume the given Producer. */ canConsume({ producerId, rtpCapabilities }: { producerId: string; rtpCapabilities: RtpCapabilities; }): boolean; } export {}; //# sourceMappingURL=Router.d.ts.map