import { Type } from '@nestjs/common'; import { ModuleRef } from '@nestjs/core'; import 'reflect-metadata'; import { ICommand, ICommandBus, ICommandHandler, ICommandPublisher } from './interfaces/index'; import { ObservableBus } from './utils/observable-bus'; export declare type CommandHandlerType = Type>; export declare class CommandBus extends ObservableBus implements ICommandBus { private readonly moduleRef; private handlers; private _publisher; constructor(moduleRef: ModuleRef); get publisher(): ICommandPublisher; set publisher(_publisher: ICommandPublisher); execute(command: T): Promise; bind(handler: ICommandHandler, name: string): void; register(handlers?: CommandHandlerType[]): void; resolveCommandTypeByName(name: string): Type; protected registerHandler(handler: CommandHandlerType): void; private getCommandName; private reflectCommand; private reflectCommandName; private useDefaultPublisher; }