import { EnhancedEventEmitter } from './enhancedEvents'; import type { Transport, TransportType, TransportProtocol, TransportPortRange, TransportSocketFlags, TransportTuple, SctpState, BaseTransportDump, BaseTransportStats, TransportTraceEventType, TransportTraceEventData, TransportEvents, TransportObserver } from './TransportTypes'; import type { Channel } from './Channel'; import type { RouterInternal } from './Router'; import type { WebRtcTransportData } from './WebRtcTransport'; import type { PlainTransportData } from './PlainTransport'; import type { PipeTransportData } from './PipeTransport'; import type { DirectTransportData } from './DirectTransport'; import type { Producer, ProducerOptions } from './ProducerTypes'; import type { Consumer, ConsumerOptions } from './ConsumerTypes'; import type { DataProducer, DataProducerOptions } from './DataProducerTypes'; import type { DataConsumer, DataConsumerOptions } from './DataConsumerTypes'; import type { RtpCapabilities } from './rtpParametersTypes'; import type { SctpNegotiatedCapabilities } from './sctpParametersTypes'; import type { AppData } from './types'; import * as FbsTransport from './fbs/transport'; import { SctpState as FbsSctpState } from './fbs/sctp-association/sctp-state'; export type TransportConstructorOptions = { internal: TransportInternal; data: TransportData; channel: Channel; appData?: TransportAppData; getRouterRtpCapabilities: () => RtpCapabilities; getProducerById: (producerId: string) => Producer | undefined; getDataProducerById: (dataProducerId: string) => DataProducer | undefined; }; export type TransportInternal = RouterInternal & { transportId: string; }; type TransportData = WebRtcTransportData | PlainTransportData | PipeTransportData | DirectTransportData; export declare abstract class TransportImpl extends EnhancedEventEmitter implements Transport { #private; protected readonly internal: TransportInternal; protected readonly channel: Channel; protected readonly getProducerById: (producerId: string) => Producer | undefined; protected readonly getDataProducerById: (dataProducerId: string) => DataProducer | undefined; protected readonly consumers: Map; protected readonly dataProducers: Map; protected readonly dataConsumers: Map; protected constructor({ internal, data, channel, appData, getRouterRtpCapabilities, getProducerById, getDataProducerById, }: TransportConstructorOptions, observer: Observer); get id(): string; get closed(): boolean; abstract get type(): TransportType; get appData(): TransportAppData; set appData(appData: TransportAppData); get observer(): Observer; /** * Just for testing purposes. */ get channelForTesting(): Channel; close(): void; routerClosed(): void; listenServerClosed(): void; abstract dump(): Promise; abstract getStats(): Promise; abstract connect(params: unknown): Promise; setMaxIncomingBitrate(bitrate: number): Promise; setMaxOutgoingBitrate(bitrate: number): Promise; setMinOutgoingBitrate(bitrate: number): Promise; produce({ id, kind, rtpParameters, paused, keyFrameRequestDelay, enableMediasoupPacketIdHeaderExtension, appData, }: ProducerOptions): Promise>; consume({ producerId, rtpCapabilities, paused, mid, preferredLayers, ignoreDtx, enableRtx, pipe, appData, }: ConsumerOptions): Promise>; produceData({ id, sctpStreamParameters, label, protocol, paused, appData, }?: DataProducerOptions): Promise>; consumeData({ dataProducerId, ordered, maxPacketLifeTime, maxRetransmits, paused, subchannels, appData, }: DataConsumerOptions): Promise>; enableTraceEvent(types?: TransportTraceEventType[]): Promise; protected handleSctpNegotiatedCapabilities(sctpNegotiatedCapabilities: SctpNegotiatedCapabilities): void; private allocateSctpStreamId; } export declare function portRangeToFbs(portRange?: TransportPortRange): FbsTransport.PortRangeT; export declare function socketFlagsToFbs(flags?: TransportSocketFlags): FbsTransport.SocketFlagsT; export declare function parseSctpState(fbsSctpState: FbsSctpState): SctpState; export declare function parseProtocol(protocol: FbsTransport.Protocol): TransportProtocol; export declare function serializeProtocol(protocol: TransportProtocol): FbsTransport.Protocol; export declare function parseTuple(binary: FbsTransport.Tuple): TransportTuple; export declare function parseBaseTransportDump(binary: FbsTransport.Dump): BaseTransportDump; export declare function parseBaseTransportStats(binary: FbsTransport.Stats): BaseTransportStats; export declare function parseTransportTraceEventData(trace: FbsTransport.TraceNotification): TransportTraceEventData; export {}; //# sourceMappingURL=Transport.d.ts.map