/**
 * CronScheduler — tick loop over durable CronJob entities.
 * @module trellis/plugins/cron/scheduler
 */
import { type CronHandler } from './handlers.js';
import type { CronStatus, CronStore } from './types.js';
export interface CronSchedulerOptions {
    store: CronStore;
    tickMs?: number;
    leaseMs?: number;
    ownerId?: string;
    /** Injected clock for tests (epoch ms). */
    now?: () => number;
}
export declare class CronScheduler {
    private readonly store;
    private readonly tickMs;
    private readonly leaseMs;
    private readonly ownerId;
    private readonly now;
    private readonly handlers;
    private timer;
    private ticking;
    private jobCount;
    constructor(opts: CronSchedulerOptions);
    registerHandler(id: string, fn: CronHandler): void;
    start(): void;
    stop(): void;
    getStatus(): CronStatus;
    /** One scheduler pass — used by the interval and by unit tests. */
    tick(): Promise<void>;
    private processJob;
    private failJob;
}
//# sourceMappingURL=scheduler.d.ts.map