import { Message, MessageAttributes } from '@node-ts/bus-messages'; import { ClassConstructor } from '../util'; /** * An adapter so that resolvers can use a local DI/IoC container * to resolve class based handlers and workflows */ export interface ContainerAdapter { /** * Fetch a class instance from the container * @param type Type of the class to fetch an instance for * @param context Optional context to pass to the container. This is used in order to allow different resolving containers to be used for different messages. * @example get(MessageHandler) */ get(type: ClassConstructor, context?: { message?: Message; messageAttributes?: MessageAttributes; }): T | Promise; }