import { Observable } from 'rxjs'; declare type O = Record; export declare type Event

= { type: string; payload: P; }; export declare type FireEvent = (event: E) => void; export declare type EventBus = { readonly $: Observable; fire: FireEvent; }; export declare type EventPump = { id: string; in: EventPumpIn; out: EventPumpOut; }; export declare type EventPumpIn = (fn: EventPumpInSubscriber) => void; export declare type EventPumpInSubscriber = (e: T) => void; export declare type EventPumpOut = (e: E) => void; export declare type EventPumpDirection = 'In' | 'Out'; export declare type EventPumpFilter = (e: EventPumpFilterArgs) => boolean; export declare type EventPumpFilterArgs = { direction: EventPumpDirection; event: E; }; export {};