import type { ArtifactStore } from '../artifacts/index.js';
import { ChannelDeliveryRouter, RouteBindingManager } from '../channels/index.js';
import { ServiceRegistry } from '../config/service-registry.js';
import type { RuntimeStore } from '../runtime/store/index.js';
import type { RuntimeEventBus } from '../runtime/events/index.js';
import type { AutomationDeliveryAttempt, AutomationDeliveryTarget } from './delivery.js';
import type { AutomationJob } from './jobs.js';
import type { AutomationRun } from './runs.js';
import type { FeatureFlagReader } from '../runtime/feature-flags/index.js';
export declare class AutomationDeliveryManager {
    private readonly routeBindings;
    private readonly deliveryRouter;
    private readonly featureFlags;
    private runtimeDispatch;
    private runtimeBus;
    constructor(config: {
        readonly serviceRegistry?: ServiceRegistry | undefined;
        readonly secretsManager?: Pick<import('../config/secrets.js').SecretsManager, 'get' | 'getGlobalHome'> | undefined;
        readonly configManager?: import('../config/manager.js').ConfigManager | undefined;
        readonly routeBindings: RouteBindingManager;
        readonly deliveryRouter?: ChannelDeliveryRouter | undefined;
        readonly artifactStore?: ArtifactStore | undefined;
        readonly runtimeStore?: RuntimeStore | undefined;
        readonly runtimeBus?: RuntimeEventBus | undefined;
        readonly featureFlags?: FeatureFlagReader | undefined;
    });
    attachRuntime(config: {
        readonly runtimeStore?: RuntimeStore | null | undefined;
        readonly runtimeBus?: RuntimeEventBus | null | undefined;
    }): void;
    getDeliveryRouter(): ChannelDeliveryRouter;
    private isEnabled;
    private isTargetEnabled;
    setControlPlaneGateway(gateway: import('../control-plane/gateway.js').ControlPlaneGateway | null): void;
    deliverJobRun(job: AutomationJob, run: AutomationRun): Promise<readonly AutomationDeliveryAttempt[]>;
    deliverText(job: AutomationJob, run: AutomationRun, body: string, targets: readonly AutomationDeliveryTarget[]): Promise<readonly AutomationDeliveryAttempt[]>;
    private resolveTargets;
    private sendTarget;
    private syncAttempt;
}
//# sourceMappingURL=delivery-manager.d.ts.map