/** One incoming audio stream, as Chromium's receive stats describe it (gh-53). Delays are averages over the last poll, so growth over a long call shows up as it happens. */ export interface ReceiveStream { id: string; ssrc: number | null; jitterMs: number | null; jitterBufferMs: number | null; jitterBufferTargetMs: number | null; jitterBufferMinimumMs: number | null; packetsLost: number | null; packetsReceived: number | null; concealedSamples: number | null; insertedSamplesForDeceleration: number | null; removedSamplesForAcceleration: number | null; interruptionCount: number | null; totalInterruptionDurationMs: number | null; } /** The cumulative counters a stream had at the last poll. */ export interface ReceiveCounters { emitted: number; delay: number; target: number | null; minimum: number | null; } /** The fields of an RTCStats entry read here. Chromium leaves out what it doesn't track. */ interface Stat { id?: string; type?: string; kind?: string; ssrc?: number; jitter?: number; jitterBufferDelay?: number; jitterBufferEmittedCount?: number; jitterBufferTargetDelay?: number; jitterBufferMinimumDelay?: number; packetsLost?: number; packetsReceived?: number; concealedSamples?: number; insertedSamplesForDeceleration?: number; removedSamplesForAcceleration?: number; interruptionCount?: number; totalInterruptionDuration?: number; } /** * Every inbound audio stream in `report`, each against its own previous counters, keyed by * stats id. `prev` is updated in place, and streams that have gone are dropped from it. */ export declare function readReceiveStreams(report: Iterable, prev: Map): ReceiveStream[]; /** The largest value present, or null when there is none. */ export declare function worst(values: (number | null)[]): number | null; /** A total across streams, or null when none of them reported it. */ export declare function total(values: (number | null)[]): number | null; export {};