import { Event } from "@js-soft/ts-utils"; import { AcceptResponseItem, RejectResponseItem, Request, RequestItem, ResponseItem } from "@nmshd/content"; import { CoreAddress } from "@nmshd/core-types"; import { AccountController } from "@nmshd/transport"; import { ConsumptionController } from "../../../consumption/ConsumptionController"; import { ValidationResult } from "../../common/ValidationResult"; import { AcceptRequestItemParametersJSON } from "../incoming/decide/AcceptRequestItemParameters"; import { RejectRequestItemParametersJSON } from "../incoming/decide/RejectRequestItemParameters"; import { IRequestItemProcessor, LocalRequestInfo } from "./IRequestItemProcessor"; export declare abstract class AbstractRequestItemProcessor implements IRequestItemProcessor { protected readonly consumptionController: ConsumptionController; protected accountController: AccountController; protected currentIdentityAddress: CoreAddress; constructor(consumptionController: ConsumptionController); abstract checkPrerequisitesOfIncomingRequestItem(requestItem: TRequestItem, requestInfo: LocalRequestInfo): boolean | Promise; abstract canAccept(requestItem: TRequestItem, params: TAcceptParams, requestInfo: LocalRequestInfo): ValidationResult | Promise; abstract canReject(requestItem: TRequestItem, params: TRejectParams, requestInfo: LocalRequestInfo): ValidationResult | Promise; abstract accept(requestItem: TRequestItem, params: TAcceptParams, requestInfo: LocalRequestInfo): AcceptResponseItem | Promise; abstract reject(requestItem: TRequestItem, params: TRejectParams, requestInfo: LocalRequestInfo): RejectResponseItem | Promise; abstract canCreateOutgoingRequestItem(requestItem: TRequestItem, request: Request, recipient: CoreAddress): ValidationResult | Promise; abstract canApplyIncomingResponseItem(responseItem: ResponseItem, requestItem: TRequestItem, requestInfo: LocalRequestInfo): ValidationResult | Promise; abstract applyIncomingResponseItem(responseItem: ResponseItem, requestItem: TRequestItem, requestInfo: LocalRequestInfo): Event | void | Promise; } //# sourceMappingURL=AbstractRequestItemProcessor.d.ts.map