import type { Schedule, ScheduleRun } from './types.js';
export interface ScheduleRunnerCallbacks {
    handleMessageSubmit: (message: string) => Promise<void>;
    clearMessages: () => Promise<void>;
    onJobStart: (schedule: Schedule) => void;
    onJobComplete: (schedule: Schedule, run: ScheduleRun) => void;
    onJobError: (schedule: Schedule, error: string) => void;
    waitForConversationComplete: () => Promise<void>;
}
export declare class ScheduleRunner {
    private cronJobs;
    private queue;
    private isRunning;
    private isProcessing;
    private callbacks;
    constructor(callbacks: ScheduleRunnerCallbacks);
    /**
     * Start all scheduled cron jobs
     */
    start(): Promise<void>;
    /**
     * Stop all cron jobs and clear the queue
     */
    stop(): void;
    /**
     * Get the number of active cron jobs
     */
    getActiveJobCount(): number;
    /**
     * Get the current queue length
     */
    getQueueLength(): number;
    /**
     * Check if currently processing a job
     */
    getIsProcessing(): boolean;
    private registerCronJob;
    private enqueueJob;
    private processQueue;
    private executeJob;
}
//# sourceMappingURL=runner.d.ts.map