import { Sequelize as SequelizeInstance } from 'sequelize-typescript';
import { CronConfig, CronStocksLog } from 'src/models';
import { UpdateConfigParams, GetLogsParams } from './cron.entity';
export interface ResolvedCronConfig {
    stocks_paid_interval_minutes: number;
    stocks_free_interval_minutes: number;
    stocks_bulk_chunk_size: number;
    stocks_delay_between_chunks_ms: number;
    stocks_paid_enabled: boolean;
    stocks_free_enabled: boolean;
    [key: string]: any;
}
export declare class CronService {
    private cronConfigModel;
    private cronStocksLogModel;
    private readonly sequelize;
    constructor(cronConfigModel: typeof CronConfig, cronStocksLogModel: typeof CronStocksLog, sequelize: SequelizeInstance);
    getConfig(): Promise<ResolvedCronConfig>;
    status(): Promise<{
        config: ResolvedCronConfig;
        last_runs: {
            paid: CronStocksLog;
            free: CronStocksLog;
        };
        next_runs: {
            paid: Date;
            free: Date;
        };
        stats_last_24h: {
            paid: CronStocksLog;
            free: CronStocksLog;
        };
        server_time: Date;
    }>;
    updateConfig(request: UpdateConfigParams): Promise<{
        success: boolean;
        message: string;
        config: ResolvedCronConfig;
    }>;
    getLogs(request: GetLogsParams): Promise<{
        logs: CronStocksLog[];
        total: number;
        page: number;
        limit: number;
        total_pages: number;
    }>;
}
