import { Observable } from 'rxjs/Observable'; export declare type Payload = any; export interface EventBusMessage { channel: string; payload: Payload; } export declare class EventBusService1 { listen: Observable; private next; constructor(); allChannels(): Observable; channel(channelName: string): Observable; channelEmmiter(channelName: any): (payload: any) => void; emit({ channel, payload }: EventBusMessage): void; } /** * Global EventEmitter */ export declare class EventBusService { /** Map event name to Subject */ private _subjects; /** * * @param eventName * @param handler * @returns */ on(eventName: Events, handler: (data: any) => any): { unsubscribe: () => void; }; /** * * @param eventName * @param data */ emit(eventName: Events, data: any): void; /** * Destory all subscription and clear the map */ destroy(): void; }