list-toolkit 2.2.6 → 2.3.0

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 (125) hide show
  1. package/README.md +40 -37
  2. package/llms-full.txt +743 -0
  3. package/llms.txt +100 -0
  4. package/package.json +34 -29
  5. package/src/cache/cache-fifo.d.ts +6 -0
  6. package/src/cache/cache-fifo.js +7 -4
  7. package/src/cache/cache-lfu.d.ts +18 -0
  8. package/src/cache/cache-lfu.js +18 -6
  9. package/src/cache/cache-lru.d.ts +74 -0
  10. package/src/cache/cache-lru.js +60 -5
  11. package/src/cache/cache-random.d.ts +20 -0
  12. package/src/cache/cache-random.js +17 -6
  13. package/src/cache/decorator.d.ts +46 -0
  14. package/src/cache/decorator.js +26 -2
  15. package/src/cache.d.ts +13 -0
  16. package/src/cache.js +7 -2
  17. package/src/ext-list.d.ts +3 -0
  18. package/src/ext-list.js +0 -2
  19. package/src/ext-slist.d.ts +3 -0
  20. package/src/ext-slist.js +0 -2
  21. package/src/ext-value-list.d.ts +3 -0
  22. package/src/ext-value-list.js +0 -2
  23. package/src/ext-value-slist.d.ts +3 -0
  24. package/src/ext-value-slist.js +0 -2
  25. package/src/heap/basics.d.ts +89 -0
  26. package/src/heap/basics.js +42 -5
  27. package/src/heap/leftist-heap.d.ts +107 -0
  28. package/src/heap/leftist-heap.js +54 -2
  29. package/src/heap/min-heap.d.ts +270 -0
  30. package/src/heap/min-heap.js +186 -2
  31. package/src/heap/skew-heap.d.ts +105 -0
  32. package/src/heap/skew-heap.js +54 -2
  33. package/src/heap.d.ts +3 -0
  34. package/src/heap.js +0 -2
  35. package/src/list/basics.d.ts +43 -0
  36. package/src/list/basics.js +26 -8
  37. package/src/list/core.d.ts +271 -0
  38. package/src/list/core.js +162 -7
  39. package/src/list/ext-value.d.ts +253 -0
  40. package/src/list/ext-value.js +40 -6
  41. package/src/list/ext.d.ts +242 -0
  42. package/src/list/ext.js +148 -10
  43. package/src/list/nodes.d.ts +336 -0
  44. package/src/list/nodes.js +141 -3
  45. package/src/list/ptr.d.ts +72 -0
  46. package/src/list/ptr.js +44 -2
  47. package/src/list/value.d.ts +292 -0
  48. package/src/list/value.js +47 -6
  49. package/src/list-helpers.d.ts +44 -0
  50. package/src/list-helpers.js +36 -3
  51. package/src/list-utils.d.ts +141 -0
  52. package/src/list-utils.js +89 -3
  53. package/src/list.d.ts +3 -0
  54. package/src/list.js +0 -2
  55. package/src/meta-utils.d.ts +212 -0
  56. package/src/meta-utils.js +152 -1
  57. package/src/nt-utils.d.ts +91 -0
  58. package/src/nt-utils.js +65 -4
  59. package/src/queue.d.ts +74 -0
  60. package/src/queue.js +28 -2
  61. package/src/slist/basics.d.ts +47 -0
  62. package/src/slist/basics.js +23 -8
  63. package/src/slist/core.d.ts +251 -0
  64. package/src/slist/core.js +151 -6
  65. package/src/slist/ext-value.d.ts +188 -0
  66. package/src/slist/ext-value.js +35 -6
  67. package/src/slist/ext.d.ts +182 -0
  68. package/src/slist/ext.js +114 -12
  69. package/src/slist/nodes.d.ts +361 -0
  70. package/src/slist/nodes.js +156 -3
  71. package/src/slist/ptr.d.ts +73 -0
  72. package/src/slist/ptr.js +45 -2
  73. package/src/slist/value.d.ts +246 -0
  74. package/src/slist/value.js +38 -6
  75. package/src/slist.d.ts +3 -0
  76. package/src/slist.js +0 -2
  77. package/src/stack.d.ts +59 -0
  78. package/src/stack.js +29 -3
  79. package/src/tree/splay-tree.d.ts +151 -0
  80. package/src/tree/splay-tree.js +94 -3
  81. package/src/value-list.d.ts +3 -0
  82. package/src/value-list.js +0 -2
  83. package/src/value-slist.d.ts +3 -0
  84. package/src/value-slist.js +0 -2
  85. package/cjs/cache/cache-fifo.js +0 -37
  86. package/cjs/cache/cache-lfu.js +0 -76
  87. package/cjs/cache/cache-lru.js +0 -100
  88. package/cjs/cache/cache-random.js +0 -77
  89. package/cjs/cache/decorator.js +0 -47
  90. package/cjs/cache.js +0 -27
  91. package/cjs/ext-list.js +0 -21
  92. package/cjs/ext-slist.js +0 -21
  93. package/cjs/ext-value-list.js +0 -21
  94. package/cjs/ext-value-slist.js +0 -21
  95. package/cjs/heap/basics.js +0 -63
  96. package/cjs/heap/leftist-heap.js +0 -124
  97. package/cjs/heap/min-heap.js +0 -294
  98. package/cjs/heap/skew-heap.js +0 -114
  99. package/cjs/heap.js +0 -21
  100. package/cjs/list/basics.js +0 -88
  101. package/cjs/list/core.js +0 -305
  102. package/cjs/list/ext-value.js +0 -88
  103. package/cjs/list/ext.js +0 -356
  104. package/cjs/list/nodes.js +0 -240
  105. package/cjs/list/ptr.js +0 -61
  106. package/cjs/list/value.js +0 -99
  107. package/cjs/list-helpers.js +0 -91
  108. package/cjs/list-utils.js +0 -141
  109. package/cjs/list.js +0 -21
  110. package/cjs/meta-utils.js +0 -171
  111. package/cjs/nt-utils.js +0 -132
  112. package/cjs/package.json +0 -1
  113. package/cjs/queue.js +0 -58
  114. package/cjs/slist/basics.js +0 -71
  115. package/cjs/slist/core.js +0 -362
  116. package/cjs/slist/ext-value.js +0 -82
  117. package/cjs/slist/ext.js +0 -336
  118. package/cjs/slist/nodes.js +0 -276
  119. package/cjs/slist/ptr.js +0 -87
  120. package/cjs/slist/value.js +0 -90
  121. package/cjs/slist.js +0 -21
  122. package/cjs/stack.js +0 -55
  123. package/cjs/tree/splay-tree.js +0 -362
  124. package/cjs/value-list.js +0 -21
  125. package/cjs/value-slist.js +0 -21
@@ -0,0 +1,188 @@
1
+ import {ExtListBase, ValueNode, PtrBase, SllOptions, SllRange, SllPtrRange} from './nodes.js';
2
+ import {Ptr} from './ext.js';
3
+
4
+ /**
5
+ * External (headless) value-based singly linked list. Wraps values in {@link ValueNode}.
6
+ *
7
+ * Extends `ExtSList` at runtime. Internally nodes are `ValueNode<V>`.
8
+ * The default iterator and `getIterator` yield unwrapped `V` values;
9
+ * use `getNodeIterator` for `ValueNode<V>` nodes.
10
+ */
11
+ export class ExtValueSList<V = unknown> extends ExtListBase<ValueNode<V>> {
12
+ /** A pointer-based range spanning all nodes, or `null` if empty. */
13
+ get ptrRange(): SllPtrRange<ValueNode<V>> | null;
14
+
15
+ /**
16
+ * Create a pointer to a node in this list.
17
+ * @param node - Target node, or `undefined` for the head.
18
+ * @returns A new Ptr.
19
+ */
20
+ makePtr(node?: ValueNode<V>): Ptr<ValueNode<V>>;
21
+
22
+ /**
23
+ * Create a pointer to the node after `prev`.
24
+ * @param prev - Preceding node, or `undefined` for the head.
25
+ * @returns A new Ptr.
26
+ */
27
+ makePtrFromPrev(prev?: ValueNode<V>): Ptr<ValueNode<V>>;
28
+
29
+ /**
30
+ * Remove the node after the head.
31
+ * @returns The removed node, or `null` if empty.
32
+ */
33
+ removeNodeAfter(): ValueNode<V> | null;
34
+
35
+ /** Alias for {@link removeNodeAfter}. */
36
+ removeAfter(): ValueNode<V> | null;
37
+
38
+ /**
39
+ * Adopt a value, pointer, or ValueNode into this list.
40
+ * @param value - Raw value, Ptr, or ValueNode.
41
+ * @returns A ValueNode ready for insertion.
42
+ */
43
+ adoptValue(value: V | ValueNode<V> | PtrBase<ValueNode<V>>): ValueNode<V>;
44
+
45
+ /**
46
+ * Insert a value after the head.
47
+ * @param value - Raw value, ValueNode, or Ptr.
48
+ * @returns A Ptr to the inserted node.
49
+ */
50
+ addAfter(value: V | ValueNode<V> | PtrBase<ValueNode<V>>): Ptr<ValueNode<V>>;
51
+
52
+ /** Alias for {@link addAfter}. */
53
+ add(value: V | ValueNode<V> | PtrBase<ValueNode<V>>): Ptr<ValueNode<V>>;
54
+
55
+ /**
56
+ * Insert an existing node after the head.
57
+ * @param node - ValueNode or pointer to insert.
58
+ * @returns A Ptr to the inserted node.
59
+ */
60
+ addNodeAfter(node: ValueNode<V> | PtrBase<ValueNode<V>>): Ptr<ValueNode<V>>;
61
+
62
+ /**
63
+ * Splice another list's nodes after the head.
64
+ * @param extList - Compatible external list to consume.
65
+ * @returns A Ptr to the first inserted node.
66
+ */
67
+ insertAfter(extList: ExtValueSList<V>): Ptr<ValueNode<V>>;
68
+
69
+ /**
70
+ * Move a pointed-to node to just after the head.
71
+ * @param ptr - Pointer to the node to move.
72
+ * @returns A Ptr to the moved node, or `this` if already at head.
73
+ */
74
+ moveAfter(ptr: PtrBase<ValueNode<V>>): Ptr<ValueNode<V>> | this;
75
+
76
+ /**
77
+ * Remove all nodes.
78
+ * @param drop - If `true`, make each removed node stand-alone.
79
+ * @returns `this` for chaining.
80
+ */
81
+ clear(drop?: boolean): this;
82
+
83
+ /**
84
+ * Remove a node via its pointer.
85
+ * @param ptr - Pointer to the node to remove.
86
+ * @returns The removed node, or `null` if empty.
87
+ */
88
+ removeNode(ptr: PtrBase<ValueNode<V>>): ValueNode<V> | null;
89
+
90
+ /**
91
+ * Remove a pointer-based range and optionally drop nodes.
92
+ * @param ptrRange - Range to remove.
93
+ * @param drop - If `true`, make each removed node stand-alone.
94
+ * @returns A new ExtValueSList containing the removed values.
95
+ */
96
+ removeRange(ptrRange?: SllPtrRange<ValueNode<V>>, drop?: boolean): ExtValueSList<V>;
97
+
98
+ /**
99
+ * Extract a pointer-based range into a new list.
100
+ * @param ptrRange - Range to extract (defaults to the whole list).
101
+ * @returns A new ExtValueSList containing the extracted values.
102
+ */
103
+ extractRange(ptrRange?: SllPtrRange<ValueNode<V>>): ExtValueSList<V>;
104
+
105
+ /**
106
+ * Extract nodes that satisfy a condition into a new list.
107
+ * @param condition - Predicate receiving each ValueNode.
108
+ * @returns A new ExtValueSList containing the extracted values.
109
+ */
110
+ extractBy(condition: (node: ValueNode<V>) => boolean): ExtValueSList<V>;
111
+
112
+ /**
113
+ * Reverse the order of all nodes in place.
114
+ * @returns `this` for chaining.
115
+ */
116
+ reverse(): this;
117
+
118
+ /**
119
+ * Sort nodes in place using merge sort.
120
+ * @param lessFn - Comparison receiving ValueNodes, returns `true` if `a` should precede `b`.
121
+ * @returns `this` for chaining.
122
+ */
123
+ sort(lessFn: (a: ValueNode<V>, b: ValueNode<V>) => boolean): this;
124
+
125
+ /** Iterate over unwrapped values starting from the head. */
126
+ [Symbol.iterator](): IterableIterator<V>;
127
+
128
+ /**
129
+ * Get an iterable over ValueNodes in a range.
130
+ * @param range - Sub-range to iterate.
131
+ * @returns An iterable iterator of ValueNodes.
132
+ */
133
+ getNodeIterator(range?: SllRange<ValueNode<V>>): IterableIterator<ValueNode<V>>;
134
+
135
+ /**
136
+ * Get an iterable over unwrapped values in a range.
137
+ * @param range - Sub-range to iterate.
138
+ * @returns An iterable iterator of values.
139
+ */
140
+ getValueIterator(range?: SllRange<ValueNode<V>>): IterableIterator<V>;
141
+
142
+ /** Alias for {@link getValueIterator}. */
143
+ getIterator(range?: SllRange<ValueNode<V>>): IterableIterator<V>;
144
+
145
+ /**
146
+ * Get an iterable of Ptr objects over a pointer range.
147
+ * @param ptrRange - Sub-range to iterate.
148
+ * @returns An iterable iterator of Ptrs.
149
+ */
150
+ getPtrIterator(ptrRange?: SllPtrRange<ValueNode<V>>): IterableIterator<Ptr<ValueNode<V>>>;
151
+
152
+ /**
153
+ * Create a shallow clone of this list.
154
+ * @returns A new ExtValueSList pointing to the same head.
155
+ */
156
+ clone(): ExtValueSList<V>;
157
+
158
+ /**
159
+ * Create an empty list with the same options.
160
+ * @param head - Optional initial head node.
161
+ * @returns A new ExtValueSList.
162
+ */
163
+ make(head?: ValueNode<V> | null): ExtValueSList<V>;
164
+
165
+ /**
166
+ * Create a list from values with the same options.
167
+ * @param values - Iterable of values.
168
+ * @returns A new ExtValueSList.
169
+ */
170
+ makeFrom(values: Iterable<V>): ExtValueSList<V>;
171
+
172
+ /**
173
+ * Build an ExtValueSList from an iterable.
174
+ * @param values - Iterable of values.
175
+ * @param options - Link property names.
176
+ * @returns A new ExtValueSList.
177
+ */
178
+ static from<V = unknown>(values: Iterable<V>, options?: SllOptions): ExtValueSList<V>;
179
+
180
+ /** The Ptr class associated with this list type. */
181
+ static Ptr: typeof Ptr;
182
+
183
+ /** The ValueNode class used by this list type. */
184
+ static ValueNode: typeof ValueNode;
185
+ }
186
+
187
+ export { ValueNode };
188
+ export default ExtValueSList;
@@ -1,10 +1,17 @@
1
- 'use strict';
2
-
3
1
  import ExtSList, {Ptr} from './ext.js';
4
2
  import {ValueNode} from './nodes.js';
5
3
  import {addAlias, mapIterator, normalizeIterator} from '../meta-utils.js';
6
4
 
5
+ /**
6
+ * External (headless) value-based singly linked list. Wraps values in {@link ValueNode}.
7
+ * Iterators yield unwrapped values; use `getNodeIterator` for ValueNode access.
8
+ */
7
9
  export class ExtValueSList extends ExtSList {
10
+ /**
11
+ * Adopt a value, pointer, or ValueNode into this list.
12
+ * @param {*} value - Raw value, Ptr, or ValueNode.
13
+ * @returns {ValueNode} A ValueNode ready for insertion.
14
+ */
8
15
  adoptValue(value) {
9
16
  if (value instanceof Ptr) {
10
17
  if (!this.isCompatiblePtr(value)) throw new Error('Incompatible pointer');
@@ -21,8 +28,7 @@ export class ExtValueSList extends ExtSList {
21
28
  return new ValueNode(value, this);
22
29
  }
23
30
 
24
- // iterators
25
-
31
+ /** Iterate over unwrapped values starting from the head. */
26
32
  [Symbol.iterator]() {
27
33
  let current = this.head,
28
34
  readyToStop = this.isEmpty;
@@ -37,24 +43,47 @@ export class ExtValueSList extends ExtSList {
37
43
  });
38
44
  }
39
45
 
46
+ /**
47
+ * Get an iterable over unwrapped values in a range.
48
+ * @param {object} [range] - Sub-range to iterate.
49
+ * @returns {Iterable} An iterable iterator of values.
50
+ */
40
51
  getValueIterator(range) {
41
52
  return mapIterator(this.getNodeIterator(range), node => node.value);
42
53
  }
43
54
 
44
- // meta helpers
45
-
55
+ /**
56
+ * Create a shallow clone of this list.
57
+ * @returns {ExtValueSList} A new ExtValueSList pointing to the same head.
58
+ */
46
59
  clone() {
47
60
  return new ExtValueSList(this);
48
61
  }
49
62
 
63
+ /**
64
+ * Create an empty list with the same options.
65
+ * @param {object|null} [head=null] - Optional initial head node.
66
+ * @returns {ExtValueSList} A new ExtValueSList.
67
+ */
50
68
  make(head = null) {
51
69
  return new ExtValueSList(head, this);
52
70
  }
53
71
 
72
+ /**
73
+ * Create a list from values with the same options.
74
+ * @param {Iterable} values - Iterable of values.
75
+ * @returns {ExtValueSList} A new ExtValueSList.
76
+ */
54
77
  makeFrom(values) {
55
78
  return ExtValueSList.from(values, this);
56
79
  }
57
80
 
81
+ /**
82
+ * Build an ExtValueSList from an iterable.
83
+ * @param {Iterable} values - Iterable of values.
84
+ * @param {object} [options] - Link property names.
85
+ * @returns {ExtValueSList} A new ExtValueSList.
86
+ */
58
87
  static from(values, options) {
59
88
  const list = new ExtValueSList(null, options);
60
89
  for (const value of values) {
@@ -0,0 +1,182 @@
1
+ import {ExtListBase, PtrBase, SllOptions, SllRange, SllPtrRange} from './nodes.js';
2
+
3
+ /** Pointer for navigating and mutating an external (headless) SLL. */
4
+ export class Ptr<T extends object = object> extends PtrBase<T> {
5
+ /** The external list this pointer belongs to. */
6
+ list: ExtSList<T>;
7
+
8
+ /**
9
+ * @param list - Owning list or another Ptr to copy.
10
+ * @param node - Target node.
11
+ * @param prev - Preceding node.
12
+ */
13
+ constructor(list: ExtSList<T> | Ptr<T>, node?: T | PtrBase<T>, prev?: T);
14
+
15
+ /**
16
+ * Create a copy of this pointer.
17
+ * @returns A new Ptr referencing the same list and node.
18
+ */
19
+ clone(): Ptr<T>;
20
+ }
21
+
22
+ /** External (headless) node-based singly linked list. */
23
+ export class ExtSList<T extends object = object> extends ExtListBase<T> {
24
+ /** A pointer-based range spanning all nodes, or `null` if empty. */
25
+ get ptrRange(): SllPtrRange<T> | null;
26
+
27
+ /**
28
+ * Create a pointer to a node in this list.
29
+ * @param node - Target node, or `undefined` for the head.
30
+ * @returns A new Ptr.
31
+ */
32
+ makePtr(node?: T): Ptr<T>;
33
+
34
+ /**
35
+ * Create a pointer to the node after `prev`.
36
+ * @param prev - Preceding node, or `undefined` for the head.
37
+ * @returns A new Ptr.
38
+ */
39
+ makePtrFromPrev(prev?: T): Ptr<T>;
40
+
41
+ /**
42
+ * Remove the node after the head.
43
+ * @returns The removed node, or `null` if empty.
44
+ */
45
+ removeNodeAfter(): T | null;
46
+
47
+ /** Alias for {@link removeNodeAfter}. */
48
+ removeAfter(): T | null;
49
+
50
+ /**
51
+ * Insert a value after the head.
52
+ * @param value - Value or node to insert.
53
+ * @returns A Ptr to the inserted node.
54
+ */
55
+ addAfter(value: T | PtrBase<T>): Ptr<T>;
56
+
57
+ /** Alias for {@link addAfter}. */
58
+ add(value: T | PtrBase<T>): Ptr<T>;
59
+
60
+ /**
61
+ * Insert an existing node after the head.
62
+ * @param node - Node or pointer to insert.
63
+ * @returns A Ptr to the inserted node.
64
+ */
65
+ addNodeAfter(node: T | PtrBase<T>): Ptr<T>;
66
+
67
+ /**
68
+ * Splice another external list's nodes after the head.
69
+ * @param extList - Compatible external list to consume.
70
+ * @returns A Ptr to the first inserted node.
71
+ */
72
+ insertAfter(extList: ExtSList<T>): Ptr<T>;
73
+
74
+ /**
75
+ * Move a pointed-to node to just after the head.
76
+ * @param ptr - Pointer to the node to move.
77
+ * @returns A Ptr to the moved node, or `this` if already at head.
78
+ */
79
+ moveAfter(ptr: PtrBase<T>): Ptr<T> | this;
80
+
81
+ /**
82
+ * Remove all nodes.
83
+ * @param drop - If `true`, make each removed node stand-alone.
84
+ * @returns `this` for chaining.
85
+ */
86
+ clear(drop?: boolean): this;
87
+
88
+ /**
89
+ * Remove a node via its pointer.
90
+ * @param ptr - Pointer to the node to remove.
91
+ * @returns The removed node, or `null` if empty.
92
+ */
93
+ removeNode(ptr: PtrBase<T>): T | null;
94
+
95
+ /**
96
+ * Remove a pointer-based range and optionally drop nodes.
97
+ * @param ptrRange - Range to remove.
98
+ * @param drop - If `true`, make each removed node stand-alone.
99
+ * @returns A new ExtSList containing the removed nodes.
100
+ */
101
+ removeRange(ptrRange?: SllPtrRange<T>, drop?: boolean): ExtSList<T>;
102
+
103
+ /**
104
+ * Extract a pointer-based range into a new list.
105
+ * @param ptrRange - Range to extract (defaults to the whole list).
106
+ * @returns A new ExtSList containing the extracted nodes.
107
+ */
108
+ extractRange(ptrRange?: SllPtrRange<T>): ExtSList<T>;
109
+
110
+ /**
111
+ * Extract nodes that satisfy a condition into a new list.
112
+ * @param condition - Predicate receiving each node.
113
+ * @returns A new ExtSList containing the extracted nodes.
114
+ */
115
+ extractBy(condition: (node: T) => boolean): ExtSList<T>;
116
+
117
+ /**
118
+ * Reverse the order of all nodes in place.
119
+ * @returns `this` for chaining.
120
+ */
121
+ reverse(): this;
122
+
123
+ /**
124
+ * Sort nodes in place using merge sort.
125
+ * @param lessFn - Returns `true` if `a` should precede `b`.
126
+ * @returns `this` for chaining.
127
+ */
128
+ sort(lessFn: (a: T, b: T) => boolean): this;
129
+
130
+ /** Iterate over nodes starting from the head. */
131
+ [Symbol.iterator](): IterableIterator<T>;
132
+
133
+ /**
134
+ * Get an iterable over nodes in a range.
135
+ * @param range - Sub-range to iterate.
136
+ * @returns An iterable iterator of nodes.
137
+ */
138
+ getNodeIterator(range?: SllRange<T>): IterableIterator<T>;
139
+
140
+ /** Alias for {@link getNodeIterator}. */
141
+ getIterator(range?: SllRange<T>): IterableIterator<T>;
142
+
143
+ /**
144
+ * Get an iterable of Ptr objects over a pointer range.
145
+ * @param ptrRange - Sub-range to iterate.
146
+ * @returns An iterable iterator of Ptrs.
147
+ */
148
+ getPtrIterator(ptrRange?: SllPtrRange<T>): IterableIterator<Ptr<T>>;
149
+
150
+ /**
151
+ * Create a shallow clone of this list (shares nodes).
152
+ * @returns A new ExtSList pointing to the same head.
153
+ */
154
+ clone(): ExtSList<T>;
155
+
156
+ /**
157
+ * Create an empty list with the same options.
158
+ * @param head - Optional initial head node.
159
+ * @returns A new ExtSList.
160
+ */
161
+ make(head?: T | null): ExtSList<T>;
162
+
163
+ /**
164
+ * Create a list from values with the same options.
165
+ * @param values - Iterable of node objects.
166
+ * @returns A new ExtSList.
167
+ */
168
+ makeFrom(values: Iterable<T>): ExtSList<T>;
169
+
170
+ /**
171
+ * Build an ExtSList from an iterable of node objects.
172
+ * @param values - Iterable of nodes.
173
+ * @param options - Link property names.
174
+ * @returns A new ExtSList.
175
+ */
176
+ static from<T extends object = object>(values: Iterable<T>, options?: SllOptions): ExtSList<T>;
177
+
178
+ /** The Ptr class associated with this list type. */
179
+ static Ptr: typeof Ptr;
180
+ }
181
+
182
+ export default ExtSList;