import { Logger } from '../utils/logger';
import type { BuddyBotConfig } from '../types';
export declare interface ScheduleConfig {
  cron: string
  timezone?: string
  runOnStartup?: boolean
  maxRuntime?: number
}
export declare interface SchedulerJob {
  id: string
  name: string
  schedule: ScheduleConfig
  lastRun?: Date
  nextRun?: Date
  status: 'idle' | 'running' | 'error'
  config: BuddyBotConfig
}
export declare class Scheduler {
  private jobs: any;
  private timers: any;
  private logger: Logger;
  private isRunning: any;
  constructor(verbose?: any);
  addJob(job: SchedulerJob): void;
  removeJob(jobId: string): void;
  start(): void;
  stop(): void;
  getJobStatus(jobId: string): SchedulerJob | undefined;
  getAllJobs(): SchedulerJob[];
  private scheduleJob(job: SchedulerJob): void;
  private runJob(job: SchedulerJob): Promise<void>;
  private executeJob(job: SchedulerJob): Promise<void>;
  private getNextRunTime(cronExpression: string, timezone?: string): Date | null;
  private parseCronExpression(cron: string, timezone?: string): Date;
  private parseCronField(field: string, min: number, max: number): number[];
  static createJobFromConfig(config: BuddyBotConfig, jobId?: any): SchedulerJob;
  static readonly PRESETS: any;
}