/**
 * A simple LRU (Least Recently Used) cache implementation
 */
export declare class LRUCache<K, V> {
    private cache;
    private readonly maxSize;
    constructor(maxSize: number);
    get(key: K): V | undefined;
    set(key: K, value: V): void;
    has(key: K): boolean;
    delete(key: K): boolean;
    clear(): void;
    get size(): number;
}
/**
 * Size-aware LRU cache that tracks memory usage in bytes
 * Evicts entries when total size exceeds the maximum
 */
export declare class SizeAwareLRUCache<K> {
    private cache;
    private sizes;
    private currentSize;
    private readonly maxSizeBytes;
    constructor(maxSizeBytes: number);
    get(key: K): Promise<ArrayBuffer> | undefined;
    set(key: K, value: Promise<ArrayBuffer>): void;
    private evictIfNecessary;
    has(key: K): boolean;
    delete(key: K): boolean;
    clear(): void;
    get size(): number;
    get currentSizeBytes(): number;
    get maxSize(): number;
}
