/// import { CommandManager, AsyncTaskData } from './action/actionManager'; import * as RX from 'rxjs'; import { RequestData } from "../../pipeline/common"; import { UserContextData } from "../../security/securityContext"; import { EventEmitter } from 'events'; export interface EventData extends RequestData { value?: any; source: string; error?: string; userContext: UserContextData; startedAt: string; completedAt?: string; status: string; } export interface ConsumeEventDefinition { name?: string; description: string; subscribeToDomain?: string; subscribeToAction?: string; subscribeToSchema?: string; filter?: (observable: RX.Observable) => RX.Observable; /** * Distribution mode: once or many (default) */ distributionMode?: "once" | "many" | undefined; distributionKey?: string; metadata?: any; } export interface EventDefinition { description?: string; schema?: string; metadata?: any; subscribeToDomain?: string; } export declare enum EventNotificationMode { never = 0, always = 1, successOnly = 2, } export declare class MessageBus { private manager; private commandBus; private eventBus; private _events; static readonly LocalEvents: EventEmitter; /** * Get event queue for a domain */ getEventQueue(domain: string, distributionKey: string): RX.Observable; constructor(manager: CommandManager, hasAsyncActions: boolean); private consumeEvent(event, distributionKey); pushTask(command: AsyncTaskData): void; sendEvent(event: EventData): EventData; emitLocalEvent(evt: any): void; }