export declare type EventerEventListener = (data: any, topic?: string) => void; export declare type EventerEventResponder = (data: any, topic?: string) => any | Promise; export declare type EventerEvent = { channel: string; topic: string; data: any; }; export interface IEventer { emit(topic: string, data?: any): any; on(topic: string, listener: EventerEventListener): any; simulate(topic: string, data?: any): any; request(topic: string, data?: any, listener?: EventerEventListener): Promise; respond(topic: string, responder: EventerEventResponder): any; once(topic: string, listener?: EventerEventListener): Promise; off(topic: string, listener: EventerEventListener): any; } export declare class Eventer implements IEventer { listeners: { [key: string]: EventerEventListener[]; }; responders: { [key: string]: EventerEventResponder[]; }; emit(topic: string, data?: any): void; on(topic: string, listener: EventerEventListener): void; simulate(topic: string, data?: any): void; request(topic: string, data?: any, listener?: EventerEventListener): Promise; respond(topic: string, responder: EventerEventResponder): void; once(topic: string, listener?: EventerEventListener): Promise; off(topic: string, listener: EventerEventListener): void; protected emitMessage(topic: string, payload: any): void; protected receiveMessage(topic: string, payload: any): void; protected notifyListeners(topic: string, payload: any): void; protected notifyResponders(topic: string, payload: any): void; private createPayload; private parsePayload; }