/// import { EnhancedEventEmitter } from './EnhancedEventEmitter'; import { Channel } from './Channel'; import { PayloadChannel } from './PayloadChannel'; import { ProducerStat } from './Producer'; import { MediaKind, RtpCapabilities, RtpParameters } from './RtpParameters'; export declare type ConsumerOptions = { /** * The id of the Producer to consume. */ producerId: string; /** * RTP capabilities of the consuming endpoint. */ rtpCapabilities: RtpCapabilities; /** * Whether the Consumer must start in paused mode. Default false. * * When creating a video Consumer, it's recommended to set paused to true, * then transmit the Consumer parameters to the consuming endpoint and, once * the consuming endpoint has created its local side Consumer, unpause the * server side Consumer using the resume() method. This is an optimization * to make it possible for the consuming endpoint to render the video as far * as possible. If the server side Consumer was created with paused: false, * mediasoup will immediately request a key frame to the remote Producer and * suych a key frame may reach the consuming endpoint even before it's ready * to consume it, generating “black” video until the device requests a keyframe * by itself. */ paused?: boolean; /** * The MID for the Consumer. If not specified, a sequentially growing * number will be assigned. */ mid?: string; /** * Preferred spatial and temporal layer for simulcast or SVC media sources. * If unset, the highest ones are selected. */ preferredLayers?: ConsumerLayers; /** * Whether this Consumer should ignore DTX packets (only valid for Opus codec). * If set, DTX packets are not forwarded to the remote Consumer. */ ignoreDtx?: Boolean; /** * Whether this Consumer should consume all RTP streams generated by the * Producer. */ pipe?: boolean; /** * Custom application data. */ appData?: Record; }; /** * Valid types for 'trace' event. */ export declare type ConsumerTraceEventType = 'rtp' | 'keyframe' | 'nack' | 'pli' | 'fir'; /** * 'trace' event data. */ export declare type ConsumerTraceEventData = { /** * Trace type. */ type: ConsumerTraceEventType; /** * Event timestamp. */ timestamp: number; /** * Event direction. */ direction: 'in' | 'out'; /** * Per type information. */ info: any; }; export declare type ConsumerScore = { /** * The score of the RTP stream of the consumer. */ score: number; /** * The score of the currently selected RTP stream of the producer. */ producerScore: number; /** * The scores of all RTP streams in the producer ordered by encoding (just * useful when the producer uses simulcast). */ producerScores: number[]; }; export declare type ConsumerLayers = { /** * The spatial layer index (from 0 to N). */ spatialLayer: number; /** * The temporal layer index (from 0 to N). */ temporalLayer?: number; }; export declare type ConsumerStat = { type: string; timestamp: number; ssrc: number; rtxSsrc?: number; kind: string; mimeType: string; packetsLost: number; fractionLost: number; packetsDiscarded: number; packetsRetransmitted: number; packetsRepaired: number; nackCount: number; nackPacketCount: number; pliCount: number; firCount: number; score: number; packetCount: number; byteCount: number; bitrate: number; roundTripTime?: number; }; /** * Consumer type. */ export declare type ConsumerType = 'simple' | 'simulcast' | 'svc' | 'pipe'; export declare type ConsumerEvents = { transportclose: []; producerclose: []; producerpause: []; producerresume: []; score: [ConsumerScore]; layerschange: [ConsumerLayers?]; trace: [ConsumerTraceEventData]; rtp: [Buffer]; '@close': []; '@producerclose': []; }; export declare type ConsumerObserverEvents = { close: []; pause: []; resume: []; score: [ConsumerScore]; layerschange: [ConsumerLayers?]; trace: [ConsumerTraceEventData]; }; export declare class Consumer extends EnhancedEventEmitter { #private; /** * @private */ constructor({ internal, data, channel, payloadChannel, appData, paused, producerPaused, score, preferredLayers }: { internal: any; data: any; channel: Channel; payloadChannel: PayloadChannel; appData?: Record; paused: boolean; producerPaused: boolean; score?: ConsumerScore; preferredLayers?: ConsumerLayers; }); /** * Consumer id. */ get id(): string; /** * Associated Producer id. */ get producerId(): string; /** * Whether the Consumer is closed. */ get closed(): boolean; /** * Media kind. */ get kind(): MediaKind; /** * RTP parameters. */ get rtpParameters(): RtpParameters; /** * Consumer type. */ get type(): ConsumerType; /** * Whether the Consumer is paused. */ get paused(): boolean; /** * Whether the associate Producer is paused. */ get producerPaused(): boolean; /** * Current priority. */ get priority(): number; /** * Consumer score. */ get score(): ConsumerScore; /** * Preferred video layers. */ get preferredLayers(): ConsumerLayers | undefined; /** * Current video layers. */ get currentLayers(): ConsumerLayers | undefined; /** * 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 Consumer. */ close(): void; /** * Transport was closed. * * @private */ transportClosed(): void; /** * Dump Consumer. */ dump(): Promise; /** * Get Consumer stats. */ getStats(): Promise>; /** * Pause the Consumer. */ pause(): Promise; /** * Resume the Consumer. */ resume(): Promise; /** * Set preferred video layers. */ setPreferredLayers({ spatialLayer, temporalLayer }: ConsumerLayers): Promise; /** * Set priority. */ setPriority(priority: number): Promise; /** * Unset priority. */ unsetPriority(): Promise; /** * Request a key frame to the Producer. */ requestKeyFrame(): Promise; /** * Enable 'trace' event. */ enableTraceEvent(types?: ConsumerTraceEventType[]): Promise; private handleWorkerNotifications; } //# sourceMappingURL=Consumer.d.ts.map