import { CustomLogger } from '../types/functions.js';
import { Item } from '../types/types.js';
export interface MemoryCacheOptions {
    maxSizeInMb: number;
    ttlms: number;
}
export declare class MemoryCacheItem {
    private item;
    private expiresAt;
    constructor(item: Item, expiresAt: number);
    isExpired(now: number): boolean;
    setAccess(now: number, ttl: number): void;
    getItem(): Item;
    done(now: number): boolean;
}
export declare class MemoryCache {
    private isGathered;
    private references;
    private cache;
    private options;
    private logger;
    private disposed;
    private currentSize;
    private timer?;
    constructor(options: MemoryCacheOptions, logger: CustomLogger);
    add(item: Item, requestItem: (id: string) => void, testNow?: number): void;
    get(id: string): Item | undefined;
    scanForReferences(data: unknown, requestItem: (id: string) => void): void;
    private resetGlobalTimer;
    private now;
    cleanCache(testNow?: number): void;
    compareMaybeBasesByReferences(id1: string, id2: string): number;
    dispose(): void;
}
//# sourceMappingURL=MemoryCache.d.ts.map