import { IContainer } from '../../../di/resolvers'; import { Domain } from '../../../schemas/domain'; import { Handler } from '../descriptions/serviceDescriptions'; import { RequestContext } from "../../../pipeline/requestContext"; import { RequestData } from "../../../pipeline/common"; import { UserContextData } from "../../../security/securityContext"; import { HttpResponse } from "../../response"; import { EventHandlerFactory } from './eventHandlerFactory'; import { IManager } from '../definitions'; export interface AsyncTaskData extends RequestData { status?: "Error" | "Success" | "Pending" | "Running"; taskId?: string; submitAt?: number; startedAt?: number; userContext?: UserContextData; completedAt?: number; } export interface ActionResult { value?: any; status?: "Error" | "Success" | "Pending"; taskId?: string; } export declare class CommandManager implements IManager { container: IContainer; private messageBus; private _domain; private _initialized; static eventHandlersFactory: EventHandlerFactory; /** * Get the current domain model * @returns {Domain} */ readonly domain: Domain; constructor(container: IContainer); startMessageBus(hasAsyncTasks: boolean): void; private validateRequestData(ctx, info, command, skipValidation); private createEvent(ctx, status, result, error?); run(info: Handler, command: RequestData, ctx: RequestContext): Promise; private emitEvent(source, ctx, def, result, error?); processAsyncTask(command: AsyncTaskData): Promise; subscribeToEvents(): void; /** * */ private bindEventHandler(def); }