import 'reflect-metadata'; import type { Query, QueryHandlerType } from './classes'; import type { ILogger, IQuery, IQueryBus, IQueryHandlerInstantiator, IQueryResult } from './interfaces'; export declare class QueryBus implements IQueryBus { private handlers; private instantiator; private readonly logger; constructor({ instantiator, logger, }?: { instantiator?: IQueryHandlerInstantiator; logger?: ILogger; }); bind(handler: QueryHandlerType, queryId: string): void; execute(query: Query): Promise; register(handlers: QueryHandlerType[]): void; protected registerHandler(handler: QueryHandlerType): void; private getQueryId; private getQueryName; private reflectQueryId; }