/**
 * Tool cache implementation using node-cache with TTL support
 */
import { EventEmitter } from "events";
import { IToolCache, DiscoveredTool, DiscoveryConfig } from "./types.js";
/**
 * Tool cache implementation using node-cache with TTL and server indexing
 */
export declare class ToolCache extends EventEmitter implements IToolCache {
    private cache;
    private serverIndex;
    private stats;
    private config;
    constructor(config: DiscoveryConfig);
    /**
     * Store a tool in the cache
     */
    set(key: string, tool: DiscoveredTool, ttl?: number): Promise<void>;
    /**
     * Retrieve a tool from the cache
     */
    get(key: string): Promise<DiscoveredTool | null>;
    /**
     * Check if a tool exists in cache
     */
    has(key: string): Promise<boolean>;
    /**
     * Remove a tool from cache
     */
    delete(key: string): Promise<void>;
    /**
     * Clear all tools for a server
     */
    clearServer(serverName: string): Promise<void>;
    /**
     * Clear entire cache
     */
    clear(): Promise<void>;
    /**
     * Get tools by server name
     */
    getToolsByServer(serverName: string): DiscoveredTool[];
    /**
     * Get all cached tools
     */
    getAllTools(): DiscoveredTool[];
    /**
     * Get cache statistics
     */
    getStats(): Promise<{
        size: number;
        hitRate: number;
        missRate: number;
    }>;
    /**
     * Get internal cache statistics
     */
    getCacheStats(): {
        keys: number;
        serverCount: number;
        hits: number;
        misses: number;
        sets: number;
        deletes: number;
    };
    /**
     * Manually trigger cleanup of expired entries
     */
    cleanupExpiredEntries(): Promise<void>;
    /**
     * Destroy the cache and cleanup resources
     */
    destroy(): void;
    /**
     * Remove a key from the server index
     */
    private removeFromServerIndex;
}
//# sourceMappingURL=cache.d.ts.map