import IDisposable from '../lang/IDisposable'; import MetricsService from '../metrics/MetricsService'; export default class VideoTelemetry implements IDisposable { private readonly _pageLoadTime; private readonly _channelStartTime; private readonly _logger; private readonly _disposables; private readonly _streamId; private readonly _metricsService; private _listenToFirstTime; private _listenForStall; private _listenForContinuation; private _timeToFirstFrame; private _channelCreationTimeToFirstFrame; private _startRecordingFirstFrame; private _videoStalled; private _lastProgress; private _videoResolution; private _clearTimeToFirstFrameListener; private _clearRebufferingListener; constructor(streamId: string, pageLoadTime: number, channelStartTime: number, metricsService: MetricsService); setupListenerForTimeToFirstTime(video: HTMLVideoElement): void; setupListenerForRebuffering(video: HTMLVideoElement): void; dispose(): void; private get durationSincePageLoad(); private callTimeToFirstFrame; private pushTimeToFirstFrame; private pushChannelCreationTimeToFirstFrame; private onStall; private onContinuation; onVideoResolutionChanges(newResolution: string): void; }