import { DisabledEncodedTransformsConfiguration } from '../encodedtransformworker/EncodedTransformWorker'; import Logger from '../logger/Logger'; import EncodedTransformWorkerManager, { EncodedTransformWorkerManagerObserver } from './EncodedTransformWorkerManager'; import MediaMetricsTransformManager from './MediaMetricsEncodedTransformManager'; import RedundantAudioEncodedTransformManager from './RedundantAudioEncodedTransformManager'; /** * Default implementation of EncodedTransformWorkerManager. * Manages a dedicated Web Worker and coordinates individual transform managers. */ export default class DefaultEncodedTransformWorkerManager implements EncodedTransformWorkerManager { private worker; private logger; private workerURL; private observers; private disabled; private disabledTransforms; private redManager; private metricsManager; private readonly supportsRTCScriptTransform; private readonly supportsInsertableStreams; constructor(logger: Logger); /** * Check if media transforms are enabled */ isEnabled(): boolean; start(disabledTransforms?: DisabledEncodedTransformsConfiguration): Promise; redundantAudioEncodeTransformManager(): RedundantAudioEncodedTransformManager | undefined; metricsTransformManager(): MediaMetricsTransformManager | undefined; setupAudioSenderTransform(sender: RTCRtpSender): void; setupAudioReceiverTransform(receiver: RTCRtpReceiver): void; setupVideoSenderTransform(sender: RTCRtpSender): void; setupVideoReceiverTransform(receiver: RTCRtpReceiver): void; /** * Helper to set up transform on sender or receiver */ private setupTransform; /** * Stop all transform managers and release resources */ stop(): Promise; /** * Add an observer to receive transform manager events */ addObserver(observer: EncodedTransformWorkerManagerObserver): void; /** * Remove an observer */ removeObserver(observer: EncodedTransformWorkerManagerObserver): void; private handleWorkerMessage; /** * Handle errors from the Web Worker * Disables transforms and notifies observers */ private handleWorkerError; /** * Create a new Web Worker instance */ private createWorker; /** * Disable media transforms */ private disable; }