export interface MemoryCacheLimit { pc: number; mobile: number; } export interface WsSignalerAddr { main: string; backup: string; } export enum LogLevel { Warn = 'warn', Error = 'error', None = 'none', } export enum TrackerZone { China = 'cn', Europe = 'eu', HongKong = 'hk', USA = 'us', } export interface MediaConfig { autoplay?: boolean; controls?: boolean; muted?: boolean; maxBufferLength?: number; minBufferLength?: number; p2pConfig?: P2pConfig; } export interface P2pConfig { logLevel?: LogLevel | boolean; wsSignalerAddr?: string | WsSignalerAddr; announce?: string; trackerZone?: TrackerZone; memoryCacheLimit?: MemoryCacheLimit; p2pEnabled?: boolean; dcDownloadTimeout?: number; webRTCConfig?: any; waitForPeer?: boolean; waitForPeerTimeout?: number; httpLoadTime?: number; tag?: string; token?: string; appName?: string; appId?: string; showSlogan?: boolean; trickleICE?: boolean; pieceLength?: number; httpMaxRetrys?: number; pattern?: RegExp; geoIpPreflight?: boolean; getStats?: (totalP2PDownloaded: number, totalP2PUploaded: number, totalHTTPDownloaded: number, p2pDownloadSpeed: number)=>void; getPeerId?: (peerId: string)=>void; getPeersInfo?: (peers: string[])=>void; channelId?: (m3u8Url: string)=>string; } export declare class P2PEngineMp4 { static isSupported(): boolean; static readonly version: string; static readonly protocolVersion: string; public readonly version: string; constructor(videoElem: HTMLVideoElement | string, config?: MediaConfig); disableP2P(): void; destroy(): void; enableP2P(): void; loadSource(url: string): void; on(name: string, func: (...args)=>void); } export default P2PEngineMp4;