import type { McpTool, McpResource, ServerEntry, ToolMetadata } from "./types.js";
export interface CachedTool {
    name: string;
    description?: string;
    inputSchema?: unknown;
    uiResourceUri?: string;
    uiStreamMode?: "eager" | "stream-first";
}
export interface CachedResource {
    uri: string;
    name: string;
    description?: string;
}
export interface ServerCacheEntry {
    configHash: string;
    tools: CachedTool[];
    resources: CachedResource[];
    cachedAt: number;
}
export interface MetadataCache {
    version: number;
    servers: Record<string, ServerCacheEntry>;
}
export declare function getMetadataCachePath(): string;
export declare function loadMetadataCache(): MetadataCache | null;
export declare function saveMetadataCache(cache: MetadataCache): void;
export declare function computeServerHash(definition: ServerEntry): string;
export declare function isServerCacheValid(entry: ServerCacheEntry, definition: ServerEntry, maxAgeMs?: number): boolean;
export declare function reconstructToolMetadata(serverName: string, entry: ServerCacheEntry, prefix: "server" | "none" | "short", definition: Pick<ServerEntry, "exposeResources" | "excludeTools">): ToolMetadata[];
export declare function serializeTools(tools: McpTool[]): CachedTool[];
export declare function serializeResources(resources: McpResource[]): CachedResource[];
//# sourceMappingURL=metadata-cache.d.ts.map