import { OnModuleDestroy } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { type ScheduleSpec } from './scheduled-job-data';
export interface ScheduledJobsQueuePort {
    upsertSchedule(spec: ScheduleSpec): Promise<{
        schedulerId: string | null;
        degraded: boolean;
    }>;
    removeSchedule(jobId: string): Promise<void>;
    enqueueNow(jobId: string, trigger: 'MANUAL' | 'CATCHUP', customJobId?: string): Promise<{
        id: string | null;
        degraded: boolean;
    }>;
}
export declare class BullMqScheduledJobsQueuePort implements ScheduledJobsQueuePort, OnModuleDestroy {
    private readonly logger;
    private readonly queue?;
    constructor(configService: ConfigService);
    upsertSchedule(spec: ScheduleSpec): Promise<{
        schedulerId: string | null;
        degraded: boolean;
    }>;
    removeSchedule(jobId: string): Promise<void>;
    enqueueNow(jobId: string, trigger: 'MANUAL' | 'CATCHUP', customJobId?: string): Promise<{
        id: string | null;
        degraded: boolean;
    }>;
    isAvailable(): boolean;
    onModuleDestroy(): Promise<void>;
}
