/// import datachannel = require('./datachannel'); import handler = require('../handler/queue'); 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, CLOSED = 3, } export interface PeerConnection { onceConnected: Promise; onceClosed: 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_; private peerName_; private static numCreations_; static extractMaxChannelsFromSdp_: (sdp: string) => number; private channels_; private state_; private fulfillConnected_; private rejectConnected_; onceConnected: Promise; private fulfillClosed_; onceClosed: Promise; private fulfillHaveRemoteDescription_; private onceHaveRemoteDescription_; peerOpenedChannelQueue: handler.Queue; signalForPeerQueue: handler.Queue; private maxChannels_; constructor(pc_: freedom.RTCPeerConnection.RTCPeerConnection, peerName_?: string); close: () => Promise; private closeWithError_; private onSignallingStateChange_; private onIceConnectionStateChange_; negotiateConnection: () => Promise; private onNegotiationNeeded_; private breakOfferTie_; private onIceCandidate_; private handleOfferSignalMessage_; private handleAnswerSignalMessage_; private handleCandidateSignalMessage_; private emitSignalForPeer_; handleSignalMessage: (message: signals.Message) => Promise; openDataChannel: (channelLabel: string, options?: freedom.RTCPeerConnection.RTCDataChannelInit) => Promise; private onPeerStartedDataChannel_; private addRtcDataChannel_; private registerControlChannel_; private initiateHeartbeat_; private updateMaxChannels_; toString: () => string; } export declare function createPeerConnection(config: freedom.RTCPeerConnection.RTCConfiguration, debugPcName?: string): PeerConnection;