/**
 * API caching implementation for reducing redundant network requests.
 * Backed by a shared LRU cache to prevent unbounded memory growth.
 */
import { type CacheStats } from './LRUCache.js';
export interface APICacheOptions {
    maxEntries?: number;
    maxMemoryMB?: number;
    ttlMs?: number;
    onEviction?: (key: string, value: any) => void;
}
export declare class APICache {
    private cache;
    constructor(options?: APICacheOptions);
    /**
     * Retrieve cached data if still valid.
     */
    get<T = any>(key: string): T | null;
    /**
     * Cache data with automatic eviction and TTL handling.
     */
    set<T = any>(key: string, data: T): void;
    /**
     * Clear all cached entries.
     */
    clear(): void;
    /**
     * Get current cache size.
     */
    size(): number;
    /**
     * Inspect cache statistics for observability/testing.
     */
    getStats(): CacheStats;
}
//# sourceMappingURL=APICache.d.ts.map