/**
 * Health Error Propagation — Effect Handlers
 *
 * Implements concrete actions for each CascadeEffect type produced by the
 * CascadeEngine. Each handler is a pure dispatch function — side effects
 * are performed through the provided aggregator and eventBus context.
 *
 * Callers (e.g. HealthStoreWiring) are responsible for iterating over
 * CascadeResult arrays and invoking this function for each result.
 *
 * @module health/effect-handlers
 */
import type { CascadeEffect, CascadeResult } from './types.js';
import type { RuntimeHealthAggregator } from './aggregator.js';
import type { RuntimeEventBus } from '../events/index.js';
/** Context injected into each effect handler. */
export interface EffectHandlerContext {
    /** The health aggregator — used to mark domain state changes. */
    readonly aggregator: RuntimeHealthAggregator;
    /** The event bus — used to emit CASCADE_APPLIED and domain events. */
    readonly eventBus: RuntimeEventBus;
}
/**
 * Dispatches the appropriate runtime action for a given CascadeEffect.
 *
 * Handles all six CascadeEffect variants:
 * - `CANCEL_INFLIGHT` — cancels in-flight operations in the given scope
 * - `BLOCK_DISPATCH` — blocks new dispatch in the given scope (optionally queues)
 * - `MARK_CHILDREN` — marks child tasks/agents as failed or blocked
 * - `DEREGISTER_TOOLS` — deregisters tools, scoped by pluginId from sourceContext
 * - `EMIT_EVENT` — emits a domain event of the given eventType on the bus
 * - `BLOCK_NEW` — blocks new operations of the given scope
 *
 * After applying the effect, emits a `CASCADE_APPLIED` event on the event bus
 * so that other subsystems can observe cascade propagation.
 *
 * @param effect - The CascadeEffect to apply.
 * @param result - The CascadeResult that produced this effect (carries ruleId, source, etc.).
 * @param context - The aggregator and eventBus needed to perform side effects.
 */
export declare function handleCascadeEffect(effect: CascadeEffect, result: CascadeResult, context: EffectHandlerContext): void;
//# sourceMappingURL=effect-handlers.d.ts.map