/**
 * Panel resource diagnostics panel data provider.
 *
 * Polls the shared ComponentHealthMonitor and produces ComponentResourceSnapshot
 * values for the panel resource diagnostics view.
 *
 * Subscribers are notified on each poll cycle. The poll interval is
 * configurable; callers can also request an immediate snapshot via
 * getSnapshot().
 */
import type { ComponentHealthMonitor } from '../../perf/component-health-monitor.js';
import type { ComponentResourceSnapshot } from '../types.js';
/**
 * PanelResourcesPanel — diagnostic data provider for panel resource health.
 *
 * Polls the ComponentHealthMonitor on a configurable interval and maintains a
 * current ComponentResourceSnapshot for the diagnostics panel to render.
 */
export declare class PanelResourcesPanel {
    private readonly _pollIntervalMs;
    private readonly _monitor;
    private _current;
    private _timerId;
    private readonly _subscribers;
    constructor(monitor: ComponentHealthMonitor, pollIntervalMs?: number);
    /**
     * Start polling the health monitor.
     * Safe to call multiple times — subsequent calls are no-ops.
     */
    start(): void;
    /**
     * Stop polling.
     */
    stop(): void;
    /**
     * Return the most recent panel resource snapshot.
     */
    getSnapshot(): ComponentResourceSnapshot;
    /**
     * Force an immediate snapshot refresh and return it.
     */
    refresh(now?: number): ComponentResourceSnapshot;
    /**
     * Register a callback invoked whenever the snapshot is refreshed.
     * @returns An unsubscribe function.
     */
    subscribe(callback: () => void): () => void;
    /**
     * Stop polling and clear all subscribers.
     */
    dispose(): void;
    private _buildSnapshot;
    private _refreshWithResilience;
    private _emptySnapshot;
    private _notify;
}
//# sourceMappingURL=panel-resources.d.ts.map