import { default as Client } from '../client'; import { IConfInfo, IInternals, XYBaseModule } from '../../type/index'; declare class XYQualityReport implements XYBaseModule { private client; private logger; private reportDataTime; private meetingQualityData; private previousInternals; private internals; private participantCount; private nqLevelTimer; private isReportLocalNetworkLevel; private networkLevel; constructor(client: Client); /** * 上报本地网络质量 * * 根据拉流和推流网络等级,计算一个最小的level值作为质量等级 * * @param { boolean } isReportLocalNetworkLevel 是否给媒体上报网络质量 */ reportLocalNetworkLevel(isReportLocalNetworkLevel?: boolean): void; /** * 定时上报会议质量、网络数据 * * @private */ reportQualityData(internals: IInternals, confInfo?: IConfInfo): void; /** * 停止上报网络数据 * * @private */ destroy(): void; /** * 清除网络信号统计定时器 * */ private clearNqLevelTimer; /** * webrtc audioLevel 转换成 播放能量 * @param audioLevel * @returns */ private calcAudioLevel; /** * 发送会议质量数据 * * @param { number ? } sessionName 0:people 1:content * @param { boolean ? } isLast 挂断状态 * @private */ private calcQualityData; /** * 根据上下行 丢包率、往返延时、wss重连次数 计算本地网络质量 * * @param { boolean } isImmediate 是否立即上报,默认false, 如果是true,则不对比上一次的level, 直接上报 */ private calcLocalNetworkLevel; /** * 根据丢包率、往返延时、ws重连次数 计算网络信号等级 * * @param { number } loss 丢包率 * @param { number } rtt 往返延时 * @param { number } wsReConnectCount ws重连次数 * @returns { number } level 计算得到的网络信号等级 */ private calcNetQualityLevel; /** * Internals统计数据-期望带宽 * * @param { IInternals } internals - 统计数据 */ getNewInternals(internals: IInternals): IInternals; } export default XYQualityReport;