import PeerConnection from './PeerConnection'; import MessageBus from './MessageBus'; import NetworkPeer from './NetworkPeer'; import Queue from './Queue'; export interface Routed { sender: NetworkPeer; channelName: string; msg: Msg; } export default class MessageRouter { channelName: string; buses: WeakMap>; inboxQ: Queue>; constructor(channelName: string); listenTo(peer: NetworkPeer): void; sendToPeers(peers: Iterable, msg: Msg): void; sendToPeer(peer: NetworkPeer, msg: Msg): void; getBus(peer: NetworkPeer): MessageBus | undefined; }