export interface LRUCacheNodeOptions<TKey, TValue> {
    next?: LRUCacheNode<TKey, TValue> | null;
    prev?: LRUCacheNode<TKey, TValue> | null;
    entryExpirationTimeInMS?: number | null;
    onEntryEvicted?: (evictedEntry: {
        key: TKey;
        value: TValue;
        isExpired: boolean;
    }) => void;
    onEntryMarkedAsMostRecentlyUsed?: (entry: {
        key: TKey;
        value: TValue;
    }) => void;
    clone?: boolean;
    cloneFn?: (value: TValue) => TValue;
}
export declare class LRUCacheNode<TKey, TValue> {
    readonly key: TKey;
    readonly created: number;
    readonly entryExpirationTimeInMS: number | null;
    next: LRUCacheNode<TKey, TValue> | null;
    prev: LRUCacheNode<TKey, TValue> | null;
    private readonly internalValue;
    private readonly onEntryEvicted?;
    private readonly onEntryMarkedAsMostRecentlyUsed?;
    private readonly cloneFn;
    private readonly clone;
    constructor(key: TKey, value: TValue, options?: LRUCacheNodeOptions<TKey, TValue>);
    get value(): TValue;
    get isExpired(): boolean;
    invokeOnEvicted(): void;
    invokeOnEntryMarkedAsMostRecentlyUsed(): void;
    private defaultClone;
}
//# sourceMappingURL=LRUCacheNode.d.ts.map