pandora-hub
Version:
pandora.js messenge hub
43 lines (42 loc) • 1.29 kB
TypeScript
import { SelectedInfo, Selector } from '../domain';
import { MessengerClient } from 'pandora-messenger';
/**
* RouteTable
*/
export declare class RouteTable {
mapClientToSelector: Map<MessengerClient, Selector[]>;
/**
* Save a relation between Client and Selector
* @param {MessengerClient} client
* @param {Selector} selector
*/
setRelation(client: MessengerClient, selector: Selector): void;
/**
* Forget a relation between Client and Selector
* @param {MessengerClient} client
* @param {Selector} selector
*/
forgetRelation(client: MessengerClient, selector: Selector): void;
/**
* Forget a Client and all Selectors belong with it
* @param {MessengerClient} client
*/
forgetClient(client: MessengerClient): void;
/**
* Select clients by Selector
* @param {Selector} selector
* @return {Array<SelectedInfo>}
*/
selectClients(selector?: Selector): Array<SelectedInfo>;
/**
* Get all Clients
* @return {MessengerClient[]}
*/
getAllClients(): MessengerClient[];
/**
* Get all Selectors of a certain Client
* @param {MessengerClient} client
* @return {Selector[]}
*/
getSelectorsByClient(client: MessengerClient): Selector[];
}