articulated 1.3.0 → 1.3.2

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.
package/README.md CHANGED
@@ -1,16 +1,15 @@
1
1
  # articulated
2
2
 
3
- A TypeScript library for managing stable element identifiers in mutable lists, perfect for collaborative editing and other applications where elements need persistent identities despite insertions and deletions.
3
+ A TypeScript library for managing stable element identifiers in mutable lists, intended for collaborative editing and other applications where elements need persistent identities despite insertions and deletions.
4
4
 
5
5
  [Demos](https://github.com/mweidner037/articulated-demos)
6
6
 
7
7
  ## Features
8
8
 
9
- - **Stable identifiers**: Elements keep their identity even as their indices change
10
- - **Efficient storage**: Optimized compression for sequential IDs
11
- - **Collaborative-ready**: Supports concurrent operations from multiple sources
12
- - **Tombstone support**: Deleted elements remain addressable
13
- - **TypeScript-first**: Full type safety and excellent IDE integration
9
+ - **Stable identifiers**: Elements keep their identity even as their indices change.
10
+ - **Efficient storage**: Optimized compression for sequential IDs.
11
+ - **Collaboration-ready**: Designed to handle operations from multiple sources.
12
+ - **Persistent (immutable) data structure**: Mutating methods return a new list while sharing memory where possible.
14
13
 
15
14
  ## Installation
16
15
 
@@ -132,6 +131,8 @@ let newList = IdList.load(savedState);
132
131
  - Any list where elements' positions change but need stable identifiers
133
132
  - Conflict-free replicated data type (CRDT) implementations
134
133
 
134
+ **Note**: IdList is not itself a CRDT. Concurrent insertAfter operations with the same `before` ID will _not_ commute with each other. However, you can implement a list/text CRDT on top of IdList, by processing collaborative insertAfter and delete operations in an [eventually consistent total order](https://mattweidner.com/2025/05/21/text-without-crdts.html#decentralized-variants).
135
+
135
136
  ## Internals
136
137
 
137
138
  IdList stores its state as a modified [B+Tree](https://en.wikipedia.org/wiki/B%2B_tree), described at the top of [its source code](./src/id_list.ts). Each leaf in the B+Tree represents multiple ElementIds (sharing a bunchId and sequential counters) in a compressed way; for normal collaborative text editing, expect 10-20 ElementIds per leaf.
@@ -3,6 +3,9 @@ import { ElementId } from "./element_id";
3
3
  import { MutableLeafMap } from "./internal/leaf_map";
4
4
  import { MutableSeqMap } from "./internal/seq_map";
5
5
  import { SavedIdList } from "./saved_id_list";
6
+ /**
7
+ * @private Only exported for internal use and tests.
8
+ */
6
9
  export interface LeafNode {
7
10
  readonly bunchId: string;
8
11
  readonly startCounter: number;
@@ -16,6 +19,8 @@ export interface LeafNode {
16
19
  }
17
20
  /**
18
21
  * An inner node with inner-node children.
22
+ *
23
+ * @private Only exported for tests.
19
24
  */
20
25
  export declare class InnerNodeInner {
21
26
  /**
@@ -40,6 +45,8 @@ export declare class InnerNodeInner {
40
45
  }
41
46
  /**
42
47
  * An inner node with leaf children.
48
+ *
49
+ * @private Only exported for tests.
43
50
  */
44
51
  export declare class InnerNodeLeaf {
45
52
  /**
@@ -61,6 +68,9 @@ export declare class InnerNodeLeaf {
61
68
  */
62
69
  leafMapMut: MutableLeafMap | null);
63
70
  }
71
+ /**
72
+ * @private Only exported for tests.
73
+ */
64
74
  export type InnerNode = InnerNodeInner | InnerNodeLeaf;
65
75
  /**
66
76
  * The B+Tree's branching factor, i.e., the max number of children of a node.
@@ -70,6 +80,8 @@ export type InnerNode = InnerNodeInner | InnerNodeLeaf;
70
80
  * Wiki B+Tree: "B+ trees can also be used for data stored in RAM.
71
81
  * In this case a reasonable choice for block size would be the size of [the] processor's cache line."
72
82
  * (64 byte cache line) / (8 byte pointer) = 8.
83
+ *
84
+ * @private Only exported for tests.
73
85
  */
74
86
  export declare const M = 8;
75
87
  /**
@@ -205,7 +217,6 @@ export declare class IdList {
205
217
  * __Note__: To delete multiple ids at sequential *indexes*, use deleteRange.
206
218
  */
207
219
  delete(id: ElementId, count?: number): IdList;
208
- private deleteOne;
209
220
  /**
210
221
  * Deletes all ids with indexes in the range [from, to).
211
222
  *
@@ -225,7 +236,6 @@ export declare class IdList {
225
236
  * @throws If any deleted id is not known.
226
237
  */
227
238
  undelete(id: ElementId, count?: number): IdList;
228
- private undeleteOne;
229
239
  /**
230
240
  * Returns the path from id's leaf node to the root, or null if id is not found.
231
241
  *
@@ -7,6 +7,8 @@ const misc_1 = require("./internal/misc");
7
7
  const seq_map_1 = require("./internal/seq_map");
8
8
  /**
9
9
  * An inner node with inner-node children.
10
+ *
11
+ * @private Only exported for tests.
10
12
  */
11
13
  class InnerNodeInner {
12
14
  constructor(
@@ -39,6 +41,8 @@ class InnerNodeInner {
39
41
  exports.InnerNodeInner = InnerNodeInner;
40
42
  /**
41
43
  * An inner node with leaf children.
44
+ *
45
+ * @private Only exported for tests.
42
46
  */
43
47
  class InnerNodeLeaf {
44
48
  constructor(
@@ -76,6 +80,8 @@ exports.InnerNodeLeaf = InnerNodeLeaf;
76
80
  * Wiki B+Tree: "B+ trees can also be used for data stored in RAM.
77
81
  * In this case a reasonable choice for block size would be the size of [the] processor's cache line."
78
82
  * (64 byte cache line) / (8 byte pointer) = 8.
83
+ *
84
+ * @private Only exported for tests.
79
85
  */
80
86
  exports.M = 8;
81
87
  /**
@@ -448,24 +454,35 @@ class IdList {
448
454
  */
449
455
  delete(id, count = 1) {
450
456
  (0, misc_1.checkCount)(count);
457
+ if (count === 0)
458
+ return this;
451
459
  // eslint-disable-next-line @typescript-eslint/no-this-alias
452
460
  let ans = this;
453
- for (let i = 0; i < count; i++) {
454
- ans = ans.deleteOne({ bunchId: id.bunchId, counter: id.counter + i });
461
+ let currentCounter = id.counter;
462
+ while (currentCounter < id.counter + count) {
463
+ const currentId = {
464
+ bunchId: id.bunchId,
465
+ counter: currentCounter,
466
+ };
467
+ const located = ans.locate(currentId);
468
+ if (located === null) {
469
+ // Id is not known, skip
470
+ currentCounter++;
471
+ continue;
472
+ }
473
+ const leaf = located[0].node;
474
+ // Calculate how many ids can be deleted in this leaf
475
+ const leafEnd = leaf.startCounter + leaf.count;
476
+ const remaining = id.counter + count - currentCounter;
477
+ const canDeleteInLeaf = Math.min(leafEnd - currentCounter, remaining);
478
+ const newPresent = leaf.present.clone();
479
+ newPresent.delete(currentCounter, canDeleteInLeaf);
480
+ ans = ans.replaceLeaf(located, { ...leaf, present: newPresent });
481
+ // Move to the next batch
482
+ currentCounter += canDeleteInLeaf;
455
483
  }
456
484
  return ans;
457
485
  }
458
- deleteOne(id) {
459
- const located = this.locate(id);
460
- if (located === null)
461
- return this;
462
- const leaf = located[0].node;
463
- if (!leaf.present.has(id.counter))
464
- return this;
465
- const newPresent = leaf.present.clone();
466
- newPresent.delete(id.counter);
467
- return this.replaceLeaf(located, { ...leaf, present: newPresent });
468
- }
469
486
  /**
470
487
  * Deletes all ids with indexes in the range [from, to).
471
488
  *
@@ -496,25 +513,33 @@ class IdList {
496
513
  */
497
514
  undelete(id, count = 1) {
498
515
  (0, misc_1.checkCount)(count);
516
+ if (count === 0)
517
+ return this;
499
518
  // eslint-disable-next-line @typescript-eslint/no-this-alias
500
519
  let ans = this;
501
- for (let i = count - 1; i >= 0; i--) {
502
- ans = ans.undeleteOne({ bunchId: id.bunchId, counter: id.counter + i });
520
+ let currentCounter = id.counter;
521
+ while (currentCounter < id.counter + count) {
522
+ const currentId = {
523
+ bunchId: id.bunchId,
524
+ counter: currentCounter,
525
+ };
526
+ const located = ans.locate(currentId);
527
+ if (located === null) {
528
+ throw new Error("id is not known");
529
+ }
530
+ const leaf = located[0].node;
531
+ // Calculate how many ids can be undeleted in this leaf
532
+ const leafEnd = leaf.startCounter + leaf.count;
533
+ const remaining = id.counter + count - currentCounter;
534
+ const canUndeleteInLeaf = Math.min(leafEnd - currentCounter, remaining);
535
+ const newPresent = leaf.present.clone();
536
+ newPresent.set(currentCounter, canUndeleteInLeaf);
537
+ ans = ans.replaceLeaf(located, { ...leaf, present: newPresent });
538
+ // Move to the next batch
539
+ currentCounter += canUndeleteInLeaf;
503
540
  }
504
541
  return ans;
505
542
  }
506
- undeleteOne(id) {
507
- const located = this.locate(id);
508
- if (located === null) {
509
- throw new Error("id is not known");
510
- }
511
- const leaf = located[0].node;
512
- if (leaf.present.has(id.counter))
513
- return this;
514
- const newPresent = leaf.present.clone();
515
- newPresent.set(id.counter);
516
- return this.replaceLeaf(located, { ...leaf, present: newPresent });
517
- }
518
543
  /**
519
544
  * Returns the path from id's leaf node to the root, or null if id is not found.
520
545
  *
@@ -1 +1 @@
1
- {"version":3,"file":"id_list.js","sourceRoot":"","sources":["../../src/id_list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"id_list.js","sourceRoot":"","sources":["../../src/id_list.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.LeafMap = void 0;
7
- const functional_red_black_tree_1 = __importDefault(require("../vendor/functional-red-black-tree"));
4
+ const functional_red_black_tree_1 = require("../vendor/functional-red-black-tree");
8
5
  /**
9
6
  * A persistent sorted map from each LeafNode to its parent's seq.
10
7
  *
@@ -17,7 +14,7 @@ class LeafMap {
17
14
  this.tree = tree;
18
15
  }
19
16
  static new() {
20
- return new this((0, functional_red_black_tree_1.default)(compareLeaves));
17
+ return new this(functional_red_black_tree_1.RedBlackTree.new(compareLeaves));
21
18
  }
22
19
  /**
23
20
  * Returns the greatest leaf whose first id is <= the given id,
@@ -1 +1 @@
1
- {"version":3,"file":"leaf_map.js","sourceRoot":"","sources":["../../../src/internal/leaf_map.ts"],"names":[],"mappings":";;;;;;AAAA,oGAAyE;AAGzE;;;;;;GAMG;AACH,MAAa,OAAO;IAClB,YAAqC,IAA4B;QAA5B,SAAI,GAAJ,IAAI,CAAwB;IAAG,CAAC;IAErE,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,IAAI,CAAC,IAAA,mCAAY,EAAC,aAAa,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,OAAO,CACL,OAAe,EACf,OAAe;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAc,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,IAAc,EAAE,GAAW;QAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,IAAc;QACnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AA5BD,0BA4BC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,CAAW,EAAE,CAAW;IAC7C,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"leaf_map.js","sourceRoot":"","sources":["../../../src/internal/leaf_map.ts"],"names":[],"mappings":";;;AAAA,mFAAmE;AAGnE;;;;;;GAMG;AACH,MAAa,OAAO;IAClB,YAAqC,IAAoC;QAApC,SAAI,GAAJ,IAAI,CAAgC;IAAG,CAAC;IAE7E,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,IAAI,CAAC,wCAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,OAAO,CACL,OAAe,EACf,OAAe;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAc,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,IAAc,EAAE,GAAW;QAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,IAAc;QACnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AA5BD,0BA4BC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,CAAW,EAAE,CAAW;IAC7C,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Tree } from "../vendor/functional-red-black-tree";
1
+ import { RedBlackTree } from "../vendor/functional-red-black-tree";
2
2
  /**
3
3
  * A persistent map from an InnerNode's seq to its parent's seq
4
4
  * (or 0 for the root).
@@ -8,7 +8,7 @@ import { Tree } from "../vendor/functional-red-black-tree";
8
8
  export declare class SeqMap {
9
9
  private readonly tree;
10
10
  private readonly nextSeq;
11
- constructor(tree: Tree<number, number>, nextSeq: number);
11
+ constructor(tree: RedBlackTree<number, number>, nextSeq: number);
12
12
  static new(): SeqMap;
13
13
  bumpNextSeq(): SeqMap;
14
14
  get(seq: number): number;
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.getAndBumpNextSeq = exports.SeqMap = void 0;
7
- const functional_red_black_tree_1 = __importDefault(require("../vendor/functional-red-black-tree"));
4
+ const functional_red_black_tree_1 = require("../vendor/functional-red-black-tree");
8
5
  /**
9
6
  * A persistent map from an InnerNode's seq to its parent's seq
10
7
  * (or 0 for the root).
@@ -17,7 +14,7 @@ class SeqMap {
17
14
  this.nextSeq = nextSeq;
18
15
  }
19
16
  static new() {
20
- return new this((0, functional_red_black_tree_1.default)((a, b) => a - b), 1);
17
+ return new this(functional_red_black_tree_1.RedBlackTree.new((a, b) => a - b), 1);
21
18
  }
22
19
  bumpNextSeq() {
23
20
  return new SeqMap(this.tree, this.nextSeq + 1);
@@ -1 +1 @@
1
- {"version":3,"file":"seq_map.js","sourceRoot":"","sources":["../../../src/internal/seq_map.ts"],"names":[],"mappings":";;;;;;AAAA,oGAAyE;AAEzE;;;;;GAKG;AACH,MAAa,MAAM;IACjB,YACmB,IAA0B,EAC1B,OAAe;QADf,SAAI,GAAJ,IAAI,CAAsB;QAC1B,YAAO,GAAP,OAAO,CAAQ;IAC/B,CAAC;IAEJ,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,IAAI,CACb,IAAA,mCAAY,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAC7B,CAAC,CACF,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAa;QAC5B,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;CAKF;AA5BD,wBA4BC;AAMD,SAAgB,iBAAiB,CAAC,OAAsB;IACtD,kCAAkC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IACtC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC;AALD,8CAKC"}
1
+ {"version":3,"file":"seq_map.js","sourceRoot":"","sources":["../../../src/internal/seq_map.ts"],"names":[],"mappings":";;;AAAA,mFAAmE;AAEnE;;;;;GAKG;AACH,MAAa,MAAM;IACjB,YACmB,IAAkC,EAClC,OAAe;QADf,SAAI,GAAJ,IAAI,CAA8B;QAClC,YAAO,GAAP,OAAO,CAAQ;IAC/B,CAAC;IAEJ,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,IAAI,CACb,wCAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EACjC,CAAC,CACF,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAa;QAC5B,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;CAKF;AA5BD,wBA4BC;AAMD,SAAgB,iBAAiB,CAAC,OAAsB;IACtD,kCAAkC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IACtC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC;AALD,8CAKC"}
@@ -1,8 +1,93 @@
1
- export = createRBTree;
2
- declare function createRBTree(compare: any): RedBlackTree;
3
- declare function RedBlackTree(compare: any, root: any): void;
4
- declare class RedBlackTree {
5
- constructor(compare: any, root: any);
6
- _compare: any;
7
- root: any;
1
+ declare const RED = 0;
2
+ declare const BLACK = 1;
3
+ type Color = typeof RED | typeof BLACK;
4
+ /**
5
+ * @private Only exported for tests.
6
+ */
7
+ export declare class RBNode<K, V> {
8
+ color: Color;
9
+ /** The key associated with the node. */
10
+ key: K;
11
+ /** The value associated with the node. */
12
+ value: V;
13
+ /** The left subtree of the node. */
14
+ left: RBNode<K, V> | null;
15
+ /** The right subtree of the node. */
16
+ right: RBNode<K, V> | null;
17
+ constructor(color: Color,
18
+ /** The key associated with the node. */
19
+ key: K,
20
+ /** The value associated with the node. */
21
+ value: V,
22
+ /** The left subtree of the node. */
23
+ left: RBNode<K, V> | null,
24
+ /** The right subtree of the node. */
25
+ right: RBNode<K, V> | null);
8
26
  }
27
+ /** Represents a functional red-black tree. */
28
+ export declare class RedBlackTree<K, V> {
29
+ readonly compare: (key1: K, key2: K) => number;
30
+ private readonly root;
31
+ constructor(compare: (key1: K, key2: K) => number, root: RBNode<K, V> | null);
32
+ /**
33
+ * Creates an empty red-black tree.
34
+ *
35
+ * @param compare Comparison function, same semantics as array.sort().
36
+ * @returns An empty tree ordered by `compare`.
37
+ */
38
+ static new<K, V>(compare: (key1: K, key2: K) => number): RedBlackTree<K, V>;
39
+ /**
40
+ * Creates a new tree with `key` set to `value`, overwriting any
41
+ * existing value.
42
+ *
43
+ * @param key The key of the item to insert.
44
+ * @param value The value of the item to insert.
45
+ * @returns A new tree with `key` set to `value`.
46
+ */
47
+ set(key: K, value: V): RedBlackTree<K, V>;
48
+ /**
49
+ * Finds the last item in the tree whose key is <= `key`.
50
+ *
51
+ * @param key The key to search for.
52
+ * @returns An iterator at the given element.
53
+ */
54
+ le(key: K): RedBlackTreeIterator<K, V>;
55
+ /**
56
+ * @returns An iterator pointing to the first item in the tree with `key`, otherwise null.
57
+ */
58
+ find(key: K): RedBlackTreeIterator<K, V>;
59
+ /**
60
+ * Removes the first item with `key` in the tree.
61
+ *
62
+ * @param key The key of the item to remove.
63
+ * @returns A new tree with the given item removed, if it exists.
64
+ */
65
+ remove(key: K): RedBlackTree<K, V>;
66
+ /**
67
+ * Retrieves the value associated with `key`.
68
+ *
69
+ * @param key The key of the item to look up.
70
+ * @returns The value of the first node associated with `key`.
71
+ */
72
+ get(key: K): V | void;
73
+ }
74
+ /** Iterates through the nodes in a red-black tree. */
75
+ export declare class RedBlackTreeIterator<K, V> {
76
+ /** The tree associated with the iterator. */
77
+ readonly tree: RedBlackTree<K, V>;
78
+ private readonly stack;
79
+ constructor(
80
+ /** The tree associated with the iterator. */
81
+ tree: RedBlackTree<K, V>, stack: RBNode<K, V>[]);
82
+ /**
83
+ * Removes the iterator's current item form the tree.
84
+ *
85
+ * @returns A new binary search tree with the item removed.
86
+ */
87
+ remove(): RedBlackTree<K, V>;
88
+ /** The key of the iterator's current item. */
89
+ get key(): K | undefined;
90
+ /** The value of the iterator's current item. */
91
+ get value(): V | undefined;
92
+ }
93
+ export {};