/**
 * Divergence diagnostics panel data provider.
 *
 * Wraps a `DivergenceDashboard` and exposes its state for the diagnostics
 * view as a snapshot-based panel. Subscribers are notified whenever a new
 * trend entry is recorded.
 *
 * This panel is push-passive: it does not drive the sampling timer itself.
 * The caller (or a coordinator) must call `recordTrendEntry()` periodically.
 */
import type { DivergenceDashboardSnapshot, EnforceGateResult } from '../../permissions/divergence-dashboard.js';
import { DivergenceDashboard } from '../../permissions/divergence-dashboard.js';
import type { ComponentConfig } from '../types.js';
/**
 * DivergencePanel — diagnostics data provider for the divergence dashboard.
 *
 * Usage:
 * ```ts
 * const panel = new DivergencePanel(dashboard);
 * panel.subscribe(() => {
 *   const snap = panel.getSnapshot();
 *   render(snap);
 * });
 *
 * // Drive sampling externally:
 * setInterval(() => panel.recordTrendEntry(), 30_000);
 *
 * // On cleanup:
 * panel.dispose();
 * ```
 */
export declare class DivergencePanel {
    private readonly _dashboard;
    private readonly _config;
    private readonly _subscribers;
    constructor(dashboard: DivergenceDashboard, config?: ComponentConfig);
    /**
     * recordTrendEntry — Captures a trend snapshot and notifies subscribers.
     *
     * Call this on a periodic timer (e.g. every 30 seconds) to build trend
     * history. The panel respects `bufferLimit` for display purposes; the
     * dashboard's own ring buffer governs actual retention.
     */
    recordTrendEntry(): void;
    /**
     * getSnapshot — Returns the current full dashboard snapshot.
     *
     * The trend is capped at `bufferLimit` entries for display.
     */
    getSnapshot(): DivergenceDashboardSnapshot;
    /**
     * checkEnforceGate — Delegates to the underlying dashboard's gate check.
     */
    checkEnforceGate(): EnforceGateResult;
    /**
     * Register a callback invoked whenever a trend entry is recorded.
     * @returns An unsubscribe function.
     */
    subscribe(callback: () => void): () => void;
    /**
     * Release all subscriptions.
     */
    dispose(): void;
    private _notify;
}
//# sourceMappingURL=divergence.d.ts.map