/**
 * Hashing utilities for tool identity and change detection
 */
import { DiscoveredTool, MCPToolDefinition, ToolChangeInfo } from "./types.js";
/**
 * Tool hash utility class
 */
export declare class ToolHashUtils {
    /**
     * Calculate tool hash for identity and change detection
     */
    static calculateToolHash(tool: DiscoveredTool | MCPToolDefinition, serverName?: string): string;
    /**
     * Calculate hash for a list of tools (server tools hash)
     */
    static calculateServerToolsHash(tools: DiscoveredTool[]): string;
    /**
     * Compare tools and detect changes
     */
    static detectToolChanges(previousTools: DiscoveredTool[], currentTools: DiscoveredTool[]): ToolChangeInfo[];
    /**
     * Create tool with hash from MCP tool definition
     */
    static createHashedTool(toolDef: MCPToolDefinition, serverName: string, namespacedName: string): DiscoveredTool;
    /**
     * Update tool hash after modification
     */
    static updateToolHash(tool: DiscoveredTool): DiscoveredTool;
    /**
     * Get summary of tool changes
     */
    static summarizeChanges(changes: ToolChangeInfo[]): {
        added: number;
        updated: number;
        removed: number;
        unchanged: number;
        total: number;
    };
    /**
     * Hash an object to a hex string
     */
    private static hashObject;
}
/**
 * Tool hash manager for tracking tool changes over time
 */
export declare class ToolHashManager {
    private hashHistory;
    private maxHistorySize;
    /**
     * Add tool hash to history
     */
    addToHistory(tool: DiscoveredTool): void;
    /**
     * Get hash history for a tool
     */
    getHistory(namespacedName: string): string[];
    /**
     * Check if tool has changed since last known version
     */
    hasChanged(tool: DiscoveredTool): boolean;
    /**
     * Get tools that have changed
     */
    getChangedTools(tools: DiscoveredTool[]): DiscoveredTool[];
    /**
     * Clear history for a tool
     */
    clearHistory(namespacedName: string): void;
    /**
     * Clear all history
     */
    clearAllHistory(): void;
    /**
     * Get statistics about hash history
     */
    getStats(): {
        totalTools: number;
        averageHistorySize: number;
        maxHistorySize: number;
    };
}
//# sourceMappingURL=hashUtils.d.ts.map