import type { ConstructableAgentMessage } from './AgentMessage' import type { InboundMessageContext, OutboundMessageContext } from './models' export interface MessageHandler { readonly supportedMessages: readonly ConstructableAgentMessage[] handle(messageContext: InboundMessageContext): Promise } /** * Provides exact typing for the AgentMessage in the message context in the `handle` function * of a handler. It takes all possible types from `supportedMessageTypes` * * @example * async handle(messageContext: MessageHandlerInboundMessage) {} */ export type MessageHandlerInboundMessage = InboundMessageContext< InstanceType >