export interface MemoryCacheLimit { pc: number; mobile: number; } export interface WsSignalerAddr { main: string; backup: string; } export enum LogLevel { Warn = 'warn', Error = 'error', None = 'none', } export interface P2pConfig { logLevel?: LogLevel | boolean; wsSignalerAddr?: string | WsSignalerAddr; announce?: string; announceLocation?: string; memoryCacheLimit?: MemoryCacheLimit; p2pEnabled?: boolean; dcDownloadTimeout?: number; webRTCConfig?: any; minBufferLength?: number; maxBufferLength?: number; pieceLength?: number; tag?: string; token?: string; swFile?: string; swScope?: 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?: (m3u8Url: string)=>string; segmentId?: (streamId: string, sn: number, url: string, range: string)=>string; videoTypes?: Array; audioTypes?: Array; mediaElem?: HTMLMediaElement | string; } export declare class P2PEngineMP4 { static isSupported(): boolean; static isWebRTCSupported(): boolean; static isSeviceWorkerSupported(): boolean; static readonly version: string; static readonly protocolVersion: string; public readonly version: string; constructor(p2pConfig?: P2pConfig); registerServiceWorker(): Promise; enableP2P(): void; disableP2P(): void; restartP2p(): void; destroy(): void; on(name: string, func: (...args)=>void); } export default P2PEngineMP4;