import { Event } from './event'; export interface ILRULinkListNode { key: K | undefined; next: ILRULinkListNode | undefined; prev: ILRULinkListNode | undefined; } /** * 自带LRU清理的Map * 双向链表 + Map */ export declare class LRUMap extends Map { private hardLimit; private softLimit; private _onDidDelete; readonly onDidDelete: Event<{ key: K; value: V; }>; readonly onKeyDidDelete: (key: K, listener: (e: { key: K; value: V; }) => any, thisArgs?: any, disposables?: import("./disposable").IDisposable[] | undefined) => import("./disposable").IDisposable; private head; private tail; private map; constructor(hardLimit: number, softLimit: number); private markRecentUsed; get(key: K): V | undefined; set(key: K, value: V): this; putHead(node: ILRULinkListNode): void; protected deleteNodeFromList(node: ILRULinkListNode): void; delete(key: K): boolean; shrink(): void; } /** * 支持过期时间 */ export declare class StaleLRUMap extends LRUMap { private maxAge; /** * * @param hardLimit * @param softLimit * @param maxAge the unit is milliseconds */ constructor(hardLimit: number, softLimit: number, maxAge: number); get(key: K): V | undefined; set(key: K, value: V): this; private _isStale; } //# sourceMappingURL=lru-map.d.ts.map