/**
 * Cron Job Service - Manages PM2 processes with cron_restart
 */
import { CronJobConfig, CronJobStatus } from '../../types/cron';
export declare class CronJobService {
    private static instance;
    private constructor();
    static getInstance(): CronJobService;
    private ensureConfigFile;
    private readConfig;
    private writeConfig;
    /**
     * Validate cron expression
     */
    validateCronExpression(expression: string): {
        valid: boolean;
        error?: string;
        nextRun?: Date;
    };
    /**
     * Get human-readable description of cron expression
     */
    getCronDescription(expression: string): string;
    /**
     * Get script path for inline scripts (creates temp file)
     */
    private getScriptPath;
    /**
     * Get file extension for script type
     */
    private getScriptExtension;
    /**
     * Convert CronJobConfig to PM2 start options
     */
    private toPM2Options;
    /**
     * Create a new cron job
     */
    createCronJob(config: Omit<CronJobConfig, 'id' | 'createdAt' | 'updatedAt'>): Promise<CronJobConfig>;
    /**
     * Get all cron jobs
     */
    getCronJobs(): CronJobConfig[];
    /**
     * Get a single cron job by ID
     */
    getCronJob(id: string): CronJobConfig | undefined;
    /**
     * Update a cron job
     */
    updateCronJob(id: string, updates: Partial<CronJobConfig>): Promise<CronJobConfig>;
    /**
     * Delete a cron job
     */
    deleteCronJob(id: string): Promise<void>;
    /**
     * Start a cron job (start PM2 process with cron_restart)
     */
    startCronJob(id: string): Promise<void>;
    /**
     * Stop a cron job (delete PM2 process)
     */
    stopCronJob(id: string): Promise<void>;
    /**
     * Get status of all cron jobs (including PM2 process info)
     */
    getCronJobsStatus(): Promise<CronJobStatus[]>;
    /**
     * Toggle cron job enabled state
     */
    toggleCronJob(id: string): Promise<CronJobConfig>;
}
declare const _default: CronJobService;
export default _default;
