import { ConfigService } from '@nestjs/config';
import { Model } from 'mongoose';
import { AtlasRuntimeClient, RuntimeSubject } from './atlas-runtime.client';
import { IngestAutomationEventDto } from './dto/ingest-automation-event.dto';
import { ScheduleWaitDto } from './dto/schedule-wait.dto';
import { AutomationEventDocument } from './schemas/automation-event.schema';
import { AutomationQueueService } from './queue/automation-queue.service';
type IngestResult = {
    accepted: true;
    duplicate: boolean;
    matched: number;
    enqueued: number;
    degraded: boolean;
};
export declare class AutomationsService {
    private readonly eventModel;
    private readonly atlasRuntime;
    private readonly queueService;
    private readonly configService;
    private readonly logger;
    constructor(eventModel: Model<AutomationEventDocument>, atlasRuntime: AtlasRuntimeClient, queueService: AutomationQueueService, configService: ConfigService);
    scheduleWait(dto: ScheduleWaitDto): Promise<{
        accepted: true;
        degraded: boolean;
    }>;
    recordAndIngest(dto: IngestAutomationEventDto): Promise<IngestResult>;
    ingest(input: {
        eventName: string;
        idempotencyKey: string;
        subject: RuntimeSubject;
        payload: Record<string, unknown>;
    }, enqueuedRunIds?: Set<string>): Promise<Omit<IngestResult, 'accepted' | 'duplicate'>>;
    private effectiveDryRun;
    private reportQueueDegraded;
    private safeReportIngestionEvent;
    private statusForResult;
    private isDuplicateKeyError;
    private isEventStoreUnavailable;
    private isAtlasRuntimeAuthorizationError;
    private errorStatus;
    private errorMessage;
}
export {};
