/**
 * Adaptive cache with usage-based TTL and priority eviction
 */
export interface CacheEntry<V> {
    value: V;
    lastAccessed: Date;
    lastModified: Date;
    usageCount: number;
    priority: number;
}
export interface AdaptiveCacheOptions {
    maxEntries: number;
    defaultTTL?: number;
    hotThreshold?: number;
    coldEvictionRatio?: number;
}
export declare class AdaptiveCache<K, V> {
    private cache;
    private options;
    private evictionInterval;
    constructor(options: AdaptiveCacheOptions);
    /**
     * Get value from cache with adaptive TTL
     */
    get(key: K): V | null;
    /**
     * Set value in cache
     */
    set(key: K, value: V, priority?: number): void;
    /**
     * Delete value from cache
     */
    delete(key: K): boolean;
    /**
     * Clear all entries
     */
    clear(): void;
    /**
     * Get cache size
     */
    get size(): number;
    /**
     * Calculate adaptive TTL based on usage patterns
     */
    private getAdaptiveTTL;
    /**
     * Evict entries based on priority and access patterns
     */
    private evict;
    /**
     * Start periodic eviction
     */
    private startEviction;
    /**
     * Stop eviction interval
     */
    stop(): void;
}
/**
 * Create a cache instance with common defaults for pattern matching
 */
export declare function createPatternCache(maxEntries?: number): AdaptiveCache<string, any>;
//# sourceMappingURL=adaptive-cache.d.ts.map