/** * Configuration for disabled transforms passed from main thread. */ export interface DisabledEncodedTransformsConfiguration { redundantAudio?: boolean; } /** * Web Worker entry point for WebRTC encoded media transforms. * * Manages transform pipelines for audio/video sender/receiver streams using either: * - RTCRtpScriptTransform API (modern browsers) * - createEncodedStreams() API (legacy fallback) * * Pipelines: * - Audio Sender: encoder → metrics → RED encode → network * - Audio Receiver: network → RED decode → metrics → decoder * - Video Sender/Receiver: encoder/network → metrics → network/decoder */ export default class EncodedTransformWorker { /** * Initializes the worker, sets up transform instances and event handlers. */ static initializeWorker(): void; private static redundantAudioEncodedTransform; private static audioSenderMetricsTransform; private static audioReceiverMetricsTransform; private static videoSenderMetricsTransform; private static videoReceiverMetricsTransform; /** * Posts a log message to the main thread. * @param msg The message to log */ static log(msg: string): void; /** * Sets up audio sender pipeline: encoder → metrics → RED encode → network. * If RED is disabled: encoder → metrics → network. * @param transformer The RTCRtpScriptTransformer or legacy streams object * @param disabledTransforms Configuration for disabled transforms */ private static setupAudioSenderPipeline; /** * Sets up video sender pipeline: encoder → metrics → network. * @param transformer The RTCRtpScriptTransformer or legacy streams object */ private static setupVideoSenderPipeline; /** * Sets up audio receiver pipeline: network → RED decode → metrics → decoder. * If RED is disabled: network → metrics → decoder. * @param transformer The RTCRtpScriptTransformer or legacy streams object * @param disabledTransforms Configuration for disabled transforms */ private static setupAudioReceiverPipeline; /** * Sets up video receiver pipeline: network → metrics → decoder. * @param transformer The RTCRtpScriptTransformer or legacy streams object */ private static setupVideoReceiverPipeline; }