export interface CacheEntry<T> {
    data: T;
    timestamp: number;
    hits: number;
}
export interface CacheOptions {
    maxSize: number;
    ttl: number;
    onEvict?: (key: string, value: CacheEntry<unknown>) => void;
}
export interface CacheStats {
    hits: number;
    misses: number;
    evictions: number;
    size: number;
    maxSize: number;
}
export interface ICache<T> {
    get(key: string): T | undefined;
    set(key: string, value: T): void;
    has(key: string): boolean;
    delete(key: string): boolean;
    clear(): void;
    size(): number;
    stats(): CacheStats;
}
//# sourceMappingURL=cache.d.ts.map