import { TemplateVirtualBufferManager } from '../../../../../providers/DashProviderVirtual/lib/buffer/virtualBuffer/templateVirtualBufferManager';
import { Manifest, Representation, StreamKind, TemplateSegment, TemplateSegmentReference } from '../../../../../providers/utils/parsers/types';
import { NativeBufferManager } from '../../../../../providers/DashProviderVirtual/lib/buffer/nativeBufferManager';
import { Dependencies, IBufferPlaybackQueueItem, ISomeDataLoadedCallbackParams } from '../../../../../providers/DashProviderVirtual/lib/buffer/types';
import { FetchParamsWithUrl, Priority } from '../../../../../providers/DashProviderVirtual/lib/fetcher';
import { IRange, IValueSubject, Milliseconds } from '@vkontakte/videoplayer-shared';
export declare class LiveVirtualBuffer extends TemplateVirtualBufferManager {
    currentLiveSegmentServerLatency$: IValueSubject<number>;
    currentLowLatencySegmentLength$: IValueSubject<number>;
    protected liveInitialAdditionalOffset: number;
    protected isSeekingLive: boolean;
    protected readonly isActiveLowLatency: () => boolean;
    constructor(kind: StreamKind, nativeBufferManager: NativeBufferManager, representations: Representation[], dependencies: Dependencies);
    updateManifest(manifest: Manifest | null): void;
    proceedLowLatencyLive(): void;
    getLiveSegmentsToLoadState(manifest: Manifest | null): IRange<Milliseconds> | undefined;
    getRepresentationInitialTime(): Milliseconds;
    protected prepareFetchParams(items: IBufferPlaybackQueueItem<TemplateSegment>[], representation: Representation): FetchParamsWithUrl;
    protected onSomeDataLoaded({ downloadingItems, ...params }: ISomeDataLoadedCallbackParams<TemplateSegment>): Promise<void>;
    protected onItemFullyDownloaded(downloadedItem: IBufferPlaybackQueueItem<TemplateSegment>): void;
    protected updateLowLatencyItemTime(item: IBufferPlaybackQueueItem<TemplateSegment>): void;
    protected updateLowLatencyLive(latestItem: IBufferPlaybackQueueItem<TemplateSegment>): void;
    protected parseFeedableSegmentChunk(chunk: DataView): DataView | null;
    protected getFetchUrl(items: IBufferPlaybackQueueItem<TemplateSegment>[], representation: Representation): URL;
    protected loadInit(representation: Representation, requestedPriority?: Priority, critical?: boolean): Promise<void>;
    protected getActualLiveStartingSegments(templateSegmentReference: TemplateSegmentReference): TemplateSegment[];
}
