import { P2PLoader } from "./loader.js";
import { CoreEventMap, StreamConfig, StreamWithSegments, SegmentStorage } from "../index.js";
import { RequestsContainer } from "../requests/request-container.js";
import { EventTarget } from "../utils/event-target.js";
export declare class P2PLoadersContainer {
    private readonly streamManifestUrl;
    private readonly requests;
    private readonly segmentStorage;
    private readonly config;
    private readonly eventTarget;
    private onSegmentAnnouncement;
    private readonly loaders;
    private _currentLoaderItem;
    private readonly logger;
    constructor(streamManifestUrl: string, stream: StreamWithSegments, requests: RequestsContainer, segmentStorage: SegmentStorage, config: StreamConfig, eventTarget: EventTarget<CoreEventMap>, onSegmentAnnouncement: () => void);
    private createLoader;
    private findOrCreateLoaderForStream;
    changeCurrentLoader(stream: StreamWithSegments): void;
    private setLoaderDestroyTimeout;
    private destroyAndRemoveLoader;
    get currentLoader(): P2PLoader;
    destroy(): void;
}
