import EncodedTransform from './EncodedTransform'; /** * Message types specific to MediaMetrics transforms. */ export declare const MEDIA_METRICS_MESSAGE_TYPES: { readonly NEW_SSRC: "NewSSRC"; }; /** * Metrics for a single media stream identified by SSRC. * Collected from encoded transform workers processing RTP packets. */ export interface EncodedTransformMediaStreamMetrics { /** * Synchronization source identifier for the stream. */ ssrc: number; /** * Number of packets processed in the reporting interval. */ packetCount: number; /** * Unix timestamp when metrics were collected. */ timestamp: number; } /** * Abstract base class for packet-level metrics collection per SSRC. * Tracks packet counts and timestamps, periodically reporting to the main thread. */ declare abstract class BaseMetricsTransform extends EncodedTransform { protected metricsMap: Map; protected readonly reportIntervalMs: number; protected lastReportTime: number; /** Returns the transform name for metrics identification. */ protected abstract transformName(): string; /** Processes frames, collects per-SSRC metrics, and forwards unchanged. */ transform(frame: RTCEncodedAudioFrame | RTCEncodedVideoFrame, controller: TransformStreamDefaultController): void; /** Posts aggregated metrics to the main thread via postMessage. */ protected reportMetrics(): void; } /** Collects packet-level metrics for outbound audio streams. */ export declare class AudioSenderMetricsTransform extends BaseMetricsTransform { protected transformName(): string; } /** Collects packet-level metrics for inbound audio streams. */ export declare class AudioReceiverMetricsTransform extends BaseMetricsTransform { protected transformName(): string; } /** Collects packet-level metrics for outbound video streams. */ export declare class VideoSenderMetricsTransform extends BaseMetricsTransform { protected transformName(): string; } /** Collects packet-level metrics for inbound video streams. */ export declare class VideoReceiverMetricsTransform extends BaseMetricsTransform { protected transformName(): string; } export {};