import { Device, type types } from 'mediasoup-client'; import ConfigService from '../../config/ConfigService'; import EnhancedEventEmitter from '../../EnhancedEventEmitter'; import { CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, CreateVideoTrackParams, ProducerRequestMaxSpatialLayer, TrackLabel, TransformParams } from '../../types/common'; import type { AudioTrackFactory, VideoTrackFactory } from '../../types/container'; import { AudioTrack, BaseTrack, InitEffectsSDKParams, TrackWithEncodings } from '../../types/media'; import { IntegrationsService } from '../IntegrationsService'; import Logger from '../Logger'; import SignalingApiClient from '../signalingApiClient/SignalingApiClient'; import { ProcessorsCache } from './streamEffects/ProcessorsCache'; import EffectsSDKTrackProcessor from './streamEffects/video/esdk/TrackProcessor'; import MediaStreamTrackManager from './tracks/MediaStreamTrackManager'; export interface DenoiserFallbackContext { reason: string; options?: CreateMicrophoneAudioTrackOptions; error?: Error; } declare class Media { #private; private readonly config; private readonly loggerFactory; private readonly audioTrackFactory; private readonly clientEventEmitter; private readonly integrationsService; private readonly processorsCache; private readonly videoTrackFactory; private readonly mediaStreamTrackManager; private readonly signalingApiClient; isDeviceLoaded: boolean; private device?; private readonly tracks; constructor(config: ConfigService, loggerFactory: (namespace: string) => Logger, audioTrackFactory: AudioTrackFactory, clientEventEmitter: EnhancedEventEmitter, integrationsService: IntegrationsService, processorsCache: ProcessorsCache, videoTrackFactory: VideoTrackFactory, mediaStreamTrackManager: MediaStreamTrackManager, signalingApiClient: SignalingApiClient); get mediasoupDevice(): Device; get effectsSDKInitialized(): boolean; get effectsSDKParams(): InitEffectsSDKParams | null; getTrack(label: TrackLabel): BaseTrack | undefined; loadDevice(routerRtpCapabilities: types.RtpCapabilities): Promise; getTrackCodec(track: TrackWithEncodings): types.RtpCodecCapability | undefined; private createTracks; createUserMediaTracks(constraints: MediaStreamConstraints): Promise; createDisplayMediaTracks(constraints: MediaStreamConstraints): Promise; createCustomMediaTrack(mediaStreamTrack: MediaStreamTrack, constraints: MediaStreamConstraints): BaseTrack; deleteTrack(track: BaseTrack): Promise; getAllTracks(): BaseTrack[]; publishedTracks(): BaseTrack[]; clearTracks(): void; unpublishTracks(): Promise; setTrack(track: BaseTrack): void; initEffectsSDK(): Promise; initDenoiser(track: AudioTrack, options?: CreateMicrophoneAudioTrackOptions): Promise; fallbackToRNoise(track: AudioTrack, context: DenoiserFallbackContext): Promise; createEffectsSDKTrackProcessor(trackLabel?: TrackLabel): Promise; handleProducerSetMaxSpatialLayer({ producerId, spatialLayer: rawSpatialLayer, }: ProducerRequestMaxSpatialLayer): Promise; static getVideoTrackTransformParams(track: MediaStreamTrack): TransformParams; static getScreenVideoTrackParams(options?: CreateScreenMediaOptions): CreateVideoTrackParams; static getCameraVideoTrackParams(options?: CreateCameraVideoTrackOptions): CreateVideoTrackParams; private createDevice; } export default Media;