import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { SandboxRunner } from '../sandbox/sandbox-runner';
import { ScheduledJobsRuntimeClient } from '../scheduled-jobs-runtime.client';
import { type ScheduledJobData } from './scheduled-job-data';
export declare const SCHEDULED_JOBS_QUEUE_PREFIX = "planfi:scheduled-jobs";
export declare class ScheduledJobsProcessor implements OnModuleInit, OnModuleDestroy {
    private readonly runtime;
    private readonly runner;
    private readonly configService;
    private readonly logger;
    private worker?;
    private lockClient?;
    constructor(runtime: ScheduledJobsRuntimeClient, runner: SandboxRunner, configService: ConfigService);
    onModuleInit(): void;
    onModuleDestroy(): Promise<void>;
    processJob(data: ScheduledJobData, attemptsMade?: number): Promise<void>;
    protected acquireLock(key: string, ttlMs: number): Promise<string | null>;
    protected releaseLock(key: string, token: string): Promise<void>;
    protected renewLock(key: string, token: string, ttlMs: number): Promise<boolean>;
}
