import type { CronJob, CronRun } from "../contracts/orchestration.js";
export type CronTickHandler = (job: CronJob) => Promise<void>;
export interface CronEngine {
    start(): void;
    stop(): void;
    listJobs(): CronJob[];
    runJobNow(name: string): Promise<CronRun | null>;
    getRuns(jobName: string): Promise<CronRun[]>;
    enableJob(name: string): void;
    disableJob(name: string): void;
}
export interface CronEngineOptions {
    jobs?: CronJob[];
}
export declare function loadCronJobs(): Promise<CronJob[]>;
export declare function mergeCronRuntimeState(loadedJobs: CronJob[], previousJobs: CronJob[], now?: number): CronJob[];
export declare function createCronEngine(handler: CronTickHandler, options?: CronEngineOptions): CronEngine;
export declare function validateCronJobName(name: string): string;
/**
 * Compute the next run time given a schedule expression.
 * Supports: standard cron 5-field, @yearly, @monthly, @weekly, @daily, @hourly,
 * and @every <duration> (e.g., @every 1m, @every 30m, @every 1h).
 */
export declare function computeNextRun(schedule: string, lastRunAt?: string, catchup?: boolean): string;
