1 | import { Observable } from 'rxjs';
|
2 | declare type O = Record<string, unknown>;
|
3 | export declare type Event<P extends O = any> = {
|
4 | type: string;
|
5 | payload: P;
|
6 | };
|
7 | export declare type FireEvent<E extends Event = Event> = (event: E) => void;
|
8 | export declare type EventBus<E extends Event = Event> = {
|
9 | event$: Observable<E>;
|
10 | fire: FireEvent<E>;
|
11 | type<T extends Event>(): EventBus<T>;
|
12 | filter<T extends Event = E>(fn: EventBusFilter<T>): EventBus<T>;
|
13 | };
|
14 | export declare type EventBusFilter<E extends Event> = (e: E) => boolean;
|
15 | export {};
|