///
import { EventEmitter } from 'events';
import * as Stanza from 'stanza';
import { State } from '../reducers';
import SignalingClient from './Client';
export default class SFU extends EventEmitter {
jingle: Stanza.Jingle.SessionManager;
getState: () => State;
rpcUrl?: string;
minimumPeerCount: number;
peerCount: number;
enabled: boolean;
disposing: boolean;
ready: Promise;
shutdownTimeout: any;
sessions: Set;
browser: string;
sharedMedia: Map;
private client;
constructor(client: SignalingClient, browser: string);
hasSession(sid: string): boolean;
setPeerCount(count: number): boolean;
sendMedia(track: MediaStreamTrack, stream: MediaStream, screenCapture?: boolean): Promise;
setProfile(sessionId: string, profile: 'high' | 'medium' | 'low' | 'off'): Promise;
requestProfile(trackId: string, profile: 'high' | 'medium' | 'low' | 'off'): void;
createPeerConnection(session: Stanza.Jingle.Session, options?: RTCConfiguration): RTCPeerConnection;
getInfoForPeer(peerAddress: string): import("..").Peer | undefined;
waitForMedia(id: string): Promise;
}