/** * 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