@zengrid/shared 1.0.3 → 1.1.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 (217) hide show
  1. package/README.md +4 -0
  2. package/dist/README.md +48 -0
  3. package/dist/index.cjs.default.js +1 -0
  4. package/dist/index.cjs.js +8696 -0
  5. package/dist/index.cjs.mjs +2 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.esm.js +8640 -0
  8. package/dist/package.json +54 -0
  9. package/dist/src/algorithms/filter/bloom-filter.d.ts +120 -0
  10. package/dist/src/algorithms/filter/bloom-filter.d.ts.map +1 -0
  11. package/dist/src/algorithms/filter/index.d.ts +7 -0
  12. package/dist/src/algorithms/filter/index.d.ts.map +1 -0
  13. package/dist/src/algorithms/graph/bfs.d.ts +71 -0
  14. package/dist/src/algorithms/graph/bfs.d.ts.map +1 -0
  15. package/dist/src/algorithms/graph/dfs.d.ts +62 -0
  16. package/dist/src/algorithms/graph/dfs.d.ts.map +1 -0
  17. package/dist/src/algorithms/graph/graph.interface.d.ts +63 -0
  18. package/dist/src/algorithms/graph/graph.interface.d.ts.map +1 -0
  19. package/dist/src/algorithms/graph/index.d.ts +9 -0
  20. package/dist/src/algorithms/graph/index.d.ts.map +1 -0
  21. package/dist/src/algorithms/index.d.ts +11 -0
  22. package/dist/src/algorithms/index.d.ts.map +1 -0
  23. package/dist/src/algorithms/pattern/index.d.ts +8 -0
  24. package/dist/src/algorithms/pattern/index.d.ts.map +1 -0
  25. package/dist/src/algorithms/pattern/sequence-detector.d.ts +62 -0
  26. package/dist/src/algorithms/pattern/sequence-detector.d.ts.map +1 -0
  27. package/dist/src/algorithms/search/binary-search.d.ts +86 -0
  28. package/dist/src/algorithms/search/binary-search.d.ts.map +1 -0
  29. package/dist/src/algorithms/search/index.d.ts +6 -0
  30. package/dist/src/algorithms/search/index.d.ts.map +1 -0
  31. package/dist/src/algorithms/sorting/comparators.d.ts +126 -0
  32. package/dist/src/algorithms/sorting/comparators.d.ts.map +1 -0
  33. package/dist/src/algorithms/sorting/index.d.ts +9 -0
  34. package/dist/src/algorithms/sorting/index.d.ts.map +1 -0
  35. package/dist/src/algorithms/sorting/sorting.interface.d.ts +38 -0
  36. package/dist/src/algorithms/sorting/sorting.interface.d.ts.map +1 -0
  37. package/dist/src/algorithms/sorting/timsort-gallop.d.ts +21 -0
  38. package/dist/src/algorithms/sorting/timsort-gallop.d.ts.map +1 -0
  39. package/dist/src/algorithms/sorting/timsort-merge.d.ts +6 -0
  40. package/dist/src/algorithms/sorting/timsort-merge.d.ts.map +1 -0
  41. package/dist/src/algorithms/sorting/timsort-run.d.ts +38 -0
  42. package/dist/src/algorithms/sorting/timsort-run.d.ts.map +1 -0
  43. package/dist/src/algorithms/sorting/timsort.d.ts +55 -0
  44. package/dist/src/algorithms/sorting/timsort.d.ts.map +1 -0
  45. package/dist/src/algorithms/sorting/timsort.interface.d.ts +32 -0
  46. package/dist/src/algorithms/sorting/timsort.interface.d.ts.map +1 -0
  47. package/dist/src/data-structures/column-store/column-store.d.ts +52 -0
  48. package/dist/src/data-structures/column-store/column-store.d.ts.map +1 -0
  49. package/dist/src/data-structures/column-store/column-store.interface.d.ts +155 -0
  50. package/dist/src/data-structures/column-store/column-store.interface.d.ts.map +1 -0
  51. package/dist/src/data-structures/column-store/index.d.ts +6 -0
  52. package/dist/src/data-structures/column-store/index.d.ts.map +1 -0
  53. package/dist/src/data-structures/command-stack/command-stack.d.ts +61 -0
  54. package/dist/src/data-structures/command-stack/command-stack.d.ts.map +1 -0
  55. package/dist/src/data-structures/command-stack/command-stack.interface.d.ts +80 -0
  56. package/dist/src/data-structures/command-stack/command-stack.interface.d.ts.map +1 -0
  57. package/dist/src/data-structures/command-stack/index.d.ts +3 -0
  58. package/dist/src/data-structures/command-stack/index.d.ts.map +1 -0
  59. package/dist/src/data-structures/dependency-graph/dependency-graph.d.ts +147 -0
  60. package/dist/src/data-structures/dependency-graph/dependency-graph.d.ts.map +1 -0
  61. package/dist/src/data-structures/dependency-graph/dependency-graph.interface.d.ts +161 -0
  62. package/dist/src/data-structures/dependency-graph/dependency-graph.interface.d.ts.map +1 -0
  63. package/dist/src/data-structures/dependency-graph/index.d.ts +8 -0
  64. package/dist/src/data-structures/dependency-graph/index.d.ts.map +1 -0
  65. package/dist/src/data-structures/disjoint-set/disjoint-set.d.ts +84 -0
  66. package/dist/src/data-structures/disjoint-set/disjoint-set.d.ts.map +1 -0
  67. package/dist/src/data-structures/disjoint-set/disjoint-set.interface.d.ts +185 -0
  68. package/dist/src/data-structures/disjoint-set/disjoint-set.interface.d.ts.map +1 -0
  69. package/dist/src/data-structures/disjoint-set/index.d.ts +7 -0
  70. package/dist/src/data-structures/disjoint-set/index.d.ts.map +1 -0
  71. package/dist/src/data-structures/index-map/index-map.d.ts +150 -0
  72. package/dist/src/data-structures/index-map/index-map.d.ts.map +1 -0
  73. package/dist/src/data-structures/index-map/index-map.interface.d.ts +186 -0
  74. package/dist/src/data-structures/index-map/index-map.interface.d.ts.map +1 -0
  75. package/dist/src/data-structures/index-map/index.d.ts +6 -0
  76. package/dist/src/data-structures/index-map/index.d.ts.map +1 -0
  77. package/dist/src/data-structures/index.d.ts +36 -0
  78. package/dist/src/data-structures/index.d.ts.map +1 -0
  79. package/dist/src/data-structures/interval-tree/index.d.ts +7 -0
  80. package/dist/src/data-structures/interval-tree/index.d.ts.map +1 -0
  81. package/dist/src/data-structures/interval-tree/interval-tree.d.ts +58 -0
  82. package/dist/src/data-structures/interval-tree/interval-tree.d.ts.map +1 -0
  83. package/dist/src/data-structures/interval-tree/interval-tree.interface.d.ts +212 -0
  84. package/dist/src/data-structures/interval-tree/interval-tree.interface.d.ts.map +1 -0
  85. package/dist/src/data-structures/interval-tree/node.d.ts +34 -0
  86. package/dist/src/data-structures/interval-tree/node.d.ts.map +1 -0
  87. package/dist/src/data-structures/interval-tree/operations/balance.d.ts +34 -0
  88. package/dist/src/data-structures/interval-tree/operations/balance.d.ts.map +1 -0
  89. package/dist/src/data-structures/interval-tree/operations/delete.d.ts +26 -0
  90. package/dist/src/data-structures/interval-tree/operations/delete.d.ts.map +1 -0
  91. package/dist/src/data-structures/interval-tree/operations/insert.d.ts +19 -0
  92. package/dist/src/data-structures/interval-tree/operations/insert.d.ts.map +1 -0
  93. package/dist/src/data-structures/interval-tree/operations/search.d.ts +46 -0
  94. package/dist/src/data-structures/interval-tree/operations/search.d.ts.map +1 -0
  95. package/dist/src/data-structures/interval-tree/operations/traversal.d.ts +29 -0
  96. package/dist/src/data-structures/interval-tree/operations/traversal.d.ts.map +1 -0
  97. package/dist/src/data-structures/interval-tree/operations/utilities.d.ts +30 -0
  98. package/dist/src/data-structures/interval-tree/operations/utilities.d.ts.map +1 -0
  99. package/dist/src/data-structures/lru-cache/index.d.ts +3 -0
  100. package/dist/src/data-structures/lru-cache/index.d.ts.map +1 -0
  101. package/dist/src/data-structures/lru-cache/lru-cache.d.ts +134 -0
  102. package/dist/src/data-structures/lru-cache/lru-cache.d.ts.map +1 -0
  103. package/dist/src/data-structures/lru-cache/lru-cache.interface.d.ts +173 -0
  104. package/dist/src/data-structures/lru-cache/lru-cache.interface.d.ts.map +1 -0
  105. package/dist/src/data-structures/prefix-sum-array/index.d.ts +6 -0
  106. package/dist/src/data-structures/prefix-sum-array/index.d.ts.map +1 -0
  107. package/dist/src/data-structures/prefix-sum-array/prefix-sum-array.d.ts +63 -0
  108. package/dist/src/data-structures/prefix-sum-array/prefix-sum-array.d.ts.map +1 -0
  109. package/dist/src/data-structures/prefix-sum-array/prefix-sum-array.interface.d.ts +80 -0
  110. package/dist/src/data-structures/prefix-sum-array/prefix-sum-array.interface.d.ts.map +1 -0
  111. package/dist/src/data-structures/ring-buffer.d.ts +96 -0
  112. package/dist/src/data-structures/ring-buffer.d.ts.map +1 -0
  113. package/dist/src/data-structures/rtree/index.d.ts +8 -0
  114. package/dist/src/data-structures/rtree/index.d.ts.map +1 -0
  115. package/dist/src/data-structures/rtree/rtree.d.ts +81 -0
  116. package/dist/src/data-structures/rtree/rtree.d.ts.map +1 -0
  117. package/dist/src/data-structures/rtree/rtree.interface.d.ts +143 -0
  118. package/dist/src/data-structures/rtree/rtree.interface.d.ts.map +1 -0
  119. package/dist/src/data-structures/segment-tree/aggregation-config.d.ts +6 -0
  120. package/dist/src/data-structures/segment-tree/aggregation-config.d.ts.map +1 -0
  121. package/dist/src/data-structures/segment-tree/index.d.ts +4 -0
  122. package/dist/src/data-structures/segment-tree/index.d.ts.map +1 -0
  123. package/dist/src/data-structures/segment-tree/lazy-propagation.d.ts +5 -0
  124. package/dist/src/data-structures/segment-tree/lazy-propagation.d.ts.map +1 -0
  125. package/dist/src/data-structures/segment-tree/segment-tree.d.ts +30 -0
  126. package/dist/src/data-structures/segment-tree/segment-tree.d.ts.map +1 -0
  127. package/dist/src/data-structures/segment-tree/segment-tree.interface.d.ts +202 -0
  128. package/dist/src/data-structures/segment-tree/segment-tree.interface.d.ts.map +1 -0
  129. package/dist/src/data-structures/segment-tree/tree-builder.d.ts +3 -0
  130. package/dist/src/data-structures/segment-tree/tree-builder.d.ts.map +1 -0
  131. package/dist/src/data-structures/segment-tree/tree-query.d.ts +3 -0
  132. package/dist/src/data-structures/segment-tree/tree-query.d.ts.map +1 -0
  133. package/dist/src/data-structures/segment-tree/tree-search.d.ts +2 -0
  134. package/dist/src/data-structures/segment-tree/tree-search.d.ts.map +1 -0
  135. package/dist/src/data-structures/segment-tree/tree-update.d.ts +4 -0
  136. package/dist/src/data-structures/segment-tree/tree-update.d.ts.map +1 -0
  137. package/dist/src/data-structures/segment-tree/tree-validation.d.ts +3 -0
  138. package/dist/src/data-structures/segment-tree/tree-validation.d.ts.map +1 -0
  139. package/dist/src/data-structures/skip-list/index.d.ts +4 -0
  140. package/dist/src/data-structures/skip-list/index.d.ts.map +1 -0
  141. package/dist/src/data-structures/skip-list/skip-list.d.ts +137 -0
  142. package/dist/src/data-structures/skip-list/skip-list.d.ts.map +1 -0
  143. package/dist/src/data-structures/skip-list/skip-list.interface.d.ts +223 -0
  144. package/dist/src/data-structures/skip-list/skip-list.interface.d.ts.map +1 -0
  145. package/dist/src/data-structures/sparse-matrix/index.d.ts +6 -0
  146. package/dist/src/data-structures/sparse-matrix/index.d.ts.map +1 -0
  147. package/dist/src/data-structures/sparse-matrix/sparse-matrix.d.ts +44 -0
  148. package/dist/src/data-structures/sparse-matrix/sparse-matrix.d.ts.map +1 -0
  149. package/dist/src/data-structures/sparse-matrix/sparse-matrix.interface.d.ts +105 -0
  150. package/dist/src/data-structures/sparse-matrix/sparse-matrix.interface.d.ts.map +1 -0
  151. package/dist/src/data-structures/suffix-array/index.d.ts +3 -0
  152. package/dist/src/data-structures/suffix-array/index.d.ts.map +1 -0
  153. package/dist/src/data-structures/suffix-array/suffix-array.d.ts +102 -0
  154. package/dist/src/data-structures/suffix-array/suffix-array.d.ts.map +1 -0
  155. package/dist/src/data-structures/suffix-array/suffix-array.interface.d.ts +117 -0
  156. package/dist/src/data-structures/suffix-array/suffix-array.interface.d.ts.map +1 -0
  157. package/dist/src/data-structures/trie/index.d.ts +8 -0
  158. package/dist/src/data-structures/trie/index.d.ts.map +1 -0
  159. package/dist/src/data-structures/trie/trie.d.ts +205 -0
  160. package/dist/src/data-structures/trie/trie.d.ts.map +1 -0
  161. package/dist/src/data-structures/trie/trie.interface.d.ts +117 -0
  162. package/dist/src/data-structures/trie/trie.interface.d.ts.map +1 -0
  163. package/dist/src/index.d.ts +54 -0
  164. package/dist/src/index.d.ts.map +1 -0
  165. package/dist/src/patterns/coordinator.d.ts +90 -0
  166. package/dist/src/patterns/coordinator.d.ts.map +1 -0
  167. package/dist/src/patterns/event-emitter.d.ts +106 -0
  168. package/dist/src/patterns/event-emitter.d.ts.map +1 -0
  169. package/dist/src/patterns/factory.d.ts +120 -0
  170. package/dist/src/patterns/factory.d.ts.map +1 -0
  171. package/dist/src/patterns/index.d.ts +21 -0
  172. package/dist/src/patterns/index.d.ts.map +1 -0
  173. package/dist/src/patterns/mediator.d.ts +116 -0
  174. package/dist/src/patterns/mediator.d.ts.map +1 -0
  175. package/dist/src/patterns/object-pool.d.ts +178 -0
  176. package/dist/src/patterns/object-pool.d.ts.map +1 -0
  177. package/dist/src/patterns/observer.d.ts +89 -0
  178. package/dist/src/patterns/observer.d.ts.map +1 -0
  179. package/dist/src/patterns/operation-mode.d.ts +75 -0
  180. package/dist/src/patterns/operation-mode.d.ts.map +1 -0
  181. package/dist/src/patterns/state-machine.d.ts +122 -0
  182. package/dist/src/patterns/state-machine.d.ts.map +1 -0
  183. package/dist/src/reactive/batch-processor.d.ts +80 -0
  184. package/dist/src/reactive/batch-processor.d.ts.map +1 -0
  185. package/dist/src/reactive/core/batch-manager.d.ts +48 -0
  186. package/dist/src/reactive/core/batch-manager.d.ts.map +1 -0
  187. package/dist/src/reactive/core/batch-queue.d.ts +39 -0
  188. package/dist/src/reactive/core/batch-queue.d.ts.map +1 -0
  189. package/dist/src/reactive/core/event-handler-registry.d.ts +52 -0
  190. package/dist/src/reactive/core/event-handler-registry.d.ts.map +1 -0
  191. package/dist/src/reactive/core/event-mapper.d.ts +37 -0
  192. package/dist/src/reactive/core/event-mapper.d.ts.map +1 -0
  193. package/dist/src/reactive/core/pool-stats.d.ts +47 -0
  194. package/dist/src/reactive/core/pool-stats.d.ts.map +1 -0
  195. package/dist/src/reactive/core/subscription-manager.d.ts +46 -0
  196. package/dist/src/reactive/core/subscription-manager.d.ts.map +1 -0
  197. package/dist/src/reactive/event-delegator.d.ts +84 -0
  198. package/dist/src/reactive/event-delegator.d.ts.map +1 -0
  199. package/dist/src/reactive/index.d.ts +61 -0
  200. package/dist/src/reactive/index.d.ts.map +1 -0
  201. package/dist/src/reactive/interfaces.d.ts +207 -0
  202. package/dist/src/reactive/interfaces.d.ts.map +1 -0
  203. package/dist/src/reactive/object-pool.d.ts +97 -0
  204. package/dist/src/reactive/object-pool.d.ts.map +1 -0
  205. package/dist/src/reactive/reactive-state.d.ts +132 -0
  206. package/dist/src/reactive/reactive-state.d.ts.map +1 -0
  207. package/dist/src/types/common.d.ts +56 -0
  208. package/dist/src/types/common.d.ts.map +1 -0
  209. package/dist/src/types/index.d.ts +5 -0
  210. package/dist/src/types/index.d.ts.map +1 -0
  211. package/dist/src/utils/index.d.ts +7 -0
  212. package/dist/src/utils/index.d.ts.map +1 -0
  213. package/dist/src/utils/timing.d.ts +104 -0
  214. package/dist/src/utils/timing.d.ts.map +1 -0
  215. package/dist/src/utils/timing.interface.d.ts +96 -0
  216. package/dist/src/utils/timing.interface.d.ts.map +1 -0
  217. package/package.json +52 -52
@@ -0,0 +1,6 @@
1
+ import { AggregationType } from './segment-tree.interface';
2
+ export declare function getAggregationConfig(type: AggregationType): {
3
+ fn: (a: number, b: number) => number;
4
+ identity: number;
5
+ };
6
+ //# sourceMappingURL=aggregation-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregation-config.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/segment-tree/aggregation-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEzE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG;IAC3D,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAiBA"}
@@ -0,0 +1,4 @@
1
+ export { SegmentTree } from './segment-tree';
2
+ export type { ISegmentTree, SegmentTreeOptions, AggregateFunction } from './segment-tree.interface';
3
+ export { Aggregations, SegmentTreeUtils, AggregationType } from './segment-tree.interface';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/segment-tree/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AggregateFunction } from './segment-tree.interface';
2
+ import { AggregationType } from './segment-tree.interface';
3
+ export declare function pushDown<T>(tree: T[], lazy: T[], aggregate: AggregateFunction<T>, identityValue: T, type: AggregationType, node: number, start: number, end: number): void;
4
+ export declare function applyUpdate<T>(nodeValue: T, updateValue: T, rangeSize: number, aggregate: AggregateFunction<T>, type: AggregationType): T;
5
+ //# sourceMappingURL=lazy-propagation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-propagation.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/segment-tree/lazy-propagation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAoB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE7E,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,EAAE,CAAC,EAAE,EACT,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC/B,aAAa,EAAE,CAAC,EAChB,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,IAAI,CAgBN;AAED,wBAAgB,WAAW,CAAC,CAAC,EAC3B,SAAS,EAAE,CAAC,EACZ,WAAW,EAAE,CAAC,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC/B,IAAI,EAAE,eAAe,GACpB,CAAC,CAMH"}
@@ -0,0 +1,30 @@
1
+ import type { ISegmentTree, SegmentTreeOptions, AggregateFunction } from './segment-tree.interface';
2
+ import { AggregationType } from './segment-tree.interface';
3
+ export declare class SegmentTree<T> implements ISegmentTree<T> {
4
+ private tree;
5
+ private lazy;
6
+ private arr;
7
+ private n;
8
+ private aggregate;
9
+ private identityValue;
10
+ private useLazy;
11
+ private _type;
12
+ constructor(options: SegmentTreeOptions<T>);
13
+ private pushDown;
14
+ query(left: number, right: number): T;
15
+ update(index: number, value: T): void;
16
+ rangeUpdate(left: number, right: number, value: T): void;
17
+ get(index: number): T;
18
+ build(arr: T[]): void;
19
+ toArray(): T[];
20
+ findFirst(left: number, predicate: (value: T) => boolean): number;
21
+ get size(): number;
22
+ get total(): T;
23
+ get aggregationType(): AggregationType;
24
+ static from<T>(values: T[], type?: AggregationType): SegmentTree<T>;
25
+ static custom<T>(values: T[], aggregate: AggregateFunction<T>, identity: T): SegmentTree<T>;
26
+ findIndexAtSum(target: number): number;
27
+ toString(): string;
28
+ validate(): boolean;
29
+ }
30
+ //# sourceMappingURL=segment-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment-tree.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/segment-tree/segment-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACpG,OAAO,EAAoB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAS7E,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAkB;gBAEnB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IA6B1C,OAAO,CAAC,QAAQ;IAchB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAwBrC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAoBrC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IA0BxD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;IAQrB,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI;IAarB,OAAO,IAAI,CAAC,EAAE;IAQd,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,MAAM;IAUjE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,CAAC,CAKb;IAED,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,GAAE,eAAqC,GAAG,WAAW,CAAC,CAAC,CAAC;IAIxF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAS3F,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IA0BtC,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,OAAO;CAGpB"}
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Segment Tree interfaces for ZenGrid
3
+ * Efficiently handles range queries and updates for aggregation operations
4
+ */
5
+ /**
6
+ * Aggregation function type
7
+ * Combines two values into one
8
+ */
9
+ export type AggregateFunction<T> = (a: T, b: T) => T;
10
+ /**
11
+ * Common aggregation operations
12
+ */
13
+ export declare enum AggregationType {
14
+ SUM = "sum",
15
+ MIN = "min",
16
+ MAX = "max",
17
+ GCD = "gcd",
18
+ LCM = "lcm",
19
+ PRODUCT = "product",
20
+ CUSTOM = "custom"
21
+ }
22
+ /**
23
+ * Segment Tree interface
24
+ *
25
+ * A tree data structure for storing intervals or segments, allowing for efficient
26
+ * querying and updating of array elements over ranges.
27
+ *
28
+ * Use cases:
29
+ * - Status bar aggregations (sum, min, max of selected cells)
30
+ * - Range statistics (average, count, sum over a range)
31
+ * - Dynamic cumulative calculations
32
+ * - Range minimum/maximum queries
33
+ * - Frequent range updates with queries
34
+ *
35
+ * Performance:
36
+ * - Build: O(n)
37
+ * - Query: O(log n)
38
+ * - Update (point): O(log n)
39
+ * - Update (range): O(log n) with lazy propagation
40
+ * - Space: O(4n) = O(n)
41
+ */
42
+ export interface ISegmentTree<T> {
43
+ /**
44
+ * Query the aggregated value over a range [left, right]
45
+ * @param left - Start index (inclusive)
46
+ * @param right - End index (inclusive)
47
+ * @returns Aggregated value over the range
48
+ * @complexity O(log n)
49
+ */
50
+ query(left: number, right: number): T;
51
+ /**
52
+ * Update a single element at index
53
+ * @param index - Index to update
54
+ * @param value - New value
55
+ * @complexity O(log n)
56
+ */
57
+ update(index: number, value: T): void;
58
+ /**
59
+ * Update a range of elements [left, right]
60
+ * @param left - Start index (inclusive)
61
+ * @param right - End index (inclusive)
62
+ * @param value - Value to apply to the range
63
+ * @complexity O(log n) with lazy propagation
64
+ */
65
+ rangeUpdate(left: number, right: number, value: T): void;
66
+ /**
67
+ * Get the value at a specific index
68
+ * @param index - Index to query
69
+ * @returns Value at index
70
+ * @complexity O(log n) or O(1) depending on implementation
71
+ */
72
+ get(index: number): T;
73
+ /**
74
+ * Build or rebuild the tree from new array
75
+ * @param arr - New array of values
76
+ * @complexity O(n)
77
+ */
78
+ build(arr: T[]): void;
79
+ /**
80
+ * Get the entire array
81
+ * @returns Current array values
82
+ * @complexity O(n)
83
+ */
84
+ toArray(): T[];
85
+ /**
86
+ * Find the first index where the aggregate from start meets a condition
87
+ * Useful for binary search on aggregates
88
+ * @param left - Start index
89
+ * @param predicate - Condition to test
90
+ * @returns Index or -1 if not found
91
+ * @complexity O(log^2 n)
92
+ */
93
+ findFirst(left: number, predicate: (value: T) => boolean): number;
94
+ /**
95
+ * Get the size of the underlying array
96
+ */
97
+ readonly size: number;
98
+ /**
99
+ * Get the total aggregated value (entire array)
100
+ */
101
+ readonly total: T;
102
+ /**
103
+ * Get the aggregation type
104
+ */
105
+ readonly aggregationType: AggregationType;
106
+ }
107
+ /**
108
+ * Options for creating a Segment Tree
109
+ */
110
+ export interface SegmentTreeOptions<T> {
111
+ /**
112
+ * Initial array of values
113
+ */
114
+ values?: T[];
115
+ /**
116
+ * Aggregation type (for common operations)
117
+ * If CUSTOM is specified, must provide customAggregate function
118
+ */
119
+ type?: AggregationType;
120
+ /**
121
+ * Custom aggregation function
122
+ * Required if type is CUSTOM
123
+ */
124
+ customAggregate?: AggregateFunction<T>;
125
+ /**
126
+ * Identity value for the aggregation
127
+ * - For SUM: 0
128
+ * - For MIN: Infinity
129
+ * - For MAX: -Infinity
130
+ * - For PRODUCT: 1
131
+ * Must be provided for CUSTOM type
132
+ */
133
+ identity?: T;
134
+ /**
135
+ * Whether to use lazy propagation for range updates
136
+ * @default true
137
+ */
138
+ lazy?: boolean;
139
+ }
140
+ /**
141
+ * Predefined aggregation functions and identities
142
+ */
143
+ export declare const Aggregations: {
144
+ sum: {
145
+ fn: (a: number, b: number) => number;
146
+ identity: number;
147
+ };
148
+ min: {
149
+ fn: (a: number, b: number) => number;
150
+ identity: number;
151
+ };
152
+ max: {
153
+ fn: (a: number, b: number) => number;
154
+ identity: number;
155
+ };
156
+ gcd: {
157
+ fn: (a: number, b: number) => number;
158
+ identity: number;
159
+ };
160
+ lcm: {
161
+ fn: (a: number, b: number) => number;
162
+ identity: number;
163
+ };
164
+ product: {
165
+ fn: (a: number, b: number) => number;
166
+ identity: number;
167
+ };
168
+ };
169
+ /**
170
+ * Helper functions for segment tree operations
171
+ */
172
+ export declare const SegmentTreeUtils: {
173
+ /**
174
+ * Calculate the tree size needed for array of size n
175
+ */
176
+ getTreeSize(n: number): number;
177
+ /**
178
+ * Check if index is valid
179
+ */
180
+ isValidIndex(index: number, size: number): boolean;
181
+ /**
182
+ * Check if range is valid
183
+ */
184
+ isValidRange(left: number, right: number, size: number): boolean;
185
+ /**
186
+ * Get parent index in tree
187
+ */
188
+ parent(index: number): number;
189
+ /**
190
+ * Get left child index in tree
191
+ */
192
+ leftChild(index: number): number;
193
+ /**
194
+ * Get right child index in tree
195
+ */
196
+ rightChild(index: number): number;
197
+ /**
198
+ * Get the middle point of a range
199
+ */
200
+ mid(left: number, right: number): number;
201
+ };
202
+ //# sourceMappingURL=segment-tree.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment-tree.interface.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/segment-tree/segment-tree.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAErD;;GAEG;AACH,oBAAY,eAAe;IACzB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAEtC;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAEzD;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;IAEtB;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IAEtB;;;;OAIG;IACH,OAAO,IAAI,CAAC,EAAE,CAAC;IAEf;;;;;;;OAOG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,MAAM,CAAC;IAElE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAEvC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;;gBAEb,MAAM,KAAK,MAAM;;;;gBAIjB,MAAM,KAAK,MAAM;;;;gBAIjB,MAAM,KAAK,MAAM;;;;gBAIjB,MAAM,KAAK,MAAM;;;;gBAWjB,MAAM,KAAK,MAAM;;;;gBAOjB,MAAM,KAAK,MAAM;;;CAG5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;OAEG;mBACY,MAAM,GAAG,MAAM;IAK9B;;OAEG;wBACiB,MAAM,QAAQ,MAAM,GAAG,OAAO;IAIlD;;OAEG;uBACgB,MAAM,SAAS,MAAM,QAAQ,MAAM,GAAG,OAAO;IAIhE;;OAEG;kBACW,MAAM,GAAG,MAAM;IAI7B;;OAEG;qBACc,MAAM,GAAG,MAAM;IAIhC;;OAEG;sBACe,MAAM,GAAG,MAAM;IAIjC;;OAEG;cACO,MAAM,SAAS,MAAM,GAAG,MAAM;CAGzC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AggregateFunction } from './segment-tree.interface';
2
+ export declare function buildTree<T>(tree: T[], arr: T[], aggregate: AggregateFunction<T>, node: number, start: number, end: number): void;
3
+ //# sourceMappingURL=tree-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-builder.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/segment-tree/tree-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,wBAAgB,SAAS,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,EAAE,EACT,GAAG,EAAE,CAAC,EAAE,EACR,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,IAAI,CAcN"}
@@ -0,0 +1,3 @@
1
+ import type { AggregateFunction } from './segment-tree.interface';
2
+ export declare function queryTree<T>(tree: T[], lazy: T[], aggregate: AggregateFunction<T>, identityValue: T, useLazy: boolean, pushDownFn: (node: number, start: number, end: number) => void, node: number, start: number, end: number, left: number, right: number): T;
3
+ //# sourceMappingURL=tree-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-query.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/segment-tree/tree-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,wBAAgB,SAAS,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,EAAE,CAAC,EAAE,EACT,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC/B,aAAa,EAAE,CAAC,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EAC9D,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,CAAC,CA6CH"}
@@ -0,0 +1,2 @@
1
+ export declare function findIndexAtSumRecursive<T>(tree: T[], lazy: T[], useLazy: boolean, pushDownFn: (node: number, start: number, end: number) => void, node: number, start: number, end: number, targetSum: number): number;
2
+ //# sourceMappingURL=tree-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-search.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/segment-tree/tree-search.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EAC9D,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,MAAM,CA2CR"}
@@ -0,0 +1,4 @@
1
+ import type { AggregateFunction } from './segment-tree.interface';
2
+ export declare function updateTree<T>(tree: T[], lazy: T[], aggregate: AggregateFunction<T>, useLazy: boolean, pushDownFn: (node: number, start: number, end: number) => void, node: number, start: number, end: number, index: number, value: T): void;
3
+ export declare function rangeUpdateLazy<T>(tree: T[], lazy: T[], aggregate: AggregateFunction<T>, pushDownFn: (node: number, start: number, end: number) => void, node: number, start: number, end: number, left: number, right: number, value: T): void;
4
+ //# sourceMappingURL=tree-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-update.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/segment-tree/tree-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,wBAAgB,UAAU,CAAC,CAAC,EAC1B,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,EAAE,CAAC,EAAE,EACT,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EAC9D,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,GACP,IAAI,CAqBN;AAED,wBAAgB,eAAe,CAAC,CAAC,EAC/B,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,EAAE,CAAC,EAAE,EACT,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC/B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EAC9D,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,GACP,IAAI,CAuBN"}
@@ -0,0 +1,3 @@
1
+ import type { AggregateFunction } from './segment-tree.interface';
2
+ export declare function validateNode<T>(tree: T[], arr: T[], aggregate: AggregateFunction<T>, n: number, node: number, start: number, end: number): boolean;
3
+ //# sourceMappingURL=tree-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-validation.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/segment-tree/tree-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,CAAC,EAAE,EACT,GAAG,EAAE,CAAC,EAAE,EACR,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC/B,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,OAAO,CAqBT"}
@@ -0,0 +1,4 @@
1
+ export { SkipList } from './skip-list';
2
+ export type { ISkipList, SkipListNode, SkipListOptions, RangeResult, SkipListStats, } from './skip-list.interface';
3
+ export { defaultComparator, SkipListUtils } from './skip-list.interface';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/skip-list/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Skip List implementation
3
+ * Probabilistic sorted data structure
4
+ */
5
+ import type { ISkipList, SkipListOptions, RangeResult, SkipListStats } from './skip-list.interface';
6
+ /**
7
+ * Skip List - Probabilistic sorted data structure
8
+ *
9
+ * Implementation:
10
+ * - Multiple levels of linked lists
11
+ * - Each level is a subset of the level below
12
+ * - Levels are determined probabilistically
13
+ * - Search starts at highest level and descends
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const skipList = new SkipList<number, string>();
18
+ * skipList.set(10, 'ten');
19
+ * skipList.set(5, 'five');
20
+ * skipList.set(20, 'twenty');
21
+ *
22
+ * skipList.get(10); // 'ten'
23
+ * skipList.range(5, 15); // [{key: 5, value: 'five'}, {key: 10, value: 'ten'}]
24
+ * skipList.keys(); // [5, 10, 20]
25
+ * ```
26
+ */
27
+ export declare class SkipList<K, V> implements ISkipList<K, V> {
28
+ private head;
29
+ private maxLevel;
30
+ private probability;
31
+ private compare;
32
+ private currentLevel;
33
+ private count;
34
+ constructor(options?: SkipListOptions<K>);
35
+ /**
36
+ * Create a new node with random level
37
+ */
38
+ private createNode;
39
+ /**
40
+ * Generate random level for new node
41
+ */
42
+ private randomLevel;
43
+ /**
44
+ * Find the position where key should be or is located
45
+ * Returns update array with predecessors at each level
46
+ */
47
+ private findUpdatePath;
48
+ /**
49
+ * Insert or update a key-value pair
50
+ */
51
+ set(key: K, value: V): V | undefined;
52
+ /**
53
+ * Get value by key
54
+ */
55
+ get(key: K): V | undefined;
56
+ /**
57
+ * Check if key exists
58
+ */
59
+ has(key: K): boolean;
60
+ /**
61
+ * Delete a key
62
+ */
63
+ delete(key: K): boolean;
64
+ /**
65
+ * Get all entries in sorted order
66
+ */
67
+ entries(): Array<[K, V]>;
68
+ /**
69
+ * Get all keys in sorted order
70
+ */
71
+ keys(): K[];
72
+ /**
73
+ * Get all values in sorted order by key
74
+ */
75
+ values(): V[];
76
+ /**
77
+ * Get range of entries
78
+ */
79
+ range(startKey: K, endKey: K): RangeResult<K, V>[];
80
+ /**
81
+ * Get minimum entry
82
+ */
83
+ min(): RangeResult<K, V> | undefined;
84
+ /**
85
+ * Get maximum entry
86
+ */
87
+ max(): RangeResult<K, V> | undefined;
88
+ /**
89
+ * Get kth smallest entry (0-indexed)
90
+ */
91
+ getKth(k: number): RangeResult<K, V> | undefined;
92
+ /**
93
+ * Count entries in range
94
+ */
95
+ countRange(startKey: K, endKey: K): number;
96
+ /**
97
+ * Find floor (largest key <= given key)
98
+ */
99
+ floor(key: K): RangeResult<K, V> | undefined;
100
+ /**
101
+ * Find ceiling (smallest key >= given key)
102
+ */
103
+ ceiling(key: K): RangeResult<K, V> | undefined;
104
+ /**
105
+ * Iterate over all entries
106
+ */
107
+ forEach(callback: (value: V, key: K) => void): void;
108
+ /**
109
+ * Clear all entries
110
+ */
111
+ clear(): void;
112
+ /**
113
+ * Get statistics
114
+ */
115
+ getStats(): SkipListStats;
116
+ /**
117
+ * Get size
118
+ */
119
+ get size(): number;
120
+ /**
121
+ * Check if empty
122
+ */
123
+ get isEmpty(): boolean;
124
+ /**
125
+ * Create skip list from entries
126
+ */
127
+ static from<K, V>(entries: Array<[K, V]>, options?: SkipListOptions<K>): SkipList<K, V>;
128
+ /**
129
+ * Debug: Print structure
130
+ */
131
+ toString(): string;
132
+ /**
133
+ * Debug: Validate structure
134
+ */
135
+ validate(): boolean;
136
+ }
137
+ //# sourceMappingURL=skip-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skip-list.d.ts","sourceRoot":"","sources":["../../../../src/data-structures/skip-list/skip-list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,SAAS,EAET,eAAe,EACf,WAAW,EACX,aAAa,EACd,MAAM,uBAAuB,CAAC;AAI/B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,KAAK,CAAS;gBAEV,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM;IAW5C;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAmCpC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAoB1B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IA0BvB;;OAEG;IACH,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAYxB;;OAEG;IACH,IAAI,IAAI,CAAC,EAAE;IAYX;;OAEG;IACH,MAAM,IAAI,CAAC,EAAE;IAYb;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAuBlD;;OAEG;IACH,GAAG,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAQpC;;OAEG;IACH,GAAG,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAsBpC;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAoBhD;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM;IAI1C;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAkB5C;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAkB9C;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IASnD;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,QAAQ,IAAI,aAAa;IAyBzB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAQvF;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,QAAQ,IAAI,OAAO;CAyBpB"}