import { Disposable, EmittableQueryBus, ExecuteActionOptions, ObservableQueryBus, Query, QueryBus, QueryHandler, Removable, Result } from "@tmorin/ceb-messaging-core";
/**
 * The symbol used to register {@link SimpleQueryBus}.
 */
export declare const SimpleQueryBusSymbol: unique symbol;
export declare class SimpleQueryBus implements QueryBus, Disposable {
    private readonly emitter;
    private readonly handlers;
    constructor(emitter: EmittableQueryBus, handlers?: Map<string, QueryHandler<any, any>>);
    get observe(): ObservableQueryBus;
    execute<R extends Result = Result, Q extends Query = Query>(query: Q, options?: Partial<ExecuteActionOptions>): Promise<R>;
    handle<C extends Query = Query, R extends Result = Result>(queryType: string, handler: QueryHandler<C, R>): Removable;
    dispose(): Promise<void>;
    private resolveHandler;
}
