max-priority-queue-typed 2.5.0 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/cjs/index.cjs +294 -0
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs-legacy/index.cjs +294 -0
  4. package/dist/cjs-legacy/index.cjs.map +1 -1
  5. package/dist/esm/index.mjs +294 -0
  6. package/dist/esm/index.mjs.map +1 -1
  7. package/dist/esm-legacy/index.mjs +294 -0
  8. package/dist/esm-legacy/index.mjs.map +1 -1
  9. package/dist/types/data-structures/base/index.d.ts +1 -0
  10. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  11. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  12. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +252 -0
  13. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +294 -0
  14. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +527 -2
  15. package/dist/types/data-structures/binary-tree/bst.d.ts +505 -1
  16. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +399 -0
  17. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +126 -1
  18. package/dist/types/data-structures/binary-tree/tree-map.d.ts +2881 -382
  19. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +2867 -347
  20. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2328 -312
  21. package/dist/types/data-structures/binary-tree/tree-set.d.ts +2671 -277
  22. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  23. package/dist/types/data-structures/graph/directed-graph.d.ts +210 -0
  24. package/dist/types/data-structures/graph/undirected-graph.d.ts +189 -0
  25. package/dist/types/data-structures/hash/hash-map.d.ts +241 -10
  26. package/dist/types/data-structures/heap/heap.d.ts +294 -0
  27. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +360 -3
  28. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +318 -3
  29. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +380 -2
  30. package/dist/types/data-structures/matrix/matrix.d.ts +168 -0
  31. package/dist/types/data-structures/queue/deque.d.ts +319 -4
  32. package/dist/types/data-structures/queue/queue.d.ts +252 -0
  33. package/dist/types/data-structures/stack/stack.d.ts +210 -0
  34. package/dist/types/data-structures/trie/trie.d.ts +256 -4
  35. package/dist/types/interfaces/graph.d.ts +1 -1
  36. package/dist/types/types/common.d.ts +2 -2
  37. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  38. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  39. package/dist/types/types/utils/validate-type.d.ts +4 -4
  40. package/dist/umd/max-priority-queue-typed.js +294 -0
  41. package/dist/umd/max-priority-queue-typed.js.map +1 -1
  42. package/dist/umd/max-priority-queue-typed.min.js.map +1 -1
  43. package/package.json +2 -2
  44. package/src/data-structures/base/index.ts +1 -0
  45. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  46. package/src/data-structures/base/linear-base.ts +3 -3
  47. package/src/data-structures/binary-tree/avl-tree.ts +252 -0
  48. package/src/data-structures/binary-tree/binary-indexed-tree.ts +295 -1
  49. package/src/data-structures/binary-tree/binary-tree.ts +527 -2
  50. package/src/data-structures/binary-tree/bst.ts +505 -1
  51. package/src/data-structures/binary-tree/red-black-tree.ts +399 -0
  52. package/src/data-structures/binary-tree/segment-tree.ts +127 -2
  53. package/src/data-structures/binary-tree/tree-map.ts +2958 -459
  54. package/src/data-structures/binary-tree/tree-multi-map.ts +3069 -549
  55. package/src/data-structures/binary-tree/tree-multi-set.ts +2476 -460
  56. package/src/data-structures/binary-tree/tree-set.ts +2816 -422
  57. package/src/data-structures/graph/abstract-graph.ts +4 -4
  58. package/src/data-structures/graph/directed-graph.ts +210 -0
  59. package/src/data-structures/graph/undirected-graph.ts +189 -0
  60. package/src/data-structures/hash/hash-map.ts +246 -15
  61. package/src/data-structures/heap/heap.ts +294 -0
  62. package/src/data-structures/linked-list/doubly-linked-list.ts +360 -3
  63. package/src/data-structures/linked-list/singly-linked-list.ts +318 -3
  64. package/src/data-structures/linked-list/skip-linked-list.ts +380 -2
  65. package/src/data-structures/matrix/matrix.ts +169 -1
  66. package/src/data-structures/queue/deque.ts +320 -5
  67. package/src/data-structures/queue/queue.ts +252 -0
  68. package/src/data-structures/stack/stack.ts +210 -0
  69. package/src/data-structures/trie/trie.ts +257 -5
  70. package/src/interfaces/graph.ts +1 -1
  71. package/src/types/common.ts +2 -2
  72. package/src/types/data-structures/heap/heap.ts +1 -0
  73. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  74. package/src/types/utils/validate-type.ts +4 -4
@@ -93,14 +93,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
93
93
 
94
94
 
95
95
 
96
- * @example
97
- * // Check empty
98
- * console.log(new TreeMap().isEmpty()); // true;
99
- */
100
- isEmpty(): boolean;
101
- /**
102
- * Set or overwrite a value for a key.
103
- * @remarks Expected time O(log n)
104
96
 
105
97
 
106
98
 
@@ -148,31 +140,15 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
148
140
 
149
141
 
150
142
 
151
- * @example
152
- * // Sorted dictionary for a contact book
153
- * const contacts = new TreeMap<string, string>([
154
- * ['Bob', '555-0102'],
155
- * ['Alice', '555-0101'],
156
- * ['Charlie', '555-0103']
157
- * ]);
158
- *
159
- * // Contacts are automatically sorted by name
160
- * console.log([...contacts.keys()]); // ['Alice', 'Bob', 'Charlie'];
161
- * console.log(contacts.get('Bob')); // '555-0102';
162
- *
163
- * // Find the first contact alphabetically after 'B'
164
- * console.log(contacts.ceiling('B')); // ['Bob', '555-0102'];
165
- *
166
- * // Find contacts in range
167
- * console.log(contacts.rangeSearch(['Alice', 'Bob'])); // [
168
- * // ['Alice', '555-0101'],
169
- * // ['Bob', '555-0102']
170
- * // ];
171
- */
172
- set(key: K, value: V | undefined): this;
173
- /**
174
- * Get the value under a key.
175
- * @remarks Expected time O(log n)
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
176
152
 
177
153
 
178
154
 
@@ -223,20 +199,12 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
223
199
 
224
200
 
225
201
  * @example
226
- * // Configuration registry with typed lookups
227
- * const config = new TreeMap<string, number>([
228
- * ['maxRetries', 3],
229
- * ['timeout', 5000],
230
- * ['poolSize', 10]
231
- * ]);
232
- *
233
- * console.log(config.get('timeout')); // 5000;
234
- * console.log(config.get('missing')); // undefined;
235
- * console.log(config.size); // 3;
202
+ * // Check empty
203
+ * console.log(new TreeMap().isEmpty()); // true;
236
204
  */
237
- get(key: K): V | undefined;
205
+ isEmpty(): boolean;
238
206
  /**
239
- * Test whether a key exists.
207
+ * Set or overwrite a value for a key.
240
208
  * @remarks Expected time O(log n)
241
209
 
242
210
 
@@ -287,22 +255,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
287
255
 
288
256
 
289
257
 
290
- * @example
291
- * // Feature flag checking
292
- * const flags = new TreeMap<string, boolean>([
293
- * ['darkMode', true],
294
- * ['betaFeature', false],
295
- * ['notifications', true]
296
- * ]);
297
- *
298
- * console.log(flags.has('darkMode')); // true;
299
- * console.log(flags.has('unknownFlag')); // false;
300
- */
301
- has(key: K): boolean;
302
- /**
303
- * Delete a key.
304
- * @returns `true` if the key existed; otherwise `false`.
305
- * @remarks Expected time O(log n)
306
258
 
307
259
 
308
260
 
@@ -352,22 +304,22 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
352
304
 
353
305
 
354
306
 
355
- * @example
356
- * // Session management with expiry
357
- * const sessions = new TreeMap<string, number>([
358
- * ['sess_abc', Date.now()],
359
- * ['sess_def', Date.now()],
360
- * ['sess_ghi', Date.now()]
361
- * ]);
362
- *
363
- * console.log(sessions.size); // 3;
364
- * sessions.delete('sess_def');
365
- * console.log(sessions.has('sess_def')); // false;
366
- * console.log(sessions.size); // 2;
367
- */
368
- delete(key: K): boolean;
369
- /**
370
- * Remove all entries.
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
371
323
 
372
324
 
373
325
 
@@ -407,14 +359,32 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
407
359
 
408
360
 
409
361
  * @example
410
- * // Remove all
411
- * const tm = new TreeMap<number, string>([[1, 'a']]);
412
- * tm.clear();
413
- * console.log(tm.isEmpty()); // true;
362
+ * // Sorted dictionary for a contact book
363
+ * const contacts = new TreeMap<string, string>([
364
+ * ['Bob', '555-0102'],
365
+ * ['Alice', '555-0101'],
366
+ * ['Charlie', '555-0103']
367
+ * ]);
368
+ *
369
+ * // Contacts are automatically sorted by name
370
+ * console.log([...contacts.keys()]); // ['Alice', 'Bob', 'Charlie'];
371
+ * console.log(contacts.get('Bob')); // '555-0102';
372
+ *
373
+ * // Find the first contact alphabetically after 'B'
374
+ * console.log(contacts.ceiling('B')); // ['Bob', '555-0102'];
375
+ *
376
+ * // Find contacts in range
377
+ * console.log(contacts.rangeSearch(['Alice', 'Bob'])); // [
378
+ * // ['Alice', '555-0101'],
379
+ * // ['Bob', '555-0102']
380
+ * // ];
414
381
  */
415
- clear(): void;
382
+ set(key: K, value: V | undefined): this;
416
383
  /**
417
- * Iterate over keys in ascending order.
384
+ * Get the value under a key.
385
+ * @remarks Expected time O(log n)
386
+
387
+
418
388
 
419
389
 
420
390
 
@@ -453,17 +423,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
453
423
 
454
424
 
455
425
 
456
- * @example
457
- * // Get sorted keys
458
- * const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a']]);
459
- * console.log([...tm.keys()]); // [1, 3];
460
- */
461
- keys(): IterableIterator<K>;
462
- private _entryFromKey;
463
- /**
464
- * Iterate over values in ascending key order.
465
- *
466
- * Note: values may be `undefined` (TreeMap allows storing `undefined`, like native `Map`).
467
426
 
468
427
 
469
428
 
@@ -502,16 +461,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
502
461
 
503
462
 
504
463
 
505
- * @example
506
- * // Get values in key order
507
- * const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
508
- * console.log([...tm.values()]); // ['a', 'b'];
509
- */
510
- values(): IterableIterator<V | undefined>;
511
- /**
512
- * Iterate over `[key, value]` entries in ascending key order.
513
- *
514
- * Note: values may be `undefined`.
515
464
 
516
465
 
517
466
 
@@ -550,17 +499,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
550
499
 
551
500
 
552
501
 
553
- * @example
554
- * // Iterate key-value pairs
555
- * const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a'], [2, 'b']]);
556
- * console.log([...tm.entries()]); // [[1, 'a'], [2, 'b'], [3, 'c']];
557
- */
558
- entries(): IterableIterator<[K, V | undefined]>;
559
- [Symbol.iterator](): IterableIterator<[K, V | undefined]>;
560
- /**
561
- * Visit each entry in ascending key order.
562
- *
563
- * Note: callback value may be `undefined`.
564
502
 
565
503
 
566
504
 
@@ -600,18 +538,25 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
600
538
 
601
539
 
602
540
  * @example
603
- * // Execute for each entry
604
- * const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
605
- * const pairs: string[] = [];
606
- * tm.forEach((v, k) => pairs.push(`${k}:${v}`));
607
- * console.log(pairs); // ['1:a', '2:b'];
541
+ * // Configuration registry with typed lookups
542
+ * const config = new TreeMap<string, number>([
543
+ * ['maxRetries', 3],
544
+ * ['timeout', 5000],
545
+ * ['poolSize', 10]
546
+ * ]);
547
+ *
548
+ * console.log(config.get('timeout')); // 5000;
549
+ * console.log(config.get('missing')); // undefined;
550
+ * console.log(config.size); // 3;
608
551
  */
609
- forEach(cb: (value: V | undefined, key: K, map: TreeMap<K, V>) => void, thisArg?: any): void;
552
+ get(key: K): V | undefined;
610
553
  /**
611
- * Create a new TreeMap by mapping each entry to a new `[key, value]` entry.
612
- *
613
- * This mirrors `RedBlackTree.map`: mapping produces a new ordered container.
614
- * @remarks Time O(n log n) expected, Space O(n)
554
+ * Test whether a key exists.
555
+ * @remarks Expected time O(log n)
556
+
557
+
558
+
559
+
615
560
 
616
561
 
617
562
 
@@ -650,18 +595,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
650
595
 
651
596
 
652
597
 
653
- * @example
654
- * // Transform entries
655
- * const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
656
- * const doubled = tm.map((v, k) => [k, (v ?? 0) * 2] as [number, number]);
657
- * console.log([...doubled.values()]); // [20, 40];
658
- */
659
- map<MK, MV>(callbackfn: TreeMapEntryCallback<K, V, [MK, MV], TreeMap<K, V>>, options?: Omit<TreeMapOptions<MK, MV>, 'toEntryFn'> & {
660
- comparator?: (a: MK, b: MK) => number;
661
- }, thisArg?: unknown): TreeMap<MK, MV>;
662
- /**
663
- * Create a new TreeMap containing only entries that satisfy the predicate.
664
- * @remarks Time O(n log n) expected, Space O(n)
665
598
 
666
599
 
667
600
 
@@ -700,16 +633,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
700
633
 
701
634
 
702
635
 
703
- * @example
704
- * // Filter entries
705
- * const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
706
- * const filtered = tm.filter((v, k) => k > 1);
707
- * console.log([...filtered.keys()]); // [2, 3];
708
- */
709
- filter(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): TreeMap<K, V>;
710
- /**
711
- * Reduce entries into a single accumulator.
712
- * @remarks Time O(n), Space O(1)
713
636
 
714
637
 
715
638
 
@@ -748,15 +671,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
748
671
 
749
672
 
750
673
 
751
- * @example
752
- * // Aggregate values
753
- * const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
754
- * console.log(tm.reduce((acc, v) => acc + (v ?? 0), 0)); // 30;
755
- */
756
- reduce<A>(callbackfn: TreeMapReduceCallback<K, V, A, TreeMap<K, V>>, initialValue: A): A;
757
- /**
758
- * Test whether all entries satisfy a predicate.
759
- * @remarks Time O(n), Space O(1)
760
674
 
761
675
 
762
676
 
@@ -794,14 +708,27 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
794
708
 
795
709
 
796
710
  * @example
797
- * // Test all entries
798
- * const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
799
- * console.log(tm.every((v, k) => k > 0)); // true;
711
+ * // Feature flag checking
712
+ * const flags = new TreeMap<string, boolean>([
713
+ * ['darkMode', true],
714
+ * ['betaFeature', false],
715
+ * ['notifications', true]
716
+ * ]);
717
+ *
718
+ * console.log(flags.has('darkMode')); // true;
719
+ * console.log(flags.has('unknownFlag')); // false;
800
720
  */
801
- every(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
721
+ has(key: K): boolean;
802
722
  /**
803
- * Test whether any entry satisfies a predicate.
804
- * @remarks Time O(n), Space O(1)
723
+ * Delete a key.
724
+ * @returns `true` if the key existed; otherwise `false`.
725
+ * @remarks Expected time O(log n)
726
+
727
+
728
+
729
+
730
+
731
+
805
732
 
806
733
 
807
734
 
@@ -838,16 +765,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
838
765
 
839
766
 
840
767
 
841
- * @example
842
- * // Test any entry
843
- * const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
844
- * console.log(tm.some((v, k) => k === 2)); // true;
845
- */
846
- some(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
847
- /**
848
- * Find the first entry that satisfies a predicate.
849
- * @returns The first matching `[key, value]` tuple, or `undefined`.
850
- * @remarks Time O(n), Space O(1)
851
768
 
852
769
 
853
770
 
@@ -884,15 +801,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
884
801
 
885
802
 
886
803
 
887
- * @example
888
- * // Find matching entry
889
- * const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
890
- * console.log(tm.find(v => v === 'b')?.[0]); // 2;
891
- */
892
- find(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): [K, V | undefined] | undefined;
893
- /**
894
- * Materialize the map into an array of `[key, value]` tuples.
895
- * @remarks Time O(n), Space O(n)
896
804
 
897
805
 
898
806
 
@@ -931,15 +839,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
931
839
 
932
840
 
933
841
 
934
- * @example
935
- * // Convert to array
936
- * const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
937
- * console.log(tm.toArray()); // [[1, 'a'], [2, 'b']];
938
- */
939
- toArray(): Array<[K, V | undefined]>;
940
- /**
941
- * Print a human-friendly representation.
942
- * @remarks Time O(n), Space O(n)
943
842
 
944
843
 
945
844
 
@@ -979,13 +878,44 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
979
878
 
980
879
 
981
880
  * @example
982
- * // Display tree
983
- * const tm = new TreeMap<number, string>([[1, 'a']]);
984
- * expect(() => tm.print()).not.toThrow();
881
+ * // Session management with expiry
882
+ * const sessions = new TreeMap<string, number>([
883
+ * ['sess_abc', Date.now()],
884
+ * ['sess_def', Date.now()],
885
+ * ['sess_ghi', Date.now()]
886
+ * ]);
887
+ *
888
+ * console.log(sessions.size); // 3;
889
+ * sessions.delete('sess_def');
890
+ * console.log(sessions.has('sess_def')); // false;
891
+ * console.log(sessions.size); // 2;
985
892
  */
986
- print(): void;
893
+ delete(key: K): boolean;
987
894
  /**
988
- * Smallest entry by key.
895
+ * Remove all entries.
896
+
897
+
898
+
899
+
900
+
901
+
902
+
903
+
904
+
905
+
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+
916
+
917
+
918
+
989
919
 
990
920
 
991
921
 
@@ -997,36 +927,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
997
927
 
998
928
 
999
929
 
1000
- * @example
1001
- * // Leaderboard with ranked scores
1002
- * // Use score as key (descending), player name as value
1003
- * const leaderboard = new TreeMap<number, string>([], {
1004
- * comparator: (a, b) => b - a // descending
1005
- * });
1006
- *
1007
- * leaderboard.set(1500, 'Alice');
1008
- * leaderboard.set(2200, 'Bob');
1009
- * leaderboard.set(1800, 'Charlie');
1010
- * leaderboard.set(2500, 'Diana');
1011
- *
1012
- * // Top 3 players (first 3 in descending order)
1013
- * const top3 = [...leaderboard.entries()].slice(0, 3);
1014
- * console.log(top3); // [
1015
- * // [2500, 'Diana'],
1016
- * // [2200, 'Bob'],
1017
- * // [1800, 'Charlie']
1018
- * // ];
1019
- *
1020
- * // Highest scorer
1021
- * console.log(leaderboard.first()); // [2500, 'Diana'];
1022
- *
1023
- * // Remove lowest scorer
1024
- * console.log(leaderboard.pollLast()); // [1500, 'Alice'];
1025
- * console.log(leaderboard.size); // 3;
1026
- */
1027
- first(): [K, V | undefined] | undefined;
1028
- /**
1029
- * Largest entry by key.
1030
930
 
1031
931
 
1032
932
 
@@ -1038,20 +938,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
1038
938
 
1039
939
 
1040
940
 
1041
- * @example
1042
- * // Access the maximum entry
1043
- * const scores = new TreeMap<number, string>([
1044
- * [85, 'Bob'],
1045
- * [92, 'Alice'],
1046
- * [78, 'Charlie']
1047
- * ]);
1048
- *
1049
- * console.log(scores.last()); // [92, 'Alice'];
1050
- * console.log(scores.first()); // [78, 'Charlie'];
1051
- */
1052
- last(): [K, V | undefined] | undefined;
1053
- /**
1054
- * Remove and return the smallest entry.
1055
941
 
1056
942
 
1057
943
 
@@ -1063,22 +949,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
1063
949
 
1064
950
 
1065
951
 
1066
- * @example
1067
- * // Process items from lowest priority
1068
- * const tasks = new TreeMap<number, string>([
1069
- * [3, 'Low'],
1070
- * [1, 'Critical'],
1071
- * [2, 'Medium']
1072
- * ]);
1073
- *
1074
- * // Process lowest priority first
1075
- * console.log(tasks.pollFirst()); // [1, 'Critical'];
1076
- * console.log(tasks.pollFirst()); // [2, 'Medium'];
1077
- * console.log(tasks.size); // 1;
1078
- */
1079
- pollFirst(): [K, V | undefined] | undefined;
1080
- /**
1081
- * Remove and return the largest entry.
1082
952
 
1083
953
 
1084
954
 
@@ -1090,22 +960,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
1090
960
 
1091
961
 
1092
962
 
1093
- * @example
1094
- * // Remove the maximum entry
1095
- * const bids = new TreeMap<number, string>([
1096
- * [100, 'Alice'],
1097
- * [150, 'Bob'],
1098
- * [120, 'Charlie']
1099
- * ]);
1100
- *
1101
- * // Remove highest bid
1102
- * console.log(bids.pollLast()); // [150, 'Bob'];
1103
- * console.log(bids.size); // 2;
1104
- * console.log(bids.last()); // [120, 'Charlie'];
1105
- */
1106
- pollLast(): [K, V | undefined] | undefined;
1107
- /**
1108
- * Smallest entry whose key is >= the given key.
1109
963
 
1110
964
 
1111
965
 
@@ -1144,41 +998,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
1144
998
 
1145
999
 
1146
1000
 
1147
- * @example
1148
- * // Event scheduler with time-based lookup
1149
- * const events = new TreeMap<Date, string>();
1150
- *
1151
- * const meeting = new Date('2024-01-15T10:00:00Z');
1152
- * const lunch = new Date('2024-01-15T12:00:00Z');
1153
- * const review = new Date('2024-01-15T15:00:00Z');
1154
- * const standup = new Date('2024-01-15T09:00:00Z');
1155
- *
1156
- * events.set(meeting, 'Team Meeting');
1157
- * events.set(lunch, 'Lunch Break');
1158
- * events.set(review, 'Code Review');
1159
- * events.set(standup, 'Daily Standup');
1160
- *
1161
- * // Events are sorted chronologically
1162
- * console.log([...events.values()]); // [
1163
- * // 'Daily Standup',
1164
- * // 'Team Meeting',
1165
- * // 'Lunch Break',
1166
- * // 'Code Review'
1167
- * // ];
1168
- *
1169
- * // Next event after 11:00
1170
- * const after11 = new Date('2024-01-15T11:00:00Z');
1171
- * console.log(events.ceiling(after11)?.[1]); // 'Lunch Break';
1172
- *
1173
- * // Events between 9:30 and 13:00
1174
- * const from = new Date('2024-01-15T09:30:00Z');
1175
- * const to = new Date('2024-01-15T13:00:00Z');
1176
- * const window = events.rangeSearch([from, to]);
1177
- * console.log(window.map(([, v]) => v)); // ['Team Meeting', 'Lunch Break'];
1178
- */
1179
- ceiling(key: K): [K, V | undefined] | undefined;
1180
- /**
1181
- * Largest entry whose key is <= the given key.
1182
1001
 
1183
1002
 
1184
1003
 
@@ -1218,24 +1037,14 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
1218
1037
 
1219
1038
 
1220
1039
  * @example
1221
- * // Find the largest key ≤ target
1222
- * const versions = new TreeMap<number, string>([
1223
- * [1, 'v1.0'],
1224
- * [3, 'v3.0'],
1225
- * [5, 'v5.0'],
1226
- * [7, 'v7.0']
1227
- * ]);
1228
- *
1229
- * // Largest version ≤ 4
1230
- * console.log(versions.floor(4)); // [3, 'v3.0'];
1231
- * // Largest version ≤ 5 (exact match)
1232
- * console.log(versions.floor(5)); // [5, 'v5.0'];
1233
- * // No version ≤ 0
1234
- * console.log(versions.floor(0)); // undefined;
1040
+ * // Remove all
1041
+ * const tm = new TreeMap<number, string>([[1, 'a']]);
1042
+ * tm.clear();
1043
+ * console.log(tm.isEmpty()); // true;
1235
1044
  */
1236
- floor(key: K): [K, V | undefined] | undefined;
1045
+ clear(): void;
1237
1046
  /**
1238
- * Smallest entry whose key is > the given key.
1047
+ * Iterate over keys in ascending order.
1239
1048
 
1240
1049
 
1241
1050
 
@@ -1274,25 +1083,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
1274
1083
 
1275
1084
 
1276
1085
 
1277
- * @example
1278
- * // Find the smallest key strictly > target
1279
- * const prices = new TreeMap<number, string>([
1280
- * [10, 'Basic'],
1281
- * [25, 'Standard'],
1282
- * [50, 'Premium'],
1283
- * [100, 'Enterprise']
1284
- * ]);
1285
- *
1286
- * // Next tier above $25
1287
- * console.log(prices.higher(25)); // [50, 'Premium'];
1288
- * // Next tier above $99
1289
- * console.log(prices.higher(99)); // [100, 'Enterprise'];
1290
- * // Nothing above $100
1291
- * console.log(prices.higher(100)); // undefined;
1292
- */
1293
- higher(key: K): [K, V | undefined] | undefined;
1294
- /**
1295
- * Largest entry whose key is < the given key.
1296
1086
 
1297
1087
 
1298
1088
 
@@ -1331,26 +1121,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
1331
1121
 
1332
1122
 
1333
1123
 
1334
- * @example
1335
- * // Find the largest key strictly < target
1336
- * const temps = new TreeMap<number, string>([
1337
- * [0, 'Freezing'],
1338
- * [20, 'Cool'],
1339
- * [30, 'Warm'],
1340
- * [40, 'Hot']
1341
- * ]);
1342
- *
1343
- * // Largest reading below 30
1344
- * console.log(temps.lower(30)); // [20, 'Cool'];
1345
- * // Nothing below 0
1346
- * console.log(temps.lower(0)); // undefined;
1347
- */
1348
- lower(key: K): [K, V | undefined] | undefined;
1349
- /**
1350
- * Return all entries in a given key range.
1351
- *
1352
- * @param range `[low, high]`
1353
- * @param options Inclusive/exclusive bounds (defaults to inclusive).
1354
1124
 
1355
1125
 
1356
1126
 
@@ -1389,27 +1159,2651 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
1389
1159
 
1390
1160
 
1391
1161
 
1392
- * @example
1393
- * // Inventory system with price-sorted products
1394
- * interface Product {
1395
- * name: string;
1396
- * price: number;
1397
- * stock: number;
1398
- * }
1399
- *
1400
- * const inventory = new TreeMap<string, Product, Product>(
1401
- * [
1402
- * { name: 'Widget', price: 9.99, stock: 100 },
1403
- * { name: 'Gadget', price: 24.99, stock: 50 },
1404
- * { name: 'Doohickey', price: 4.99, stock: 200 }
1405
- * ],
1406
- * { toEntryFn: p => [p.name, p] }
1407
- * );
1408
- *
1409
- * // Sorted alphabetically by product name
1410
- * console.log([...inventory.keys()]); // ['Doohickey', 'Gadget', 'Widget'];
1411
- *
1412
- * // Filter high-stock items
1162
+
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+
1169
+
1170
+
1171
+
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+
1184
+
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+
1191
+ * @example
1192
+ * // Get sorted keys
1193
+ * const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a']]);
1194
+ * console.log([...tm.keys()]); // [1, 3];
1195
+ */
1196
+ keys(): IterableIterator<K>;
1197
+ private _entryFromKey;
1198
+ /**
1199
+ * Iterate over values in ascending key order.
1200
+ *
1201
+ * Note: values may be `undefined` (TreeMap allows storing `undefined`, like native `Map`).
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+
1250
+
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+
1291
+
1292
+
1293
+
1294
+
1295
+
1296
+
1297
+
1298
+
1299
+
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+
1306
+
1307
+
1308
+
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+ * @example
1346
+ * // Get values in key order
1347
+ * const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
1348
+ * console.log([...tm.values()]); // ['a', 'b'];
1349
+ */
1350
+ values(): IterableIterator<V | undefined>;
1351
+ /**
1352
+ * Iterate over `[key, value]` entries in ascending key order.
1353
+ *
1354
+ * Note: values may be `undefined`.
1355
+
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+
1362
+
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1374
+
1375
+
1376
+
1377
+
1378
+
1379
+
1380
+
1381
+
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+
1389
+
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+
1432
+
1433
+
1434
+
1435
+
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+
1459
+
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+
1475
+
1476
+
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+ * @example
1499
+ * // Iterate key-value pairs
1500
+ * const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a'], [2, 'b']]);
1501
+ * console.log([...tm.entries()]); // [[1, 'a'], [2, 'b'], [3, 'c']];
1502
+ */
1503
+ entries(): IterableIterator<[K, V | undefined]>;
1504
+ [Symbol.iterator](): IterableIterator<[K, V | undefined]>;
1505
+ /**
1506
+ * Visit each entry in ascending key order.
1507
+ *
1508
+ * Note: callback value may be `undefined`.
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+
1516
+
1517
+
1518
+
1519
+
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+
1558
+
1559
+
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+
1570
+
1571
+
1572
+
1573
+
1574
+
1575
+
1576
+
1577
+
1578
+
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+
1594
+
1595
+
1596
+
1597
+
1598
+
1599
+
1600
+
1601
+
1602
+
1603
+
1604
+
1605
+
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+
1612
+
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+
1643
+
1644
+
1645
+
1646
+
1647
+
1648
+
1649
+
1650
+
1651
+
1652
+ * @example
1653
+ * // Execute for each entry
1654
+ * const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
1655
+ * const pairs: string[] = [];
1656
+ * tm.forEach((v, k) => pairs.push(`${k}:${v}`));
1657
+ * console.log(pairs); // ['1:a', '2:b'];
1658
+ */
1659
+ forEach(cb: (value: V | undefined, key: K, map: TreeMap<K, V>) => void, thisArg?: unknown): void;
1660
+ /**
1661
+ * Create a new TreeMap by mapping each entry to a new `[key, value]` entry.
1662
+ *
1663
+ * This mirrors `RedBlackTree.map`: mapping produces a new ordered container.
1664
+ * @remarks Time O(n log n) expected, Space O(n)
1665
+
1666
+
1667
+
1668
+
1669
+
1670
+
1671
+
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+
1682
+
1683
+
1684
+
1685
+
1686
+
1687
+
1688
+
1689
+
1690
+
1691
+
1692
+
1693
+
1694
+
1695
+
1696
+
1697
+
1698
+
1699
+
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+
1723
+
1724
+
1725
+
1726
+
1727
+
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+
1736
+
1737
+
1738
+
1739
+
1740
+
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+
1753
+
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+
1782
+
1783
+
1784
+
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+
1794
+
1795
+
1796
+
1797
+
1798
+
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+
1805
+
1806
+
1807
+
1808
+ * @example
1809
+ * // Transform entries
1810
+ * const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
1811
+ * const doubled = tm.map((v, k) => [k, (v ?? 0) * 2] as [number, number]);
1812
+ * console.log([...doubled.values()]); // [20, 40];
1813
+ */
1814
+ map<MK, MV>(callbackfn: TreeMapEntryCallback<K, V, [MK, MV], TreeMap<K, V>>, options?: Omit<TreeMapOptions<MK, MV>, 'toEntryFn'> & {
1815
+ comparator?: (a: MK, b: MK) => number;
1816
+ }, thisArg?: unknown): TreeMap<MK, MV>;
1817
+ /**
1818
+ * Create a new TreeMap containing only entries that satisfy the predicate.
1819
+ * @remarks Time O(n log n) expected, Space O(n)
1820
+
1821
+
1822
+
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+
1834
+
1835
+
1836
+
1837
+
1838
+
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+
1865
+
1866
+
1867
+
1868
+
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+
1882
+
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+
1890
+
1891
+
1892
+
1893
+
1894
+
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+
1917
+
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+
1924
+
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+
1943
+
1944
+
1945
+
1946
+
1947
+
1948
+
1949
+
1950
+
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1957
+
1958
+
1959
+
1960
+
1961
+
1962
+
1963
+ * @example
1964
+ * // Filter entries
1965
+ * const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
1966
+ * const filtered = tm.filter((v, k) => k > 1);
1967
+ * console.log([...filtered.keys()]); // [2, 3];
1968
+ */
1969
+ filter(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): TreeMap<K, V>;
1970
+ /**
1971
+ * Reduce entries into a single accumulator.
1972
+ * @remarks Time O(n), Space O(1)
1973
+
1974
+
1975
+
1976
+
1977
+
1978
+
1979
+
1980
+
1981
+
1982
+
1983
+
1984
+
1985
+
1986
+
1987
+
1988
+
1989
+
1990
+
1991
+
1992
+
1993
+
1994
+
1995
+
1996
+
1997
+
1998
+
1999
+
2000
+
2001
+
2002
+
2003
+
2004
+
2005
+
2006
+
2007
+
2008
+
2009
+
2010
+
2011
+
2012
+
2013
+
2014
+
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+
2021
+
2022
+
2023
+
2024
+
2025
+
2026
+
2027
+
2028
+
2029
+
2030
+
2031
+
2032
+
2033
+
2034
+
2035
+
2036
+
2037
+
2038
+
2039
+
2040
+
2041
+
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+
2052
+
2053
+
2054
+
2055
+
2056
+
2057
+
2058
+
2059
+
2060
+
2061
+
2062
+
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+
2090
+
2091
+
2092
+
2093
+
2094
+
2095
+
2096
+
2097
+
2098
+
2099
+
2100
+
2101
+
2102
+
2103
+
2104
+
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+
2111
+
2112
+
2113
+
2114
+
2115
+
2116
+ * @example
2117
+ * // Aggregate values
2118
+ * const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
2119
+ * console.log(tm.reduce((acc, v) => acc + (v ?? 0), 0)); // 30;
2120
+ */
2121
+ reduce<A>(callbackfn: TreeMapReduceCallback<K, V, A, TreeMap<K, V>>, initialValue: A): A;
2122
+ /**
2123
+ * Test whether all entries satisfy a predicate.
2124
+ * @remarks Time O(n), Space O(1)
2125
+
2126
+
2127
+
2128
+
2129
+
2130
+
2131
+
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+
2143
+
2144
+
2145
+
2146
+
2147
+
2148
+
2149
+
2150
+
2151
+
2152
+
2153
+
2154
+
2155
+
2156
+
2157
+
2158
+
2159
+
2160
+
2161
+
2162
+
2163
+
2164
+
2165
+
2166
+
2167
+
2168
+
2169
+
2170
+
2171
+
2172
+
2173
+
2174
+
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+
2181
+
2182
+
2183
+
2184
+
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+
2209
+
2210
+
2211
+
2212
+
2213
+
2214
+
2215
+
2216
+
2217
+
2218
+
2219
+
2220
+
2221
+
2222
+
2223
+
2224
+
2225
+
2226
+
2227
+
2228
+
2229
+
2230
+
2231
+
2232
+
2233
+
2234
+
2235
+
2236
+
2237
+
2238
+
2239
+
2240
+
2241
+
2242
+
2243
+
2244
+
2245
+
2246
+
2247
+
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+
2261
+
2262
+
2263
+
2264
+
2265
+
2266
+ * @example
2267
+ * // Test all entries
2268
+ * const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
2269
+ * console.log(tm.every((v, k) => k > 0)); // true;
2270
+ */
2271
+ every(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
2272
+ /**
2273
+ * Test whether any entry satisfies a predicate.
2274
+ * @remarks Time O(n), Space O(1)
2275
+
2276
+
2277
+
2278
+
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+
2285
+
2286
+
2287
+
2288
+
2289
+
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2300
+
2301
+
2302
+
2303
+
2304
+
2305
+
2306
+
2307
+
2308
+
2309
+
2310
+
2311
+
2312
+
2313
+
2314
+
2315
+
2316
+
2317
+
2318
+
2319
+
2320
+
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+
2330
+
2331
+
2332
+
2333
+
2334
+
2335
+
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+
2343
+
2344
+
2345
+
2346
+
2347
+
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+
2359
+
2360
+
2361
+
2362
+
2363
+
2364
+
2365
+
2366
+
2367
+
2368
+
2369
+
2370
+
2371
+
2372
+
2373
+
2374
+
2375
+
2376
+
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+
2395
+
2396
+
2397
+
2398
+
2399
+
2400
+
2401
+
2402
+
2403
+
2404
+
2405
+
2406
+
2407
+
2408
+
2409
+
2410
+
2411
+
2412
+
2413
+
2414
+
2415
+
2416
+ * @example
2417
+ * // Test any entry
2418
+ * const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
2419
+ * console.log(tm.some((v, k) => k === 2)); // true;
2420
+ */
2421
+ some(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
2422
+ /**
2423
+ * Find the first entry that satisfies a predicate.
2424
+ * @returns The first matching `[key, value]` tuple, or `undefined`.
2425
+ * @remarks Time O(n), Space O(1)
2426
+
2427
+
2428
+
2429
+
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+
2437
+
2438
+
2439
+
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+
2449
+
2450
+
2451
+
2452
+
2453
+
2454
+
2455
+
2456
+
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+
2466
+
2467
+
2468
+
2469
+
2470
+
2471
+
2472
+
2473
+
2474
+
2475
+
2476
+
2477
+
2478
+
2479
+
2480
+
2481
+
2482
+
2483
+
2484
+
2485
+
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+
2494
+
2495
+
2496
+
2497
+
2498
+
2499
+
2500
+
2501
+
2502
+
2503
+
2504
+
2505
+
2506
+
2507
+
2508
+
2509
+
2510
+
2511
+
2512
+
2513
+
2514
+
2515
+
2516
+
2517
+
2518
+
2519
+
2520
+
2521
+
2522
+
2523
+
2524
+
2525
+
2526
+
2527
+
2528
+
2529
+
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+
2542
+
2543
+
2544
+
2545
+
2546
+
2547
+
2548
+
2549
+
2550
+
2551
+
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+
2558
+
2559
+
2560
+
2561
+
2562
+
2563
+
2564
+
2565
+
2566
+
2567
+ * @example
2568
+ * // Find matching entry
2569
+ * const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
2570
+ * console.log(tm.find(v => v === 'b')?.[0]); // 2;
2571
+ */
2572
+ find(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): [K, V | undefined] | undefined;
2573
+ /**
2574
+ * Materialize the map into an array of `[key, value]` tuples.
2575
+ * @remarks Time O(n), Space O(n)
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+
2590
+
2591
+
2592
+
2593
+
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+
2600
+
2601
+
2602
+
2603
+
2604
+
2605
+
2606
+
2607
+
2608
+
2609
+
2610
+
2611
+
2612
+
2613
+
2614
+
2615
+
2616
+
2617
+
2618
+
2619
+
2620
+
2621
+
2622
+
2623
+
2624
+
2625
+
2626
+
2627
+
2628
+
2629
+
2630
+
2631
+
2632
+
2633
+
2634
+
2635
+
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+
2642
+
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2656
+
2657
+
2658
+
2659
+
2660
+
2661
+
2662
+
2663
+
2664
+
2665
+
2666
+
2667
+
2668
+
2669
+
2670
+
2671
+
2672
+
2673
+
2674
+
2675
+
2676
+
2677
+
2678
+
2679
+
2680
+
2681
+
2682
+
2683
+
2684
+
2685
+
2686
+
2687
+
2688
+
2689
+
2690
+
2691
+
2692
+
2693
+
2694
+
2695
+
2696
+
2697
+
2698
+
2699
+
2700
+
2701
+
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+
2709
+
2710
+
2711
+
2712
+
2713
+
2714
+
2715
+
2716
+
2717
+
2718
+
2719
+ * @example
2720
+ * // Convert to array
2721
+ * const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
2722
+ * console.log(tm.toArray()); // [[1, 'a'], [2, 'b']];
2723
+ */
2724
+ toArray(): Array<[K, V | undefined]>;
2725
+ /**
2726
+ * Print a human-friendly representation.
2727
+ * @remarks Time O(n), Space O(n)
2728
+
2729
+
2730
+
2731
+
2732
+
2733
+
2734
+
2735
+
2736
+
2737
+
2738
+
2739
+
2740
+
2741
+
2742
+
2743
+
2744
+
2745
+
2746
+
2747
+
2748
+
2749
+
2750
+
2751
+
2752
+
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+
2771
+
2772
+
2773
+
2774
+
2775
+
2776
+
2777
+
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+
2784
+
2785
+
2786
+
2787
+
2788
+
2789
+
2790
+
2791
+
2792
+
2793
+
2794
+
2795
+
2796
+
2797
+
2798
+
2799
+
2800
+
2801
+
2802
+
2803
+
2804
+
2805
+
2806
+
2807
+
2808
+
2809
+
2810
+
2811
+
2812
+
2813
+
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+
2820
+
2821
+
2822
+
2823
+
2824
+
2825
+
2826
+
2827
+
2828
+
2829
+
2830
+
2831
+
2832
+
2833
+
2834
+
2835
+
2836
+
2837
+
2838
+
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+
2846
+
2847
+
2848
+
2849
+
2850
+
2851
+
2852
+
2853
+
2854
+
2855
+
2856
+
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+ * @example
2872
+ * // Display tree
2873
+ * const tm = new TreeMap<number, string>([[1, 'a']]);
2874
+ * expect(() => tm.print()).not.toThrow();
2875
+ */
2876
+ print(): void;
2877
+ /**
2878
+ * Smallest entry by key.
2879
+
2880
+
2881
+
2882
+
2883
+
2884
+
2885
+
2886
+
2887
+
2888
+
2889
+
2890
+
2891
+
2892
+
2893
+
2894
+
2895
+
2896
+
2897
+
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+
2904
+
2905
+
2906
+
2907
+
2908
+
2909
+
2910
+
2911
+ * @example
2912
+ * // Leaderboard with ranked scores
2913
+ * // Use score as key (descending), player name as value
2914
+ * const leaderboard = new TreeMap<number, string>([], {
2915
+ * comparator: (a, b) => b - a // descending
2916
+ * });
2917
+ *
2918
+ * leaderboard.set(1500, 'Alice');
2919
+ * leaderboard.set(2200, 'Bob');
2920
+ * leaderboard.set(1800, 'Charlie');
2921
+ * leaderboard.set(2500, 'Diana');
2922
+ *
2923
+ * // Top 3 players (first 3 in descending order)
2924
+ * const top3 = [...leaderboard.entries()].slice(0, 3);
2925
+ * console.log(top3); // [
2926
+ * // [2500, 'Diana'],
2927
+ * // [2200, 'Bob'],
2928
+ * // [1800, 'Charlie']
2929
+ * // ];
2930
+ *
2931
+ * // Highest scorer
2932
+ * console.log(leaderboard.first()); // [2500, 'Diana'];
2933
+ *
2934
+ * // Remove lowest scorer
2935
+ * console.log(leaderboard.pollLast()); // [1500, 'Alice'];
2936
+ * console.log(leaderboard.size); // 3;
2937
+ */
2938
+ first(): [K, V | undefined] | undefined;
2939
+ /**
2940
+ * Largest entry by key.
2941
+
2942
+
2943
+
2944
+
2945
+
2946
+
2947
+
2948
+
2949
+
2950
+
2951
+
2952
+
2953
+
2954
+
2955
+
2956
+
2957
+
2958
+
2959
+
2960
+
2961
+
2962
+
2963
+
2964
+
2965
+
2966
+
2967
+
2968
+
2969
+
2970
+
2971
+
2972
+
2973
+ * @example
2974
+ * // Access the maximum entry
2975
+ * const scores = new TreeMap<number, string>([
2976
+ * [85, 'Bob'],
2977
+ * [92, 'Alice'],
2978
+ * [78, 'Charlie']
2979
+ * ]);
2980
+ *
2981
+ * console.log(scores.last()); // [92, 'Alice'];
2982
+ * console.log(scores.first()); // [78, 'Charlie'];
2983
+ */
2984
+ last(): [K, V | undefined] | undefined;
2985
+ /**
2986
+ * Remove and return the smallest entry.
2987
+
2988
+
2989
+
2990
+
2991
+
2992
+
2993
+
2994
+
2995
+
2996
+
2997
+
2998
+
2999
+
3000
+
3001
+
3002
+
3003
+
3004
+
3005
+
3006
+
3007
+
3008
+
3009
+
3010
+
3011
+
3012
+
3013
+
3014
+
3015
+
3016
+
3017
+
3018
+
3019
+ * @example
3020
+ * // Process items from lowest priority
3021
+ * const tasks = new TreeMap<number, string>([
3022
+ * [3, 'Low'],
3023
+ * [1, 'Critical'],
3024
+ * [2, 'Medium']
3025
+ * ]);
3026
+ *
3027
+ * // Process lowest priority first
3028
+ * console.log(tasks.pollFirst()); // [1, 'Critical'];
3029
+ * console.log(tasks.pollFirst()); // [2, 'Medium'];
3030
+ * console.log(tasks.size); // 1;
3031
+ */
3032
+ pollFirst(): [K, V | undefined] | undefined;
3033
+ /**
3034
+ * Remove and return the largest entry.
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+
3041
+
3042
+
3043
+
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+
3051
+
3052
+
3053
+
3054
+
3055
+
3056
+
3057
+
3058
+
3059
+
3060
+
3061
+
3062
+
3063
+
3064
+
3065
+
3066
+
3067
+ * @example
3068
+ * // Remove the maximum entry
3069
+ * const bids = new TreeMap<number, string>([
3070
+ * [100, 'Alice'],
3071
+ * [150, 'Bob'],
3072
+ * [120, 'Charlie']
3073
+ * ]);
3074
+ *
3075
+ * // Remove highest bid
3076
+ * console.log(bids.pollLast()); // [150, 'Bob'];
3077
+ * console.log(bids.size); // 2;
3078
+ * console.log(bids.last()); // [120, 'Charlie'];
3079
+ */
3080
+ pollLast(): [K, V | undefined] | undefined;
3081
+ /**
3082
+ * Smallest entry whose key is >= the given key.
3083
+
3084
+
3085
+
3086
+
3087
+
3088
+
3089
+
3090
+
3091
+
3092
+
3093
+
3094
+
3095
+
3096
+
3097
+
3098
+
3099
+
3100
+
3101
+
3102
+
3103
+
3104
+
3105
+
3106
+
3107
+
3108
+
3109
+
3110
+
3111
+
3112
+
3113
+
3114
+
3115
+
3116
+
3117
+
3118
+
3119
+
3120
+
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+
3127
+
3128
+
3129
+
3130
+
3131
+
3132
+
3133
+
3134
+
3135
+
3136
+
3137
+
3138
+
3139
+
3140
+
3141
+
3142
+
3143
+
3144
+
3145
+
3146
+
3147
+
3148
+
3149
+
3150
+
3151
+
3152
+
3153
+
3154
+
3155
+
3156
+
3157
+
3158
+
3159
+
3160
+
3161
+
3162
+
3163
+
3164
+
3165
+
3166
+
3167
+
3168
+
3169
+
3170
+
3171
+
3172
+
3173
+
3174
+
3175
+
3176
+
3177
+
3178
+
3179
+
3180
+
3181
+
3182
+
3183
+
3184
+
3185
+
3186
+
3187
+
3188
+
3189
+
3190
+
3191
+
3192
+
3193
+
3194
+
3195
+
3196
+
3197
+
3198
+
3199
+
3200
+
3201
+
3202
+
3203
+
3204
+
3205
+ * @example
3206
+ * // Event scheduler with time-based lookup
3207
+ * const events = new TreeMap<Date, string>();
3208
+ *
3209
+ * const meeting = new Date('2024-01-15T10:00:00Z');
3210
+ * const lunch = new Date('2024-01-15T12:00:00Z');
3211
+ * const review = new Date('2024-01-15T15:00:00Z');
3212
+ * const standup = new Date('2024-01-15T09:00:00Z');
3213
+ *
3214
+ * events.set(meeting, 'Team Meeting');
3215
+ * events.set(lunch, 'Lunch Break');
3216
+ * events.set(review, 'Code Review');
3217
+ * events.set(standup, 'Daily Standup');
3218
+ *
3219
+ * // Events are sorted chronologically
3220
+ * console.log([...events.values()]); // [
3221
+ * // 'Daily Standup',
3222
+ * // 'Team Meeting',
3223
+ * // 'Lunch Break',
3224
+ * // 'Code Review'
3225
+ * // ];
3226
+ *
3227
+ * // Next event after 11:00
3228
+ * const after11 = new Date('2024-01-15T11:00:00Z');
3229
+ * console.log(events.ceiling(after11)?.[1]); // 'Lunch Break';
3230
+ *
3231
+ * // Events between 9:30 and 13:00
3232
+ * const from = new Date('2024-01-15T09:30:00Z');
3233
+ * const to = new Date('2024-01-15T13:00:00Z');
3234
+ * const window = events.rangeSearch([from, to]);
3235
+ * console.log(window.map(([, v]) => v)); // ['Team Meeting', 'Lunch Break'];
3236
+ */
3237
+ ceiling(key: K): [K, V | undefined] | undefined;
3238
+ /**
3239
+ * Largest entry whose key is <= the given key.
3240
+
3241
+
3242
+
3243
+
3244
+
3245
+
3246
+
3247
+
3248
+
3249
+
3250
+
3251
+
3252
+
3253
+
3254
+
3255
+
3256
+
3257
+
3258
+
3259
+
3260
+
3261
+
3262
+
3263
+
3264
+
3265
+
3266
+
3267
+
3268
+
3269
+
3270
+
3271
+
3272
+
3273
+
3274
+
3275
+
3276
+
3277
+
3278
+
3279
+
3280
+
3281
+
3282
+
3283
+
3284
+
3285
+
3286
+
3287
+
3288
+
3289
+
3290
+
3291
+
3292
+
3293
+
3294
+
3295
+
3296
+
3297
+
3298
+
3299
+
3300
+
3301
+
3302
+
3303
+
3304
+
3305
+
3306
+
3307
+
3308
+
3309
+
3310
+
3311
+
3312
+
3313
+
3314
+
3315
+
3316
+
3317
+
3318
+
3319
+
3320
+
3321
+
3322
+
3323
+
3324
+
3325
+
3326
+
3327
+
3328
+
3329
+
3330
+
3331
+
3332
+
3333
+
3334
+
3335
+
3336
+
3337
+
3338
+
3339
+
3340
+
3341
+
3342
+
3343
+
3344
+
3345
+
3346
+
3347
+
3348
+
3349
+
3350
+
3351
+
3352
+
3353
+
3354
+
3355
+
3356
+
3357
+
3358
+
3359
+
3360
+
3361
+
3362
+ * @example
3363
+ * // Find the largest key ≤ target
3364
+ * const versions = new TreeMap<number, string>([
3365
+ * [1, 'v1.0'],
3366
+ * [3, 'v3.0'],
3367
+ * [5, 'v5.0'],
3368
+ * [7, 'v7.0']
3369
+ * ]);
3370
+ *
3371
+ * // Largest version ≤ 4
3372
+ * console.log(versions.floor(4)); // [3, 'v3.0'];
3373
+ * // Largest version ≤ 5 (exact match)
3374
+ * console.log(versions.floor(5)); // [5, 'v5.0'];
3375
+ * // No version ≤ 0
3376
+ * console.log(versions.floor(0)); // undefined;
3377
+ */
3378
+ floor(key: K): [K, V | undefined] | undefined;
3379
+ /**
3380
+ * Smallest entry whose key is > the given key.
3381
+
3382
+
3383
+
3384
+
3385
+
3386
+
3387
+
3388
+
3389
+
3390
+
3391
+
3392
+
3393
+
3394
+
3395
+
3396
+
3397
+
3398
+
3399
+
3400
+
3401
+
3402
+
3403
+
3404
+
3405
+
3406
+
3407
+
3408
+
3409
+
3410
+
3411
+
3412
+
3413
+
3414
+
3415
+
3416
+
3417
+
3418
+
3419
+
3420
+
3421
+
3422
+
3423
+
3424
+
3425
+
3426
+
3427
+
3428
+
3429
+
3430
+
3431
+
3432
+
3433
+
3434
+
3435
+
3436
+
3437
+
3438
+
3439
+
3440
+
3441
+
3442
+
3443
+
3444
+
3445
+
3446
+
3447
+
3448
+
3449
+
3450
+
3451
+
3452
+
3453
+
3454
+
3455
+
3456
+
3457
+
3458
+
3459
+
3460
+
3461
+
3462
+
3463
+
3464
+
3465
+
3466
+
3467
+
3468
+
3469
+
3470
+
3471
+
3472
+
3473
+
3474
+
3475
+
3476
+
3477
+
3478
+
3479
+
3480
+
3481
+
3482
+
3483
+
3484
+
3485
+
3486
+
3487
+
3488
+
3489
+
3490
+
3491
+
3492
+
3493
+
3494
+
3495
+
3496
+
3497
+
3498
+
3499
+
3500
+
3501
+
3502
+
3503
+ * @example
3504
+ * // Find the smallest key strictly > target
3505
+ * const prices = new TreeMap<number, string>([
3506
+ * [10, 'Basic'],
3507
+ * [25, 'Standard'],
3508
+ * [50, 'Premium'],
3509
+ * [100, 'Enterprise']
3510
+ * ]);
3511
+ *
3512
+ * // Next tier above $25
3513
+ * console.log(prices.higher(25)); // [50, 'Premium'];
3514
+ * // Next tier above $99
3515
+ * console.log(prices.higher(99)); // [100, 'Enterprise'];
3516
+ * // Nothing above $100
3517
+ * console.log(prices.higher(100)); // undefined;
3518
+ */
3519
+ higher(key: K): [K, V | undefined] | undefined;
3520
+ /**
3521
+ * Largest entry whose key is < the given key.
3522
+
3523
+
3524
+
3525
+
3526
+
3527
+
3528
+
3529
+
3530
+
3531
+
3532
+
3533
+
3534
+
3535
+
3536
+
3537
+
3538
+
3539
+
3540
+
3541
+
3542
+
3543
+
3544
+
3545
+
3546
+
3547
+
3548
+
3549
+
3550
+
3551
+
3552
+
3553
+
3554
+
3555
+
3556
+
3557
+
3558
+
3559
+
3560
+
3561
+
3562
+
3563
+
3564
+
3565
+
3566
+
3567
+
3568
+
3569
+
3570
+
3571
+
3572
+
3573
+
3574
+
3575
+
3576
+
3577
+
3578
+
3579
+
3580
+
3581
+
3582
+
3583
+
3584
+
3585
+
3586
+
3587
+
3588
+
3589
+
3590
+
3591
+
3592
+
3593
+
3594
+
3595
+
3596
+
3597
+
3598
+
3599
+
3600
+
3601
+
3602
+
3603
+
3604
+
3605
+
3606
+
3607
+
3608
+
3609
+
3610
+
3611
+
3612
+
3613
+
3614
+
3615
+
3616
+
3617
+
3618
+
3619
+
3620
+
3621
+
3622
+
3623
+
3624
+
3625
+
3626
+
3627
+
3628
+
3629
+
3630
+
3631
+
3632
+
3633
+
3634
+
3635
+
3636
+
3637
+
3638
+
3639
+
3640
+
3641
+
3642
+
3643
+
3644
+ * @example
3645
+ * // Find the largest key strictly < target
3646
+ * const temps = new TreeMap<number, string>([
3647
+ * [0, 'Freezing'],
3648
+ * [20, 'Cool'],
3649
+ * [30, 'Warm'],
3650
+ * [40, 'Hot']
3651
+ * ]);
3652
+ *
3653
+ * // Largest reading below 30
3654
+ * console.log(temps.lower(30)); // [20, 'Cool'];
3655
+ * // Nothing below 0
3656
+ * console.log(temps.lower(0)); // undefined;
3657
+ */
3658
+ lower(key: K): [K, V | undefined] | undefined;
3659
+ /**
3660
+ * Return all entries in a given key range.
3661
+ *
3662
+ * @param range `[low, high]`
3663
+ * @param options Inclusive/exclusive bounds (defaults to inclusive).
3664
+
3665
+
3666
+
3667
+
3668
+
3669
+
3670
+
3671
+
3672
+
3673
+
3674
+
3675
+
3676
+
3677
+
3678
+
3679
+
3680
+
3681
+
3682
+
3683
+
3684
+
3685
+
3686
+
3687
+
3688
+
3689
+
3690
+
3691
+
3692
+
3693
+
3694
+
3695
+
3696
+
3697
+
3698
+
3699
+
3700
+
3701
+
3702
+
3703
+
3704
+
3705
+
3706
+
3707
+
3708
+
3709
+
3710
+
3711
+
3712
+
3713
+
3714
+
3715
+
3716
+
3717
+
3718
+
3719
+
3720
+
3721
+
3722
+
3723
+
3724
+
3725
+
3726
+
3727
+
3728
+
3729
+
3730
+
3731
+
3732
+
3733
+
3734
+
3735
+
3736
+
3737
+
3738
+
3739
+
3740
+
3741
+
3742
+
3743
+
3744
+
3745
+
3746
+
3747
+
3748
+
3749
+
3750
+
3751
+
3752
+
3753
+
3754
+
3755
+
3756
+
3757
+
3758
+
3759
+
3760
+
3761
+
3762
+
3763
+
3764
+
3765
+
3766
+
3767
+
3768
+
3769
+
3770
+
3771
+
3772
+
3773
+
3774
+
3775
+
3776
+
3777
+
3778
+
3779
+
3780
+
3781
+
3782
+
3783
+
3784
+
3785
+
3786
+ * @example
3787
+ * // Inventory system with price-sorted products
3788
+ * interface Product {
3789
+ * name: string;
3790
+ * price: number;
3791
+ * stock: number;
3792
+ * }
3793
+ *
3794
+ * const inventory = new TreeMap<string, Product, Product>(
3795
+ * [
3796
+ * { name: 'Widget', price: 9.99, stock: 100 },
3797
+ * { name: 'Gadget', price: 24.99, stock: 50 },
3798
+ * { name: 'Doohickey', price: 4.99, stock: 200 }
3799
+ * ],
3800
+ * { toEntryFn: p => [p.name, p] }
3801
+ * );
3802
+ *
3803
+ * // Sorted alphabetically by product name
3804
+ * console.log([...inventory.keys()]); // ['Doohickey', 'Gadget', 'Widget'];
3805
+ *
3806
+ * // Filter high-stock items
1413
3807
  * const highStock = inventory.filter(p => (p?.stock ?? 0) > 75);
1414
3808
  * console.log([...highStock.keys()]); // ['Doohickey', 'Widget'];
1415
3809
  *
@@ -1442,6 +3836,111 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
1442
3836
 
1443
3837
 
1444
3838
 
3839
+
3840
+
3841
+
3842
+
3843
+
3844
+
3845
+
3846
+
3847
+
3848
+
3849
+
3850
+
3851
+
3852
+
3853
+
3854
+
3855
+
3856
+
3857
+
3858
+
3859
+
3860
+
3861
+
3862
+
3863
+
3864
+
3865
+
3866
+
3867
+
3868
+
3869
+
3870
+
3871
+
3872
+
3873
+
3874
+
3875
+
3876
+
3877
+
3878
+
3879
+
3880
+
3881
+
3882
+
3883
+
3884
+
3885
+
3886
+
3887
+
3888
+
3889
+
3890
+
3891
+
3892
+
3893
+
3894
+
3895
+
3896
+
3897
+
3898
+
3899
+
3900
+
3901
+
3902
+
3903
+
3904
+
3905
+
3906
+
3907
+
3908
+
3909
+
3910
+
3911
+
3912
+
3913
+
3914
+
3915
+
3916
+
3917
+
3918
+
3919
+
3920
+
3921
+
3922
+
3923
+
3924
+
3925
+
3926
+
3927
+
3928
+
3929
+
3930
+
3931
+
3932
+
3933
+
3934
+
3935
+
3936
+
3937
+
3938
+
3939
+
3940
+
3941
+
3942
+
3943
+
1445
3944
 
1446
3945
 
1447
3946