import type { Resolver } from 'awilix'; import type { AppServices, Container } from './container'; import type { EventHandler } from './messageBus'; export type EventHandlerSpec = { eventName: string; eventVersion: number; resolver: Resolver>; }; export interface ContainerModuleAware { getModules(): ContainerModule[]; } export interface ContainerModule { getName(): string; configure(container: Container): void; getEventhandlers(): EventHandlerSpec[]; }