import type { Constructor } from '@cratis/fundamentals'; import type { EventContext } from '../events/EventContext.js'; import type { ReducerEventHandler } from './ReducerEventHandler.js'; /** Selects and invokes the same reducer handlers for kernel deliveries and in-process scenarios. */ export declare class ReducerEventDispatcher { readonly handlers: ReducerEventHandler[]; readonly validateInstance: (instance: object) => void; /** Discovers event methods from the artifact event types. */ constructor(reducerType: Constructor, eventTypes: readonly Constructor[]); /** Resolves a registered event type, or returns undefined for an unsubscribed event. */ handlerFor(eventTypeId: string): ReducerEventHandler | undefined; /** Calls the selected handler with the event, current state, and context. */ invoke(instance: Record, handler: ReducerEventHandler, event: unknown, currentState: unknown, context: EventContext): Promise; } //# sourceMappingURL=ReducerEventDispatcher.d.ts.map