import { EnhancedEventEmitter } from './EnhancedEventEmitter'; import { Channel } from './Channel'; import { PayloadChannel } from './PayloadChannel'; import { Producer, ProducerOptions } from './Producer'; import { Consumer, ConsumerOptions } from './Consumer'; import { DataProducer, DataProducerOptions } from './DataProducer'; import { DataConsumer, DataConsumerOptions } from './DataConsumer'; import { RtpCapabilities } from './RtpParameters'; export interface TransportListenIp { /** * Listening IPv4 or IPv6. */ ip: string; /** * Announced IPv4 or IPv6 (useful when running mediasoup behind NAT with * private IP). */ announcedIp?: string; } /** * Transport protocol. */ export declare type TransportProtocol = 'udp' | 'tcp'; export interface TransportTuple { localIp: string; localPort: number; remoteIp?: string; remotePort?: number; protocol: TransportProtocol; } /** * Valid types for 'trace' event. */ export declare type TransportTraceEventType = 'probation' | 'bwe'; /** * 'trace' event data. */ export interface TransportTraceEventData { /** * Trace type. */ type: TransportTraceEventType; /** * Event timestamp. */ timestamp: number; /** * Event direction. */ direction: 'in' | 'out'; /** * Per type information. */ info: any; } export declare type SctpState = 'new' | 'connecting' | 'connected' | 'failed' | 'closed'; export declare type TransportEvents = { routerclose: []; listenserverclose: []; trace: [TransportTraceEventData]; '@close': []; '@newproducer': [Producer]; '@producerclose': [Producer]; '@newdataproducer': [DataProducer]; '@dataproducerclose': [DataProducer]; '@listenserverclose': []; }; export declare type TransportObserverEvents = { close: []; newproducer: [Producer]; newconsumer: [Consumer]; newdataproducer: [DataProducer]; newdataconsumer: [DataConsumer]; trace: [TransportTraceEventData]; }; export declare class Transport extends EnhancedEventEmitter { #private; protected readonly internal: { routerId: string; transportId: string; }; protected readonly channel: Channel; protected readonly payloadChannel: PayloadChannel; protected readonly getProducerById: (producerId: string) => Producer; protected readonly getDataProducerById: (dataProducerId: string) => DataProducer; protected readonly consumers: Map; protected readonly dataProducers: Map; protected readonly dataConsumers: Map; /** * @private * @interface */ constructor({ internal, data, channel, payloadChannel, appData, getRouterRtpCapabilities, getProducerById, getDataProducerById }: { internal: any; data: any; channel: Channel; payloadChannel: PayloadChannel; appData?: Record; getRouterRtpCapabilities: () => RtpCapabilities; getProducerById: (producerId: string) => Producer; getDataProducerById: (dataProducerId: string) => DataProducer; }); /** * Transport id. */ get id(): string; /** * Whether the Transport is closed. */ get closed(): boolean; /** * App custom data. */ get appData(): Record; /** * Invalid setter. */ set appData(appData: Record); /** * Observer. */ get observer(): EnhancedEventEmitter; /** * @private * Just for testing purposes. */ get channelForTesting(): Channel; /** * Close the Transport. */ close(): void; /** * Router was closed. * * @private * @virtual */ routerClosed(): void; /** * Listen server was closed (this just happens in WebRtcTransports when their * associated WebRtcServer is closed). * * @private */ listenServerClosed(): void; /** * Dump Transport. */ dump(): Promise; /** * Get Transport stats. * * @abstract */ getStats(): Promise; /** * Provide the Transport remote parameters. * * @abstract */ connect(params: any): Promise; /** * Set maximum incoming bitrate for receiving media. */ setMaxIncomingBitrate(bitrate: number): Promise; /** * Set maximum outgoing bitrate for sending media. */ setMaxOutgoingBitrate(bitrate: number): Promise; /** * Create a Producer. */ produce({ id, kind, rtpParameters, paused, keyFrameRequestDelay, appData }: ProducerOptions): Promise; /** * Create a Consumer. * * @virtual */ consume({ producerId, rtpCapabilities, paused, mid, preferredLayers, ignoreDtx, pipe, appData }: ConsumerOptions): Promise; /** * Create a DataProducer. */ produceData({ id, sctpStreamParameters, label, protocol, appData }?: DataProducerOptions): Promise; /** * Create a DataConsumer. */ consumeData({ dataProducerId, ordered, maxPacketLifeTime, maxRetransmits, appData }: DataConsumerOptions): Promise; /** * Enable 'trace' event. */ enableTraceEvent(types?: TransportTraceEventType[]): Promise; private getNextSctpStreamId; } //# sourceMappingURL=Transport.d.ts.map