import { Actor } from "../actors/Actor.js"; import { Auditor } from "../auditing/Auditor.js"; import { Job } from "./Job.js"; declare abstract class JobPersistence { protected auditor: Auditor; constructor(auditor: Auditor); create(actor: Actor, job: Job): Promise; save(actor: Actor, changeDescription: string, job: Job, properties?: Map, state?: string): Promise; kill(id: string, actor: Actor): Promise; killOlderThan(lastUpdatedBefore: Date, actor: Actor): Promise; countByState(actor: Actor): Promise>; private generatePropertiesDiff; private updateProperties; retrieve(id: string, actor: Actor): Promise; delete(id: string, actor: Actor): Promise; list(actor: Actor, pageSize?: number, page?: number): Promise>; protected abstract saveInternal(job: Job): Promise; protected abstract retrieveInternal(id: string): Promise; protected abstract deleteInternal(id: string): Promise; protected abstract listInternal(pageSize?: number, page?: number): Promise>; protected abstract killInternal(id: string): Promise; protected abstract killOlderThanInternal(lastUpdatedBefore: Date): Promise; protected abstract countByStateInternal(): Promise>; } declare namespace JobPersistence { enum Interaction { CREATE = "CREATE", UPDATE_PROPERTIES = "UPDATE_PROPERTIES", CHANGE_STATE = "CHANGE_STATE", AWAIT = "AWAIT", DELETE = "DELETE", READ = "READ", LIST = "LIST", KILL = "KILL" } type StateCount = { state: string; killed: boolean; count: number; }; } export { JobPersistence }; //# sourceMappingURL=JobPersistence.d.ts.map