import type { CronListPageOptions, CronListPageResult } from "./service/list-page-types.js"; import type { CronAddInput, CronAddResult, CronListResult, CronRemoveResult, CronRunMode, CronRunResult, CronStatusSummary, CronUpdateInput, CronUpdateResult, CronWakeMode } from "./service/state.js"; import type { CronJob } from "./types.js"; type CronWakeResult = { ok: true; } | { ok: false; }; export type CronServiceRunResult = CronRunResult | { ok: true; ran: false; reason: "invalid-spec"; }; export interface CronServiceContract { start(): Promise; stop(): void; status(): Promise; list(opts?: { includeDisabled?: boolean; }): Promise; listPage(opts?: CronListPageOptions): Promise; add(input: CronAddInput): Promise; update(id: string, patch: CronUpdateInput): Promise; remove(id: string): Promise; run(id: string, mode?: CronRunMode): Promise; enqueueRun(id: string, mode?: CronRunMode): Promise; getJob(id: string): CronJob | undefined; getDefaultAgentId(): string | undefined; wake(opts: { mode: CronWakeMode; text: string; }): CronWakeResult; } export {};