p2p-media-loader-core
Version:
P2P Media Loader core functionality
20 lines (19 loc) • 1.29 kB
TypeScript
import { Peer } from "./peer.js";
import { CoreEventMap, SegmentWithStream, StreamConfig, StreamWithSegments } from "../types.js";
import { RequestsContainer } from "../requests/request-container.js";
import { WebTorrentSocketPool } from "../webtorrent/webtorrent-socket-pool/index.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;
constructor(streamManifestUrl: string, stream: StreamWithSegments, requests: RequestsContainer, segmentStorage: SegmentStorage, config: StreamConfig, webTorrentSocketPool: WebTorrentSocketPool, eventTarget: EventTarget<EventTargetMap>, peerId: string, onSegmentAnnouncement: () => void);
downloadSegment(segment: SegmentWithStream): void;
isSegmentLoadingOrLoadedBySomeone(segment: SegmentWithStream): boolean;
isSegmentLoadedBySomeone(segment: SegmentWithStream): boolean;
get connectedPeerCount(): number;
peers(): Generator<Peer, void, unknown>;
broadcastAnnouncement: (sendEmptyAnnouncement?: boolean) => void;
destroy(): void;
}
export declare function selectPeerForDownload(peersWithSegment: Peer[]): Peer;