/**
 * Tool Contracts diagnostic panel data provider.
 *
 * Stores the contract verification results for all registered tools.
 * Results are loaded by calling `load()` with the full map from the
 * ToolContractVerifier, or incrementally via `upsert()` for live updates.
 *
 * No event bus subscription is used here: contract verification is a
 * registration-time operation, not a streaming lifecycle event.
 */
import type { ToolContractEntry, PanelConfig } from '../types.js';
import type { ContractVerificationResult } from '../../tools/contract-verifier.js';
/**
 * ToolContractsPanel — diagnostics data provider for tool contract verification.
 *
 * Usage:
 * ```ts
 * const panel = new ToolContractsPanel();
 * panel.load(verifier.verifyAll(registry.list()));
 *
 * const entry = panel.get('exec');
 * const all = panel.getAll();
 * const failures = panel.getFailures();
 * ```
 */
export declare class ToolContractsPanel {
    private readonly _config;
    /** All contract entries keyed by tool name. */
    private readonly _entries;
    /** Subscribers to data changes. */
    private readonly _subscribers;
    /**
     * Bounded history of entries from previous load() calls, for audit.
     * @internal
     */
    private readonly _history;
    constructor(config?: PanelConfig);
    /**
     * Load (or reload) all verification results.
     * Replaces all current entries with the provided map.
     *
     * @param results - Map of tool name → ContractVerificationResult from ToolContractVerifier.
     */
    load(results: Map<string, ContractVerificationResult>): void;
    /**
     * Upsert a single verification result.
     * Call this when a single tool is re-verified (e.g. after hot-reload).
     *
     * @param result - The updated ContractVerificationResult.
     */
    upsert(result: ContractVerificationResult): void;
    /**
     * Get the contract entry for a specific tool.
     *
     * @param toolName - The tool name to look up.
     * @returns The entry or undefined if not yet verified.
     */
    get(toolName: string): ToolContractEntry | undefined;
    /**
     * Get all contract entries, sorted by tool name.
     */
    getAll(): ToolContractEntry[];
    /**
     * Get only tools that failed their contract checks (have error-level violations).
     */
    getFailures(): ToolContractEntry[];
    /**
     * Get only tools that passed with warnings.
     */
    getWarnings(): ToolContractEntry[];
    /**
     * Get only tools that passed all checks cleanly.
     */
    getClean(): ToolContractEntry[];
    /**
     * Summary counts across all entries.
     */
    getSummary(): {
        total: number;
        passed: number;
        passedWithWarnings: number;
        failed: number;
        totalViolations: number;
        totalErrors: number;
        totalWarnings: number;
    };
    /**
     * Register a callback invoked whenever the data changes.
     * @returns An unsubscribe function.
     */
    subscribe(callback: () => void): () => void;
    /**
     * Release all subscriptions and clear internal state.
     */
    dispose(): void;
    private _toEntry;
    private _notify;
}
//# sourceMappingURL=tool-contracts.d.ts.map