import { Dispatcher } from './Dispatcher'; import type { Handler, HandlerFn, HandleRequest } from './handlers'; import { RequestResponseType, ServiceRequest } from './request'; export declare class ServiceBus implements Dispatcher { readonly handlers: Handler[]; constructor(handlers?: Handler[]); addHandler(handler: HandlerFn, name: string, description?: string): this; addHandler(handler: Handler): this; dispatch(request: R): RequestResponseType; defaultHandler(request: T): import("./request").ServiceResponseFailure extends infer T_1 ? T_1 extends RequestResponseType ? T_1 extends { ___T?: infer R; } ? R : never : never : never>; protected reduceHandlers(handlers: readonly Handler[], request: R, dispatcher: Dispatcher, defaultHandler: HandleRequest): HandleRequest; } export declare function createServiceBus(handlers?: Handler[]): ServiceBus; //# sourceMappingURL=bus.d.ts.map