import type { EnhancedEventEmitter } from './enhancedEvents'; import type { SctpStreamParameters } from './sctpParametersTypes'; import type { AppData } from './types'; export type DataConsumerOptions = { /** * The id of the DataProducer to consume. */ dataProducerId: string; /** * Just if consuming over SCTP. * Whether data messages must be received in order. If true the messages will * be sent reliably. Defaults to the value in the DataProducer if it has type * 'sctp' or to true if it has type 'direct'. */ ordered?: boolean; /** * Just if consuming over SCTP. * When ordered is false indicates the time (in milliseconds) after which a * SCTP packet will stop being retransmitted. Defaults to the value in the * DataProducer if it has type 'sctp' or unset if it has type 'direct'. */ maxPacketLifeTime?: number; /** * Just if consuming over SCTP. * When ordered is false indicates the maximum number of times a packet will * be retransmitted. Defaults to the value in the DataProducer if it has type * 'sctp' or unset if it has type 'direct'. */ maxRetransmits?: number; /** * Whether the data consumer must start in paused mode. Default false. */ paused?: boolean; /** * Subchannels this data consumer initially subscribes to. */ subchannels?: number[]; /** * Custom application data. */ appData?: DataConsumerAppData; }; /** * DataConsumer type. */ export type DataConsumerType = 'sctp' | 'direct'; export type DataConsumerDump = { id: string; paused: boolean; dataProducerPaused: boolean; subchannels: number[]; dataProducerId: string; type: DataConsumerType; sctpStreamParameters?: SctpStreamParameters; label: string; protocol: string; bufferedAmount: number; bufferedAmountLowThreshold: number; }; export type DataConsumerStat = { type: string; timestamp: number; label: string; protocol: string; messagesSent: number; bytesSent: number; bufferedAmount: number; }; export type DataConsumerEvents = { transportclose: []; dataproducerclose: []; dataproducerpause: []; dataproducerresume: []; message: [Buffer, number]; sctpsendbufferfull: []; bufferedamountlow: [number]; '@close': []; '@dataproducerclose': []; }; export type DataConsumerObserver = EnhancedEventEmitter; export type DataConsumerObserverEvents = { close: []; pause: []; resume: []; }; export interface DataConsumer extends EnhancedEventEmitter { /** * DataConsumer id. */ get id(): string; /** * Associated DataProducer id. */ get dataProducerId(): string; /** * Whether the DataConsumer is closed. */ get closed(): boolean; /** * DataConsumer type. */ get type(): DataConsumerType; /** * SCTP stream parameters. */ get sctpStreamParameters(): SctpStreamParameters | undefined; /** * DataChannel label. */ get label(): string; /** * DataChannel protocol. */ get protocol(): string; /** * Whether the DataConsumer is paused. */ get paused(): boolean; /** * Whether the associate DataProducer is paused. */ get dataProducerPaused(): boolean; /** * Get current subchannels this data consumer is subscribed to. */ get subchannels(): number[]; /** * App custom data. */ get appData(): DataConsumerAppData; /** * App custom data setter. */ set appData(appData: DataConsumerAppData); /** * Observer. */ get observer(): DataConsumerObserver; /** * Close the DataConsumer. */ close(): void; /** * Transport was closed. * * @private */ transportClosed(): void; /** * Dump DataConsumer. */ dump(): Promise; /** * Get DataConsumer stats. */ getStats(): Promise; /** * Pause the DataConsumer. */ pause(): Promise; /** * Resume the DataConsumer. */ resume(): Promise; /** * Set buffered amount low threshold (in bytes). */ setBufferedAmountLowThreshold(threshold: number): Promise; /** * Get buffered amount size (in bytes). */ getBufferedAmount(): Promise; /** * Send a message. Only for SCTP data consumers. It returns current buffered * amount size (in bytes) after sending/queing the message. */ send(message: string | Buffer, ppid?: number): Promise; /** * Set subchannels. */ setSubchannels(subchannels: number[]): Promise; /** * Add a subchannel. */ addSubchannel(subchannel: number): Promise; /** * Remove a subchannel. */ removeSubchannel(subchannel: number): Promise; } //# sourceMappingURL=DataConsumerTypes.d.ts.map