/// /** * React,React-native webrtc peer implementation... * * Copyright 2017 Ahoo Studio.co.th. */ import { EventEmitter } from "events"; import { IPC_Handler, PeerConstructor } from "./AbstractPeerConnection"; import { IMessageExchange } from "./WebrtcSignaling"; export declare namespace AbstractPeer { abstract class BasePeer implements IPC_Handler { configuration: { iceServers: { urls: string[]; }[]; }; id: string; pc: RTCPeerConnection; channels: any; debug: boolean; readonly type: string; pcEvent: EventEmitter; parentsEmitter: EventEmitter; receiveChannel: any; pcPeers: any; browserPrefix: string; nick: any; offer: boolean; stream: MediaStream; audioTracks: MediaStreamTrack[]; videoTracks: MediaStreamTrack[]; enableDataChannels: boolean; send_event: (messageType: string, payload?: any, optional?: { to: string; }) => void; logError: (error: any) => void; /** * reture PeerConnection * @param socket * @param stream * @param options */ constructor(config: PeerConstructor); abstract initPeerConnection(stream: MediaStream, iceConfig: any): any; removeStream(stream: MediaStream): void; addStream(stream: MediaStream): void; onSetSessionDescriptionError(error: any): void; onCreateSessionDescriptionError(error: any): void; restartIce(): void; onCreateOfferSuccess(desc: RTCSessionDescription): void; createOffer(): void; createAnswer(message: IMessageExchange): void; sendOffer(): void; abstract handleMessage(message: IMessageExchange): any; abstract getStats(mediaTrack: MediaStreamTrack, secInterval: number): Promise; } }