/// import churn_types = require('../churn/churn.types'); import handler = require('../handler/queue'); import peerconnection = require('../webrtc/peerconnection'); export declare var preObfuscation: (name?: string, config?: freedom.RTCPeerConnection.RTCConfiguration, portControl?: freedom.PortControl.PortControl) => BridgingPeerConnection; export declare var basicObfuscation: (name?: string, config?: freedom.RTCPeerConnection.RTCConfiguration, portControl?: freedom.PortControl.PortControl, transformerConfig?: churn_types.TransformerConfig) => BridgingPeerConnection; export declare var holographicIceOnly: (name?: string, config?: freedom.RTCPeerConnection.RTCConfiguration, portControl?: freedom.PortControl.PortControl, transformerConfig?: churn_types.TransformerConfig) => BridgingPeerConnection; export declare var best: (name?: string, config?: freedom.RTCPeerConnection.RTCConfiguration, portControl?: freedom.PortControl.PortControl, transformerConfig?: churn_types.TransformerConfig) => BridgingPeerConnection; export interface SignallingMessage { signals?: { [providerName: string]: Object[]; }; errorOnLastMessage?: boolean; first?: boolean; } export declare var isTerminatingSignal: (message: SignallingMessage) => boolean; export declare var makeSingleProviderMessage: (providerType: ProviderType, signals: Object[]) => SignallingMessage; export declare var pickBestProviderType: (signals?: { [providerName: string]: Object[]; }) => ProviderType; export declare enum ProviderType { PLAIN = 0, CHURN = 1, HOLO_ICE = 2, } export declare class BridgingPeerConnection implements peerconnection.PeerConnection { private preferredProviderType_; private name_; private config_; private portControl_; private transformerConfig_; private static id_; private connected_; private rejectConnected_; onceConnected: Promise; private closed_; onceClosed: Promise; peerOpenedChannelQueue: handler.Queue; signalForPeerQueue: handler.Queue; private providerType_; private provider_; private first_; constructor(preferredProviderType_: ProviderType, name_?: string, config_?: freedom.RTCPeerConnection.RTCConfiguration, portControl_?: freedom.PortControl.PortControl, transformerConfig_?: churn_types.TransformerConfig); negotiateConnection: () => Promise; private makeFromProviderType_; private makePlain_; private makeChurn_; private makeHolographicIceOnly_; private bridgeWith_; private wrapSignal_; handleSignalMessage: (message: SignallingMessage) => void; openDataChannel: (channelLabel: string, options?: freedom.RTCPeerConnection.RTCDataChannelInit) => Promise; close: () => Promise; }