import { Logger } from '@n8n/backend-common';
import { WorkflowsConfig } from '@n8n/config';
import { WorkflowPublicationOutbox, WorkflowPublicationOutboxRepository } from '@n8n/db';
import { ErrorReporter, InstanceSettings, Tracing } from 'n8n-core';
import { EventService } from '../../events/event.service';
import { PublicationStatusReporter } from '../../workflows/publication/publication-status-reporter';
import { WorkflowPublicationLifecycleLock } from '../../workflows/publication/workflow-publication-lifecycle-lock';
import { WorkflowPublicationApplier } from '../../workflows/publication/workflow-publication-applier';
export declare class WorkflowPublicationOutboxConsumer {
    private readonly logger;
    private readonly workflowsConfig;
    private readonly errorReporter;
    private readonly outboxRepository;
    private readonly applier;
    private readonly reporter;
    private readonly instanceSettings;
    private readonly lifecycleLock;
    private readonly tracing;
    private readonly eventService;
    private pollTimeout;
    private isPolling;
    private isShuttingDown;
    private activeDrain;
    constructor(logger: Logger, workflowsConfig: WorkflowsConfig, errorReporter: ErrorReporter, outboxRepository: WorkflowPublicationOutboxRepository, applier: WorkflowPublicationApplier, reporter: PublicationStatusReporter, instanceSettings: InstanceSettings, lifecycleLock: WorkflowPublicationLifecycleLock, tracing: Tracing, eventService: EventService);
    init(): Promise<void>;
    startPolling(): void;
    stopPolling(): void;
    shutdown(): Promise<void>;
    wakeUp(): Promise<void>;
    private schedulePollCycle;
    private pollCycle;
    drainPending(): Promise<number>;
    private runDrain;
    private shouldKeepPolling;
    private processRecordWithAbort;
    private raceTimeout;
    processRecord(record: WorkflowPublicationOutbox, signal: AbortSignal): Promise<void>;
    private toOutcomeLabels;
}
