import "./_dnt.polyfills.js"; import type { PromiseMaybe } from "./promise.js"; /** * 一个极简的 Least Recently Used 缓存 * @example * ```ts * const lrc = new Lrc() * function getTime() { * lrc.getOrPut('time', ()=>{ * return Date.now() * }) * } * const time1 = getTime() * // hit cache * const time2 = getTime() * time1 === time2 * * // remove all cache * lrc.clear(0) * * const time3 = getTime() * time1 !== time3 * ``` */ export declare class Lrc { #private; cacheSize: number; clearThreshold: number; constructor(cacheSize?: number, clearThreshold?: number); /** * 读取缓存,否则创建 */ getOrPut(key: K, getValue: () => V): V; /** * 读取缓存,否则异步创建。 * 异步创建过程中会加锁,不会同时执行 */ getOrPutAsync(key: K, getValue: () => PromiseMaybe>): Promise>; /** * 写入缓存 */ set(key: K, value: V): this; /** * 删除缓存 */ delete(key: K): boolean; /** * 判断是否存在缓存 */ has(key: K): boolean; /** * 尝试清理缓存,如果到达清理阈值的话 */ tryClear(): void; /** * 清理缓存 * @param keepSize 要保留的缓存数量 */ clear(keepSize?: number): void; } //# sourceMappingURL=lrc.d.ts.map