import { CronJobLog, CronConfig } from 'src/models';
import { GetLogsParams, UpdateConfigParams, RunNowParams } from './cron.entity';
import { StockService } from 'src/controllers/cron/stocks/stocks.service';
import { CryptoService } from 'src/controllers/cron/crypto/crypto.service';
import { BondService } from 'src/controllers/cron/bonds/bonds.service';
import { InterestService } from 'src/controllers/cron/interests/interests.service';
import { NotificationService } from 'src/controllers/cron/notifications/notifications.service';
import { CronJobLoggerService } from 'src/controllers/cron/shared/cron-job-logger.service';
export declare class SystemCronService {
    private cronJobLogModel;
    private cronConfigModel;
    private readonly stockService;
    private readonly cryptoService;
    private readonly bondService;
    private readonly interestService;
    private readonly notificationService;
    private readonly cronLogger;
    constructor(cronJobLogModel: typeof CronJobLog, cronConfigModel: typeof CronConfig, stockService: StockService, cryptoService: CryptoService, bondService: BondService, interestService: InterestService, notificationService: NotificationService, cronLogger: CronJobLoggerService);
    status(): Promise<{
        jobs: {
            job_name: string;
            enabled: boolean;
            schedule_description: string;
            schedule_cron: string;
            config: Record<string, any>;
            last_run: any;
            is_running_now: boolean;
            stats_24h: {
                total_runs: number;
                successful: number;
                failed: number;
                running: number;
                avg_duration_ms: number;
                total_processed: number;
            };
        }[];
        global_stats: {
            total_runs_24h: number;
            successful_24h: number;
            failed_24h: number;
            active_jobs: number;
            disabled_jobs: number;
        };
        server_time: Date;
    }>;
    getLogs(request: GetLogsParams): Promise<{
        logs: CronJobLog[];
        pagination: {
            page: number;
            limit: number;
            total: number;
            total_pages: number;
        };
        filters_applied: {
            job_name: string;
            status: "running" | "completed" | "failed";
            from: string;
            to: string;
        };
    }>;
    updateConfig(request: UpdateConfigParams): Promise<{
        success: boolean;
        updated: {
            key_name: any;
            value: any;
            data_type: any;
            updated_at: any;
        };
    }>;
    runNow(request: RunNowParams): Promise<{
        success: boolean;
        job_name: string;
        triggered_at: Date;
        log_id: any;
        message: string;
    }>;
    private loadAllConfig;
    private toInt;
    private dispatchJob;
    private waitForRunningLog;
}
