/** 键值对 */ export declare class KeyValue { private keyToValue; private valueToKey; /** * `keys`和`values`数组中可以有相同的值, 若存在相同值, 则index越小的优先级越高 */ constructor(keys: K[], values: V[]); toKey(value: V): K; toValue(key: K): V; /** * 通过value查找key * @param equals value的比较函数 * @returns 未找到返回空 */ findKey(value: V, equals?: (a: V, b: V) => boolean): K | undefined; } export type KeySelector = (this: T) => K; /** 用key快速查找元素的数组 */ export declare class FastFindValues { values: readonly T[]; private maxSize4Debug; private map; constructor(values: readonly T[], maxSize4Debug?: number); /** 获取保存key-value映射的Map */ getValueMap(keySelector: KeySelector): Map; /** * 直接用key获取value * @param keySelector 从T中读取key的方法, 会用它当key, 缓存结果, 故多次调用需要使用相同的keySelector对象, 不要每次创建新的, 推荐直接使用T.prototype.getXxx作为keySelector */ getOrNull(keySelector: KeySelector, key: K): T | undefined; get(keySelector: KeySelector, key: K): T; } /** 缓存的值 */ export declare class CachedValue { private creator; private value; constructor(creator: () => T); get(): T; } //# sourceMappingURL=values.d.ts.map