import { Event } from '@we-scrum/core'; import { Bus } from './bus'; import { Context } from './context'; import { ExecutionMode } from './execution-mode-enum'; export declare class Projection { protected bus: Bus; private handlers; constructor(bus: Bus); handle(event: Event, mode: ExecutionMode, context: Context): Promise; isRegisteredEvent(type: string, mode: ExecutionMode): boolean; protected on(eventType: new () => T, handler: Projection.EventHandler, mode: ExecutionMode): void; private getDictionaryKey; } export declare namespace Projection { interface EventHandler { (event: T, context: Context): Promise; } }