type Topic = string; export interface ViewerEvent { topic: Topic; payload?: any; } export type EventListener = (e: any) => void; interface SingleEventListener { fn: EventListener; once: true; } export default class EventBus { private eventListenerMap; constructor(disableLog?: boolean); getEventListenerMap(): { [x: string]: (SingleEventListener | EventListener)[]; }; on(topic: Topic, listener: EventListener, once?: boolean): void; once(topic: Topic, listener: EventListener): void; off(topic: Topic, listener: EventListener): void; emit(topic: Topic, payload?: any): void; removeAllListeners(): void; } export {};