import { Container } from '@hexadrop/ioc'; import { CommandBusCallback } from './bus.js'; import Command, { CommandClass } from './command.js'; import CommandHandlers from './command-handlers.js'; import '@hexadrop/either'; import '@hexadrop/error'; import '@hexadrop/types/class'; import '@hexadrop/types/primitives'; /** * IoCCommandHandlers class implements CommandHandlers interface. * It uses inversion of control to manage command handlers. */ declare class IoCCommandHandlers extends CommandHandlers { private readonly container; /** * IoCCommandHandlers constructor. * @param {Container} container - The IoC container. */ constructor(container: Container); /** * Searches for a command handler in the IoC container. * @param {CommandType | CommandClass} command - The command to search for. * @throws {InvalidCommandError} If the command does not have a name. * @throws {CommandNotRegisteredError} If the command handler is not registered in the IoC container. * @returns {CommandBusCallback} The command handler callback. * @template CommandType - The command type. */ search(command: CommandClass | CommandType): CommandBusCallback; } export { IoCCommandHandlers as default };