import 'reflect-metadata'; import type { AbstractCommandHandler, CommandHandlerType } from './classes'; import type { ICommand, ICommandBus, ICommandHandlerInstantiator, ILogger } from './interfaces'; export declare class CommandBus implements ICommandBus { private handlers; private instantiator; private readonly logger; constructor({ instantiator, logger, }?: { instantiator?: ICommandHandlerInstantiator; logger?: ILogger; }); bind(handler: CommandHandlerType, id: string): void; execute(command: TCommand): Promise; register(handlers: (typeof AbstractCommandHandler)[]): void; private getCommandId; private getCommandName; private reflectCommandId; private registerHandler; }