import { StreamSfuClient } from '../StreamSfuClient'; import { StatsOptions } from '../gen/coordinator'; import { Publisher, Subscriber } from '../rtc'; import { Tracer } from './rtc'; import { ClientDetails, WebsocketReconnectStrategy } from '../gen/video/sfu/models/models'; import { CameraManager, MicrophoneManager } from '../devices'; import { CallState } from '../store'; export type SfuStatsReporterOptions = { options: StatsOptions; clientDetails: ClientDetails; subscriber: Subscriber; publisher?: Publisher; microphone: MicrophoneManager; camera: CameraManager; state: CallState; tracer: Tracer; unifiedSessionId: string; }; export declare class SfuStatsReporter { private readonly logger; readonly options: StatsOptions; private readonly sfuClient; private readonly subscriber; private readonly publisher?; private readonly microphone; private readonly camera; private readonly state; private readonly tracer; private readonly unifiedSessionId; private intervalId; private timeoutId; private reportCount; private unsubscribeDevicePermissionsSubscription?; private unsubscribeListDevicesSubscription?; private readonly sdkName; private readonly sdkVersion; private readonly webRTCVersion; private readonly inputDevices; constructor(sfuClient: StreamSfuClient, { options, clientDetails, subscriber, publisher, microphone, camera, state, tracer, unifiedSessionId, }: SfuStatsReporterOptions); private observeDevice; sendConnectionTime: (connectionTimeSeconds: number) => void; sendReconnectionTime: (strategy: WebsocketReconnectStrategy, timeSeconds: number) => void; private sendTelemetryData; private run; private scheduleNextReport; start: () => void; stop: () => void; flush: () => void; }