import { AsyncPriorityQueue } from 'async'; import { ThunkDispatch } from 'redux-thunk'; import { Jingle } from 'stanza'; import { Media, Peer, Room } from '../Definitions'; import { State } from '../reducers'; import SignalingClient from './Client'; import SFU from './SFU'; export default class Mesh { sfu: SFU; jingle: Jingle.SessionManager; dispatch: ThunkDispatch; getState: () => State; updateQueue: AsyncPriorityQueue; constructor(client: SignalingClient); connectionFilter(user: Peer, peer: Peer, direction?: 'incoming' | 'outgoing'): boolean; sharingFilter(opts: { room: Room; user: Peer; peer: Peer; media: Media; }): boolean; updateICEServers(): void; updateConnections(reason?: string): Promise; plugin(): () => void; notifyPeers(media: Media, action: string): void; }