/**
 * Health diagnostic panel data provider.
 *
 * Subscribes to the RuntimeHealthAggregator and produces HealthDashboardData
 * snapshots for the health dashboard diagnostics panel.
 *
 * Implements the health visualization layer for diagnostics.
 * SLO status rows are included when an SloCollector is attached.
 * Remediation actions are included when a CascadeTimer is attached.
 */
import type { RuntimeHealthAggregator } from '@pellux/goodvibes-sdk/platform/runtime/health/aggregator';
import type { HealthDashboardData } from '@pellux/goodvibes-sdk/platform/runtime/diagnostics/types';
import type { SloCollector } from '../../perf/slo-collector.js';
import type { CascadeTimer } from '@pellux/goodvibes-sdk/platform/runtime/health/cascade-timing';
export declare class HealthPanel {
    private readonly _aggregator;
    private readonly _sloCollector;
    private readonly _cascadeTimer;
    private _current;
    /** Registered change notification callbacks. */
    private readonly _subscribers;
    /** Unsubscribe function from the aggregator. */
    private _unsub;
    /**
     * @param aggregator - The runtime health aggregator to subscribe to.
     * @param sloCollector - Optional SLO collector for SLO status rows.
     *   When provided, SLO rows are included in every dashboard snapshot.
     * @param cascadeTimer - Optional CascadeTimer for remediation action rows.
     *   When provided, active failed domains are evaluated and remediation
     *   playbook IDs are surfaced in every dashboard snapshot.
     */
    constructor(aggregator: RuntimeHealthAggregator, sloCollector?: SloCollector | null, cascadeTimer?: CascadeTimer | null);
    /**
     * Build a HealthDashboardData snapshot from a CompositeHealth record.
     */
    private _buildDashboard;
    /**
     * Build remediation action rows by evaluating cascade rules for all
     * currently-failed domains using the CascadeTimer.
     *
     * Returns an empty array when no CascadeTimer is attached or when
     * no domains are in the failed state.
     */
    private _buildRemediationActions;
    /**
     * Build SLO status rows from the current SloCollector snapshot.
     * Returns an empty array when no SloCollector is attached.
     */
    private _buildSloRows;
    /**
     * Return the current health dashboard snapshot.
     * This is updated synchronously when the aggregator fires.
     */
    getSnapshot(): HealthDashboardData;
    /**
     * Register a callback invoked whenever health data changes.
     * @returns An unsubscribe function.
     */
    subscribe(callback: () => void): () => void;
    /**
     * Release the aggregator subscription.
     */
    dispose(): void;
    private _notify;
}
//# sourceMappingURL=health.d.ts.map