import type { AutomationDeliveryManager } from './delivery-manager.js';
import type { AutomationJob } from './jobs.js';
import type { AutomationRun } from './runs.js';
interface AutomationFailureFollowUpContext {
    readonly jobs: Map<string, AutomationJob>;
    readonly retryTimers: Map<string, ReturnType<typeof setTimeout>>;
    readonly deliveryManager: AutomationDeliveryManager | null;
    readonly activeRunCount: () => number;
    readonly maxConcurrentRuns: () => number;
    readonly executeJob: (job: AutomationJob, trigger: 'scheduled', dueRun: boolean, attempt?: number) => Promise<AutomationRun>;
    readonly saveJobs: () => Promise<void>;
    readonly scheduleJob: (job: AutomationJob) => void;
}
interface AutomationRunDeliveryContext {
    readonly runs: Map<string, AutomationRun>;
    readonly deliveryInFlight: Set<string>;
    readonly deliveryManager: AutomationDeliveryManager | null;
    readonly syncRunToRuntime: (run: AutomationRun, source: string) => void;
    readonly saveRuns: () => Promise<void>;
}
export declare function scheduleAutomationFailureFollowUp(context: AutomationFailureFollowUpContext, maybeDeliverFailureNotice: (job: AutomationJob, run: AutomationRun) => void, job: AutomationJob, run: AutomationRun): void;
export declare function maybeDeliverAutomationFailureNotice(deliveryManager: AutomationDeliveryManager | null, job: AutomationJob, run: AutomationRun): void;
export declare function maybeDeliverAutomationRun(context: AutomationRunDeliveryContext, job: AutomationJob, run: AutomationRun): void;
export {};
//# sourceMappingURL=manager-runtime-delivery.d.ts.map