import { Event } from "@js-soft/ts-utils"; import { NotificationItem } from "@nmshd/content"; import { CoreAddress } from "@nmshd/core-types"; import { AccountController } from "@nmshd/transport"; import { ConsumptionController } from "../../../consumption/ConsumptionController"; import { ValidationResult } from "../../common"; import { LocalNotification } from "../local/LocalNotification"; export interface INotificationItemProcessor { checkPrerequisitesOfIncomingNotificationItem(notificationItem: TNotificationItem, notification: LocalNotification): ValidationResult | Promise; process(notificationItem: TNotificationItem, notification: LocalNotification): Event | void | Promise; rollback(notificationItem: TNotificationItem, notification: LocalNotification): void | Promise; } export declare abstract class AbstractNotificationItemProcessor implements INotificationItemProcessor { protected readonly consumptionController: ConsumptionController; protected accountController: AccountController; protected currentIdentityAddress: CoreAddress; constructor(consumptionController: ConsumptionController); abstract checkPrerequisitesOfIncomingNotificationItem(notificationItem: TNotificationItem, notification: LocalNotification): ValidationResult | Promise; /** * Processor of notification item run after successful validation. * * NOTE: process() is responsible for its own cleanup. If during its * execution an irrecoverable error is encountered, any work done up * to this point has to be reverted in-place, before raising an * exception. */ abstract process(notificationItem: TNotificationItem, notification: LocalNotification): Event | void | Promise; /** * Rollback function triggered in case of an error of any subsequent * notification item within the notification. rollback() has to revert all * changes performed by a successful execution of process(). */ abstract rollback(notificationItem: TNotificationItem, notification: LocalNotification): void | Promise; } //# sourceMappingURL=AbstractNotificationItemProcessor.d.ts.map