import { CacheOptions, CacheStats, ICache } from '../types/cache';
import { Lifelog, ListLifelogsOptions, SearchOptions } from '../types/limitless';
export declare class LRUCache<T> implements ICache<T> {
    private cache;
    private options;
    private _stats;
    constructor(options?: Partial<CacheOptions>);
    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;
    private isExpired;
    private evictOldest;
}
export declare const lifelogCache: LRUCache<Lifelog>;
export declare const lifelogArrayCache: LRUCache<Lifelog[]>;
export declare const searchCache: LRUCache<Lifelog[]>;
export declare function buildLifelogCacheKey(id: string): string;
export declare function buildDateCacheKey(date: string, options?: ListLifelogsOptions): string;
export declare function buildSearchCacheKey(searchTerm: string, options?: SearchOptions): string;
export declare function buildRecentCacheKey(options?: ListLifelogsOptions): string;
//# sourceMappingURL=cache.d.ts.map