import { ClassType } from '@allgemein/schema-api'; import { AbstractEvent } from './AbstractEvent'; import { System } from '../../libs/system/System'; import { Message } from './Message'; import { ILoggerApi } from '../../libs/logging/ILoggerApi'; import { IMessageOptions } from './IMessageOptions'; export declare abstract class AbstractExchange { private reqCache; private system; readonly reqCls: ClassType; readonly resCls: ClassType; logger: ILoggerApi; constructor(reqCls: ClassType, resCls: ClassType); prepare(opts?: any): void; /** * Give possiblity to mark this exchange as disabled */ isActive(): boolean; getSystem(): System; getReqClass(): ClassType; getResClass(): ClassType; create(options?: IMessageOptions): Message; getResponse(request: REQ): Promise; onRequest(request: REQ): Promise; abstract handleRequest(request: REQ, response: RES): void; abstract handleResponse(responses: RES, err: Error): any; }