import { type PromptContext } from './types.js'; /** * Represents a cached prompt entry with metadata */ export interface CacheEntry { assembledPrompt: string; metadata: { files: string[]; tokenCount?: number; assemblyTimeMs: number; }; } /** * Statistics about cache usage */ export interface CacheStats { entryCount: number; totalSizeMB: number; maxSizeMB: number; utilizationPercent: number; averageEntrySizeKB: number; totalAccesses: number; mostAccessedKey: string | null; mostAccessedCount: number; } /** * In-memory prompt cache with LRU eviction */ export declare class PromptCache { private cache; private totalSize; private maxSize; private accessOrder; private requestedSizeMB; constructor(maxSizeMB?: number); /** * Generate a unique cache key from context */ generateKey(context: PromptContext | null | undefined): string; /** * Store a prompt in the cache */ set(context: PromptContext, prompt: string, metadata: CacheEntry['metadata']): void; /** * Retrieve a cached prompt */ get(context: PromptContext): CacheEntry | null; /** * Check if a prompt exists in cache */ has(context: PromptContext | null | undefined): boolean; /** * Clear all cached entries */ clear(): void; /** * Get the number of cached entries */ size(): number; /** * Remove a specific entry from cache */ remove(key: string | null | undefined): boolean; /** * Get cache statistics */ getStats(): CacheStats; /** * Preload cache with multiple contexts */ preload(contexts: PromptContext[] | null | undefined): number; }