import BaseSignaling from '../../abstract/BaseSignaling'; import { StatResult } from '../../types/Statistics'; import EventEmitter from '../EventEmitter'; import { WeightedAverage } from '../stat/WeightedAverage'; interface NetworkStat { rtt: WeightedAverage | number; loss: WeightedAverage | number; bitrate: number; } interface NetworkStatRemote extends NetworkStat { rtt: number; loss: number; } export interface NetworkLimits { badNet: { rtt: number; loss: number; }; goodNet: { rtt: number; loss: number; }; } export type SignalingNetworkStat = Partial>; export default class DirectStatReporter extends EventEmitter { private readonly _signaling; private readonly _localNetworkStat; private readonly _remoteNetworkStat; private readonly _lastNetworkStat; private readonly _networkLimits; private _lastStatSentTimestamp; private _currentState; constructor(signaling: BaseSignaling); private _calcRttRating; private _calcLossRating; private _calcBitrateRating; private _calcUDPRating; private _calcRating; private _getNetworkState; updateSettings(settings?: NetworkLimits): void; reportLocal(stats: StatResult): void; reportRemote(stat?: SignalingNetworkStat): void; } export {};