/// /// /// import handler = require('../handler/queue'); import datachannel = require('./datachannel'); import signals = require('./signals'); export interface DataChannel extends datachannel.DataChannel { } export interface Data extends datachannel.Data { } export declare enum State { WAITING = 0, CONNECTING = 1, CONNECTED = 2, DISCONNECTED = 3, } export interface PeerConnection { pcState: State; dataChannels: { [channelLabel: string]: DataChannel; }; onceConnecting: Promise; onceConnected: Promise; onceDisconnected: Promise; negotiateConnection: () => Promise; openDataChannel: (channelLabel: string, options?: freedom_RTCPeerConnection.RTCDataChannelInit) => Promise; peerOpenedChannelQueue: handler.QueueHandler; handleSignalMessage: (message: TSignallingMessage) => void; signalForPeerQueue: handler.QueueHandler; close: () => Promise; } export declare class PeerConnectionClass implements PeerConnection { private pc_; peerName_: string; private static HEARTBEAT_TIMEOUT_MS_; private static HEARTBEAT_INTERVAL_MS_; private static HEARTBEAT_MESSAGE_; static peerConnections: { [name: string]: PeerConnection; }; dataChannels: { [channelLabel: string]: DataChannel; }; pcState: State; onceConnecting: Promise; onceConnected: Promise; onceDisconnected: Promise; peerOpenedChannelQueue: handler.Queue; signalForPeerQueue: handler.Queue; fromPeerCandidateQueue: handler.Queue; private fulfillConnecting_; private fulfillConnected_; private rejectConnected_; private fulfillDisconnected_; private controlDataChannel_; private static CONTROL_CHANNEL_LABEL; private static automaticNameIndex_; constructor(pc_: freedom_RTCPeerConnection.RTCPeerConnection, peerName_?: string); close: () => Promise; private closeWithError_; private onSignallingStateChange_; private onIceConnectionStateChange_; private completeConnection_; negotiateConnection: () => Promise; private onNegotiationNeeded_; private breakOfferTie_; private handleOfferSignalMessage_; private handleAnswerSignalMessage_; private handleCandidateSignalMessage_; private emitSignalForPeer_; handleSignalMessage: (message: signals.Message) => void; openDataChannel: (channelLabel: string, options?: freedom_RTCPeerConnection.RTCDataChannelInit) => Promise; private onPeerStartedDataChannel_; private addRtcDataChannel_; private registerControlChannel_; private initiateHeartbeat_; toString: () => string; } export declare function createPeerConnection(config: freedom_RTCPeerConnection.RTCConfiguration, debugPcName?: string): PeerConnection;