import { BaseVirtualBufferManager } from '../../../../../providers/DashProviderVirtual/lib/buffer/virtualBuffer/baseVirtualBufferManager';
import { Dependencies, IBufferPlaybackQueueItem, ISomeDataLoadedCallbackParams, IVirtualBufferManager } from '../../../../../providers/DashProviderVirtual/lib/buffer/types';
import { TemplateSegment, Representation, StreamKind } from '../../../../../providers/utils/parsers/types';
import { NativeBufferManager } from '../../../../../providers/DashProviderVirtual/lib/buffer/nativeBufferManager';
import { FetchParamsWithUrl, Priority } from '../../../../../providers/DashProviderVirtual/lib/fetcher';
export declare class TemplateVirtualBufferManager extends BaseVirtualBufferManager<TemplateSegment> implements IVirtualBufferManager {
    constructor(kind: StreamKind, nativeBufferManager: NativeBufferManager, representations: Representation[], dependencies: Dependencies);
    protected loadItems(itemsToLoad: IBufferPlaybackQueueItem<TemplateSegment>[], representation: Representation, priority?: Priority): Promise<void>;
    protected selectItemsToLoad(): IBufferPlaybackQueueItem<TemplateSegment>[];
    protected prepareFetchParams(items: IBufferPlaybackQueueItem<TemplateSegment>[], representation: Representation): FetchParamsWithUrl;
    protected getFetchUrl(items: IBufferPlaybackQueueItem<TemplateSegment>[], representation: Representation): URL;
    /**
     * Закидываем в буфер сегменты атомарнее чем сегмент целиком. Например, по боксам в мпеге и по блокам в вебме.
     * Таким образом не ждём его полной загрузки и готовы играть его намного быстрее
     * @param dataView – данные, размер буфера – весь запрос
     * @param loaded – Объём загруженных в dataView данных (всё что больше – пока нули)
     * @private
     */
    protected onSomeDataLoaded({ downloadingItems, dataView, representationId, loaded, signal, }: ISomeDataLoadedCallbackParams<TemplateSegment>): Promise<void>;
    protected updateRepresentationBaseUrl(representation: Representation, newBaseUrl: string): void;
}
