import { Byte, Kbps, Milliseconds, IValueSubject } from '@vkontakte/videoplayer-shared';
import { ITuningConfig } from '../utils/tuningConfig';
declare class ThroughputEstimator {
    private throughput;
    private rtt;
    private subscription;
    private tuningConfig;
    private concurrentDownloads;
    throughput$: IValueSubject<Kbps>;
    rtt$: IValueSubject<Milliseconds>;
    rttAdjustedThroughput$: IValueSubject<Kbps>;
    constructor(tuning: ITuningConfig['throughputEstimator']);
    destroy(): void;
    trackXHR(xhr: XMLHttpRequest): void;
    trackStream(stream: ReadableStream, isLowLatency?: boolean): void;
    addRawSpeed(size: Byte, time: Milliseconds, concurrency?: number, isLowLatency?: boolean): void;
    /**
     * Стоит использовать только когда другие методы совсем не получается
     */
    addRawThroughput(rate: Kbps): void;
    addRawRtt(time: Milliseconds): void;
    private static sanityCheck;
    private static load;
}
export default ThroughputEstimator;
