import { BehaviorSubject } from 'rxjs'; import { Action } from './action'; /** * This version use Action type as topic. * * Not sure is good enough. * Maybe topic split with Action type is better choice. */ export declare abstract class Broker { _brokerId: string; isReadyToDispatch$: BehaviorSubject; private _isReadyToDispatchSubscribe; private _eventsLog; private _eventCache; private _topicMap; get topicMap(): Map>; get topicNameList(): IterableIterator; get eventCache(): Action[]; constructor(); private _brokerInitial; getEventChain(): { ids: string[]; events: { [key: string]: Action; }; }; getBroadcast(): BehaviorSubject | undefined; getTopicByAction(action: Action): BehaviorSubject | undefined; addTopicByActionType(actionType: string): BehaviorSubject; addTopicsByActionTypeList: (actionTypeList: string[]) => BehaviorSubject[]; dispatch(action: Action): void; dispatches(actions: Action[]): void; }