import { CoreEventMap, SegmentWithStream, StreamConfig, StreamWithSegments } from "../types.js"; import { RequestsContainer } from "../requests/request-container.js"; import { EventTarget } from "../utils/event-target.js"; import { SegmentStorage } from "../segment-storage/index.js"; export type EventTargetMap = Record<`onStorageUpdated-${string}`, () => void> & CoreEventMap; export declare class P2PLoader { private streamManifestUrl; private readonly stream; private readonly requests; private readonly segmentStorage; private readonly config; private readonly eventTarget; private readonly onSegmentAnnouncement; private readonly trackerClient; private isAnnounceMicrotaskCreated; constructor(streamManifestUrl: string, stream: StreamWithSegments, requests: RequestsContainer, segmentStorage: SegmentStorage, config: StreamConfig, eventTarget: EventTarget, onSegmentAnnouncement: () => void); downloadSegment(segment: SegmentWithStream): void; isSegmentLoadingOrLoadedBySomeone(segment: SegmentWithStream): boolean; isSegmentLoadedBySomeone(segment: SegmentWithStream): boolean; get connectedPeerCount(): number; private getSegmentsAnnouncement; private onPeerConnected; broadcastAnnouncement: (sendEmptyAnnouncement?: boolean) => void; private sendSegmentsAnnouncement; private onSegmentRequested; destroy(): void; }