/** * 类型声明 —— 实现在 bounded.js(三平台共用,逐字节相同)。 * * DSH 插件是 TypeScript,import 一个纯 JS 模块需要这份声明才能过 tsc。 * 声明与实现分开维护有分叉风险,所以这里只描述**插件真正调用的**那些成员, * 少写一个方法会在编译期被抓到,而多写一个不存在的方法不会 —— 后者靠 * bounded.test.mjs 里那些逐方法的断言兜住。 */ /** 已投递邮件 id 的记忆上限。 */ export const MAX_TRACKED_MAILS: number; /** 会话级映射的条目上限。 */ export const MAX_TRACKED_SESSIONS: number; /** 有界 Map,超过上限时丢弃最久未访问的条目。 */ export class BoundedMap { constructor(limit: number); readonly limit: number; readonly size: number; /** 累计淘汰条数,观测用。 */ evicted: number; has(key: K): boolean; /** 取值并刷新活跃度。 */ get(key: K): V | undefined; /** 取值但不刷新活跃度。 */ peek(key: K): V | undefined; set(key: K, value: V): this; delete(key: K): boolean; clear(): void; keys(): IterableIterator; values(): IterableIterator; entries(): IterableIterator<[K, V]>; [Symbol.iterator](): IterableIterator<[K, V]>; } /** 有界 Set,超过上限时丢弃最久未访问的成员。 */ export class BoundedSet { constructor(limit: number); readonly limit: number; readonly size: number; evicted: number; /** 判断存在并刷新活跃度。 */ has(value: T): boolean; /** 判断存在但不刷新活跃度。 */ peek(value: T): boolean; add(value: T): this; delete(value: T): boolean; clear(): void; values(): IterableIterator; [Symbol.iterator](): IterableIterator; }