export interface CacheLimit { pc: number; mobile: number; } export interface SignalConfig { main: string; backup: string; } export enum LogLevel { Warn = 'warn', Error = 'error', None = 'none', } export enum TrackerZone { Europe = 'eu', HongKong = 'hk', USA = 'us', CN = 'cn', } export interface P2pConfig { logLevel?: LogLevel | boolean; signalConfig?: string | SignalConfig; announce?: string; trackerZone?: TrackerZone; memoryCacheLimit?: CacheLimit; diskCacheLimit?: CacheLimit; p2pEnabled?: boolean; dcDownloadTimeout?: number; webRTCConfig?: any; useHttpRange?: boolean; httpLoadTime?: number; startFromSegmentOffset?: number; ICEPreflight?: boolean; tag?: string; token?: string; appName?: string; appId?: string; showSlogan?: boolean; trickleICE?: boolean; geoIpPreflight?: boolean; getStats?: (totalP2PDownloaded: number, totalP2PUploaded: number, totalHTTPDownloaded: number, p2pDownloadSpeed: number)=>void; getPeerId?: (peerId: string)=>void; getPeersInfo?: (peers: string[])=>void; channelId?: ((mpdUrl: string)=>string) | string; segmentId?: (url: string, range: string)=>string; validateSegment?: (segId: string, buffer: ArrayBufferLike)=>boolean; } export declare class P2PEngineDash { static isSupported(): boolean; static readonly version: string; static readonly protocolVersion: string; public readonly version: string; constructor(player: any, p2pConfig?: P2pConfig); disableP2P(): void; destroy(): void; enableP2P(): void; on(name: string, func: (...args)=>void): P2PEngineDash; once(name: string, func: (...args)=>void): P2PEngineDash; off(name: string, func: (...args)=>void): P2PEngineDash; } export default P2PEngineDash;