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; diskCacheLimit?: CacheLimit; memoryCacheLimit?: CacheLimit; p2pEnabled?: boolean; dcDownloadTimeout?: number; webRTCConfig?: any; minBufferLength?: 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?: ((url: string)=>string) | string; audioTypes?: Array; mediaElem?: HTMLMediaElement | string; } export declare class P2pEngineMedia { static isSupported(): boolean; static isWebRTCSupported(): boolean; static isSeviceWorkerSupported(): boolean; static readonly version: string; static readonly protocolVersion: string; public readonly version: string; constructor(p2pConfig?: P2pConfig); getProxiedUrl(originalURL: string): Promise; enableP2P(): void; disableP2P(): void; restartP2p(): void; destroy(): void; on(name: string, func: (...args)=>void): P2pEngineMedia; once(name: string, func: (...args)=>void): P2pEngineMedia; off(name: string, func: (...args)=>void): P2pEngineMedia; } export default P2pEngineMedia;