export class TupleMap { private map = new Map>(); has(key1: K1, key2: K2) { return this.map.has(key1) && this.map.get(key1)!.has(key2); } get(key1: K1, key2: K2) { return this.map.get(key1)?.get(key2); } set(key1: K1, key2: K2, value: V) { if (!this.map.has(key1)) { this.map.set(key1, new Map()); } this.map.get(key1)!.set(key2, value); } clear() { this.map.clear(); } }