/**
 * Cache Configuration
 *
 * Centralized configuration for all caching subsystems.
 * Provides sensible defaults based on research and best practices.
 */
export interface CacheLayerConfig {
    enabled: boolean;
    ttlMs: number;
    maxEntries: number;
    persistToDisk: boolean;
    compressionEnabled: boolean;
}
export interface UnifiedCacheConfig {
    /** Global cache enable/disable */
    enabled: boolean;
    /** Base directory for persistent cache files */
    cacheDir: string;
    /** LLM Response Cache - caches similar queries to reduce API calls */
    llmResponse: CacheLayerConfig & {
        similarityThreshold: number;
        minTokensToCache: number;
        costPerMillion: number;
    };
    /** File Content Cache - caches file reads with hash-based invalidation */
    fileContent: CacheLayerConfig & {
        maxFileSizeBytes: number;
        watchForChanges: boolean;
    };
    /** Embedding Cache - caches vector embeddings for RAG */
    embedding: CacheLayerConfig & {
        dimension: number;
        modelName: string;
    };
    /** Search Results Cache - caches search/grep results */
    searchResults: CacheLayerConfig & {
        invalidateOnFileChange: boolean;
    };
    /** Tool Results Cache - caches deterministic tool calls */
    toolResults: CacheLayerConfig & {
        cacheableTools: string[];
        excludePatterns: RegExp[];
    };
}
/**
 * Default cache configuration
 */
export declare const DEFAULT_CACHE_CONFIG: UnifiedCacheConfig;
/**
 * Performance-optimized config (aggressive caching)
 */
export declare const PERFORMANCE_CACHE_CONFIG: Partial<UnifiedCacheConfig>;
/**
 * Memory-efficient config (reduced caching)
 */
export declare const MEMORY_EFFICIENT_CACHE_CONFIG: Partial<UnifiedCacheConfig>;
/**
 * Get environment-aware cache config
 */
export declare function getCacheConfig(): UnifiedCacheConfig;
