import { ActiveExecutions } from '../ActiveExecutions';
import { Logger } from '../Logger';
import { JobProcessor } from './job-processor';
import type { Job, JobData, JobOptions, JobStatus, JobId } from './types';
import { GlobalConfig } from '@n8n/config';
import { ExecutionRepository } from '../databases/repositories/execution.repository';
import { InstanceSettings } from 'n8n-core';
import { OrchestrationService } from '../services/orchestration.service';
export declare class ScalingService {
    private readonly logger;
    private readonly activeExecutions;
    private readonly jobProcessor;
    private readonly globalConfig;
    private readonly executionRepository;
    private readonly instanceSettings;
    private readonly orchestrationService;
    private queue;
    private readonly instanceType;
    constructor(logger: Logger, activeExecutions: ActiveExecutions, jobProcessor: JobProcessor, globalConfig: GlobalConfig, executionRepository: ExecutionRepository, instanceSettings: InstanceSettings, orchestrationService: OrchestrationService);
    setupQueue(): Promise<void>;
    setupWorker(concurrency: number): void;
    stop(): Promise<void>;
    pingQueue(): Promise<void>;
    addJob(jobData: JobData, jobOptions: JobOptions): Promise<import("bull").Job<JobData>>;
    getJob(jobId: JobId): Promise<import("bull").Job<JobData> | null>;
    findJobsByStatus(statuses: JobStatus[]): Promise<import("bull").Job<JobData>[]>;
    stopJob(job: Job): Promise<boolean>;
    getRunningJobsCount(): number;
    private registerListeners;
    private decodeWebhookResponse;
    private assertWorker;
    private readonly queueRecoveryContext;
    scheduleQueueRecovery(waitMs?: number): void;
    stopQueueRecovery(): void;
    private recoverFromQueue;
    private toErrorMsg;
}
