import type { DesiredJob, ExistingJob, ScheduleDefinition } from './types'; export interface ProvisionTransaction { findExisting(): Promise; insert(jobs: DesiredJob[]): Promise; redefine(jobId: number, schedule: ScheduleDefinition, nextRunAt: Date | null): Promise; withdrawPendingTasks(jobIds: number[]): Promise; deleteJobs(jobIds: number[]): Promise; } export type RunInProvisionTransaction = (work: (tx: ProvisionTransaction) => Promise) => Promise; export interface DeprovisionTransaction { deleteAll(): Promise; } export type RunInDeprovisionTransaction = (work: (tx: DeprovisionTransaction) => Promise) => Promise;