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;
}
