import { Dispatcher } from './Dispatcher'; import { Handler, HandleRequestFn } from './handlers'; import { ServiceRequest } from './request'; import { ServiceRequestFactory } from './ServiceRequestFactory'; export interface SystemServiceBus extends Dispatcher { registerHandler(requestPrefix: string, handler: Handler): this; registerRequestHandler(requestDef: ServiceRequestFactory, fn: HandleRequestFn, name?: string | undefined, description?: string | undefined): this; createSubsystem(name: string, requestPattern: string | RegExp): SubsystemServiceBus; readonly subsystems: Map; } export declare function createSystemServiceBus(): SystemServiceBus; export declare const RequestRegisterHandlerFactory: ServiceRequestFactory, { readonly requestPrefix: string; readonly handler: Handler; }, "System:RegisterHandler">; export declare const RequestCreateSubsystemFactory: ServiceRequestFactory, { readonly name: string; readonly requestPattern: string | RegExp; }, "System:CreateSubsystem">; interface SubsystemServiceBus extends Dispatcher { readonly name: string; readonly requestPattern: string | RegExp; readonly handler: Handler; } export declare function createSubsystemServiceBus(name: string, requestPattern: string | RegExp): SubsystemServiceBus; export {}; //# sourceMappingURL=SystemServiceBus.d.ts.map