@fluidframework/sequence 1.4.0-121020 → 2.0.0-dev-rc.1.0.0.225277

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 (350) hide show
  1. package/.eslintrc.js +9 -11
  2. package/.mocharc.js +12 -0
  3. package/CHANGELOG.md +449 -0
  4. package/README.md +364 -183
  5. package/api-extractor-esm.json +4 -0
  6. package/api-extractor-lint.json +4 -0
  7. package/api-extractor.json +2 -2
  8. package/api-report/sequence.api.md +734 -0
  9. package/dist/{defaultMap.js → defaultMap.cjs} +38 -26
  10. package/dist/defaultMap.cjs.map +1 -0
  11. package/dist/defaultMap.d.ts +7 -6
  12. package/dist/defaultMap.d.ts.map +1 -1
  13. package/dist/defaultMapInterfaces.cjs +7 -0
  14. package/dist/defaultMapInterfaces.cjs.map +1 -0
  15. package/dist/defaultMapInterfaces.d.ts +45 -12
  16. package/dist/defaultMapInterfaces.d.ts.map +1 -1
  17. package/dist/index.cjs +60 -0
  18. package/dist/index.cjs.map +1 -0
  19. package/dist/index.d.ts +14 -12
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/intervalCollection.cjs +1193 -0
  22. package/dist/intervalCollection.cjs.map +1 -0
  23. package/dist/intervalCollection.d.ts +448 -162
  24. package/dist/intervalCollection.d.ts.map +1 -1
  25. package/dist/intervalIndex/endpointInRangeIndex.cjs +66 -0
  26. package/dist/intervalIndex/endpointInRangeIndex.cjs.map +1 -0
  27. package/dist/intervalIndex/endpointInRangeIndex.d.ts +34 -0
  28. package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -0
  29. package/dist/intervalIndex/endpointIndex.cjs +47 -0
  30. package/dist/intervalIndex/endpointIndex.cjs.map +1 -0
  31. package/dist/intervalIndex/endpointIndex.d.ts +38 -0
  32. package/dist/intervalIndex/endpointIndex.d.ts.map +1 -0
  33. package/dist/intervalIndex/idIntervalIndex.cjs +44 -0
  34. package/dist/intervalIndex/idIntervalIndex.cjs.map +1 -0
  35. package/dist/intervalIndex/idIntervalIndex.d.ts +18 -0
  36. package/dist/intervalIndex/idIntervalIndex.d.ts.map +1 -0
  37. package/dist/intervalIndex/index.cjs +24 -0
  38. package/dist/intervalIndex/index.cjs.map +1 -0
  39. package/dist/intervalIndex/index.d.ts +13 -0
  40. package/dist/intervalIndex/index.d.ts.map +1 -0
  41. package/dist/{defaultMapInterfaces.js → intervalIndex/intervalIndex.cjs} +1 -1
  42. package/dist/intervalIndex/intervalIndex.cjs.map +1 -0
  43. package/dist/intervalIndex/intervalIndex.d.ts +30 -0
  44. package/dist/intervalIndex/intervalIndex.d.ts.map +1 -0
  45. package/dist/intervalIndex/intervalIndexUtils.cjs +22 -0
  46. package/dist/intervalIndex/intervalIndexUtils.cjs.map +1 -0
  47. package/dist/intervalIndex/intervalIndexUtils.d.ts +17 -0
  48. package/dist/intervalIndex/intervalIndexUtils.d.ts.map +1 -0
  49. package/dist/intervalIndex/overlappingIntervalsIndex.cjs +116 -0
  50. package/dist/intervalIndex/overlappingIntervalsIndex.cjs.map +1 -0
  51. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +44 -0
  52. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -0
  53. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.cjs +41 -0
  54. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.cjs.map +1 -0
  55. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +11 -0
  56. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -0
  57. package/dist/intervalIndex/sequenceIntervalIndexes.cjs +7 -0
  58. package/dist/intervalIndex/sequenceIntervalIndexes.cjs.map +1 -0
  59. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +35 -0
  60. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -0
  61. package/dist/intervalIndex/startpointInRangeIndex.cjs +66 -0
  62. package/dist/intervalIndex/startpointInRangeIndex.cjs.map +1 -0
  63. package/dist/intervalIndex/startpointInRangeIndex.d.ts +34 -0
  64. package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -0
  65. package/dist/intervalTree.cjs +80 -0
  66. package/dist/intervalTree.cjs.map +1 -0
  67. package/dist/intervalTree.d.ts +24 -0
  68. package/dist/intervalTree.d.ts.map +1 -0
  69. package/dist/intervals/index.cjs +24 -0
  70. package/dist/intervals/index.cjs.map +1 -0
  71. package/dist/intervals/index.d.ts +8 -0
  72. package/dist/intervals/index.d.ts.map +1 -0
  73. package/dist/intervals/interval.cjs +181 -0
  74. package/dist/intervals/interval.cjs.map +1 -0
  75. package/dist/intervals/interval.d.ts +84 -0
  76. package/dist/intervals/interval.d.ts.map +1 -0
  77. package/dist/intervals/intervalUtils.cjs +90 -0
  78. package/dist/intervals/intervalUtils.cjs.map +1 -0
  79. package/dist/intervals/intervalUtils.d.ts +240 -0
  80. package/dist/intervals/intervalUtils.d.ts.map +1 -0
  81. package/dist/intervals/sequenceInterval.cjs +378 -0
  82. package/dist/intervals/sequenceInterval.cjs.map +1 -0
  83. package/dist/intervals/sequenceInterval.d.ts +137 -0
  84. package/dist/intervals/sequenceInterval.d.ts.map +1 -0
  85. package/dist/{localValues.js → localValues.cjs} +1 -1
  86. package/dist/localValues.cjs.map +1 -0
  87. package/dist/localValues.d.ts +2 -1
  88. package/dist/localValues.d.ts.map +1 -1
  89. package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
  90. package/dist/packageVersion.cjs.map +1 -0
  91. package/dist/packageVersion.d.ts +1 -1
  92. package/dist/packageVersion.d.ts.map +1 -1
  93. package/dist/revertibles.cjs +425 -0
  94. package/dist/revertibles.cjs.map +1 -0
  95. package/dist/revertibles.d.ts +86 -0
  96. package/dist/revertibles.d.ts.map +1 -0
  97. package/dist/sequence-alpha.d.ts +1290 -0
  98. package/dist/sequence-beta.d.ts +244 -0
  99. package/dist/sequence-public.d.ts +244 -0
  100. package/dist/sequence-untrimmed.d.ts +1778 -0
  101. package/dist/{sequence.js → sequence.cjs} +230 -156
  102. package/dist/sequence.cjs.map +1 -0
  103. package/dist/sequence.d.ts +125 -48
  104. package/dist/sequence.d.ts.map +1 -1
  105. package/dist/{sequenceDeltaEvent.js → sequenceDeltaEvent.cjs} +18 -8
  106. package/dist/sequenceDeltaEvent.cjs.map +1 -0
  107. package/dist/sequenceDeltaEvent.d.ts +24 -7
  108. package/dist/sequenceDeltaEvent.d.ts.map +1 -1
  109. package/dist/sequenceFactory.cjs +55 -0
  110. package/dist/sequenceFactory.cjs.map +1 -0
  111. package/dist/sequenceFactory.d.ts +3 -89
  112. package/dist/sequenceFactory.d.ts.map +1 -1
  113. package/dist/{sharedIntervalCollection.js → sharedIntervalCollection.cjs} +17 -22
  114. package/dist/sharedIntervalCollection.cjs.map +1 -0
  115. package/dist/sharedIntervalCollection.d.ts +12 -12
  116. package/dist/sharedIntervalCollection.d.ts.map +1 -1
  117. package/dist/{sharedSequence.js → sharedSequence.cjs} +29 -22
  118. package/dist/sharedSequence.cjs.map +1 -0
  119. package/dist/sharedSequence.d.ts +14 -2
  120. package/dist/sharedSequence.d.ts.map +1 -1
  121. package/dist/sharedString.cjs +274 -0
  122. package/dist/sharedString.cjs.map +1 -0
  123. package/dist/sharedString.d.ts +49 -26
  124. package/dist/sharedString.d.ts.map +1 -1
  125. package/dist/tsdoc-metadata.json +11 -0
  126. package/lib/{defaultMap.d.ts → defaultMap.d.mts} +8 -7
  127. package/lib/defaultMap.d.mts.map +1 -0
  128. package/lib/{defaultMap.js → defaultMap.mjs} +38 -26
  129. package/lib/defaultMap.mjs.map +1 -0
  130. package/lib/{defaultMapInterfaces.d.ts → defaultMapInterfaces.d.mts} +46 -13
  131. package/lib/defaultMapInterfaces.d.mts.map +1 -0
  132. package/lib/defaultMapInterfaces.mjs +6 -0
  133. package/lib/defaultMapInterfaces.mjs.map +1 -0
  134. package/lib/index.d.mts +17 -0
  135. package/lib/index.d.mts.map +1 -0
  136. package/lib/index.mjs +16 -0
  137. package/lib/index.mjs.map +1 -0
  138. package/lib/intervalCollection.d.mts +556 -0
  139. package/lib/intervalCollection.d.mts.map +1 -0
  140. package/lib/intervalCollection.mjs +1178 -0
  141. package/lib/intervalCollection.mjs.map +1 -0
  142. package/lib/intervalIndex/endpointInRangeIndex.d.mts +34 -0
  143. package/lib/intervalIndex/endpointInRangeIndex.d.mts.map +1 -0
  144. package/lib/intervalIndex/endpointInRangeIndex.mjs +61 -0
  145. package/lib/intervalIndex/endpointInRangeIndex.mjs.map +1 -0
  146. package/lib/intervalIndex/endpointIndex.d.mts +38 -0
  147. package/lib/intervalIndex/endpointIndex.d.mts.map +1 -0
  148. package/lib/intervalIndex/endpointIndex.mjs +42 -0
  149. package/lib/intervalIndex/endpointIndex.mjs.map +1 -0
  150. package/lib/intervalIndex/idIntervalIndex.d.mts +18 -0
  151. package/lib/intervalIndex/idIntervalIndex.d.mts.map +1 -0
  152. package/lib/intervalIndex/idIntervalIndex.mjs +40 -0
  153. package/lib/intervalIndex/idIntervalIndex.mjs.map +1 -0
  154. package/lib/intervalIndex/index.d.mts +13 -0
  155. package/lib/intervalIndex/index.d.mts.map +1 -0
  156. package/lib/intervalIndex/index.mjs +11 -0
  157. package/lib/intervalIndex/index.mjs.map +1 -0
  158. package/lib/intervalIndex/intervalIndex.d.mts +30 -0
  159. package/lib/intervalIndex/intervalIndex.d.mts.map +1 -0
  160. package/lib/{defaultMapInterfaces.js → intervalIndex/intervalIndex.mjs} +1 -1
  161. package/lib/intervalIndex/intervalIndex.mjs.map +1 -0
  162. package/lib/intervalIndex/intervalIndexUtils.d.mts +17 -0
  163. package/lib/intervalIndex/intervalIndexUtils.d.mts.map +1 -0
  164. package/lib/intervalIndex/intervalIndexUtils.mjs +18 -0
  165. package/lib/intervalIndex/intervalIndexUtils.mjs.map +1 -0
  166. package/lib/intervalIndex/overlappingIntervalsIndex.d.mts +44 -0
  167. package/lib/intervalIndex/overlappingIntervalsIndex.d.mts.map +1 -0
  168. package/lib/intervalIndex/overlappingIntervalsIndex.mjs +111 -0
  169. package/lib/intervalIndex/overlappingIntervalsIndex.mjs.map +1 -0
  170. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts +11 -0
  171. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts.map +1 -0
  172. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs +37 -0
  173. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs.map +1 -0
  174. package/lib/intervalIndex/sequenceIntervalIndexes.d.mts +35 -0
  175. package/lib/intervalIndex/sequenceIntervalIndexes.d.mts.map +1 -0
  176. package/lib/intervalIndex/sequenceIntervalIndexes.mjs +6 -0
  177. package/lib/intervalIndex/sequenceIntervalIndexes.mjs.map +1 -0
  178. package/lib/intervalIndex/startpointInRangeIndex.d.mts +34 -0
  179. package/lib/intervalIndex/startpointInRangeIndex.d.mts.map +1 -0
  180. package/lib/intervalIndex/startpointInRangeIndex.mjs +61 -0
  181. package/lib/intervalIndex/startpointInRangeIndex.mjs.map +1 -0
  182. package/lib/intervalTree.d.mts +24 -0
  183. package/lib/intervalTree.d.mts.map +1 -0
  184. package/lib/intervalTree.mjs +76 -0
  185. package/lib/intervalTree.mjs.map +1 -0
  186. package/lib/intervals/index.d.mts +8 -0
  187. package/lib/intervals/index.d.mts.map +1 -0
  188. package/lib/intervals/index.mjs +8 -0
  189. package/lib/intervals/index.mjs.map +1 -0
  190. package/lib/intervals/interval.d.mts +84 -0
  191. package/lib/intervals/interval.d.mts.map +1 -0
  192. package/lib/intervals/interval.mjs +176 -0
  193. package/lib/intervals/interval.mjs.map +1 -0
  194. package/lib/intervals/intervalUtils.d.mts +240 -0
  195. package/lib/intervals/intervalUtils.d.mts.map +1 -0
  196. package/lib/intervals/intervalUtils.mjs +84 -0
  197. package/lib/intervals/intervalUtils.mjs.map +1 -0
  198. package/lib/intervals/sequenceInterval.d.mts +137 -0
  199. package/lib/intervals/sequenceInterval.d.mts.map +1 -0
  200. package/lib/intervals/sequenceInterval.mjs +370 -0
  201. package/lib/intervals/sequenceInterval.mjs.map +1 -0
  202. package/lib/{localValues.d.ts → localValues.d.mts} +4 -3
  203. package/lib/localValues.d.mts.map +1 -0
  204. package/lib/{localValues.js → localValues.mjs} +2 -2
  205. package/lib/localValues.mjs.map +1 -0
  206. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +2 -2
  207. package/lib/packageVersion.d.mts.map +1 -0
  208. package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
  209. package/lib/packageVersion.mjs.map +1 -0
  210. package/lib/revertibles.d.mts +86 -0
  211. package/lib/revertibles.d.mts.map +1 -0
  212. package/lib/revertibles.mjs +416 -0
  213. package/lib/revertibles.mjs.map +1 -0
  214. package/lib/sequence-alpha.d.mts +1277 -0
  215. package/lib/sequence-beta.d.mts +231 -0
  216. package/lib/sequence-public.d.mts +231 -0
  217. package/lib/sequence-untrimmed.d.mts +1765 -0
  218. package/lib/{sequence.d.ts → sequence.d.mts} +128 -51
  219. package/lib/sequence.d.mts.map +1 -0
  220. package/lib/{sequence.js → sequence.mjs} +229 -152
  221. package/lib/sequence.mjs.map +1 -0
  222. package/lib/{sequenceDeltaEvent.d.ts → sequenceDeltaEvent.d.mts} +25 -8
  223. package/lib/sequenceDeltaEvent.d.mts.map +1 -0
  224. package/lib/{sequenceDeltaEvent.js → sequenceDeltaEvent.mjs} +20 -8
  225. package/lib/sequenceDeltaEvent.mjs.map +1 -0
  226. package/lib/sequenceFactory.d.mts +22 -0
  227. package/lib/sequenceFactory.d.mts.map +1 -0
  228. package/lib/sequenceFactory.mjs +51 -0
  229. package/lib/sequenceFactory.mjs.map +1 -0
  230. package/lib/{sharedIntervalCollection.d.ts → sharedIntervalCollection.d.mts} +13 -13
  231. package/lib/sharedIntervalCollection.d.mts.map +1 -0
  232. package/lib/{sharedIntervalCollection.js → sharedIntervalCollection.mjs} +16 -21
  233. package/lib/sharedIntervalCollection.mjs.map +1 -0
  234. package/lib/{sharedSequence.d.ts → sharedSequence.d.mts} +16 -4
  235. package/lib/sharedSequence.d.mts.map +1 -0
  236. package/lib/{sharedSequence.js → sharedSequence.mjs} +30 -23
  237. package/lib/sharedSequence.mjs.map +1 -0
  238. package/lib/{sharedString.d.ts → sharedString.d.mts} +52 -29
  239. package/lib/sharedString.d.mts.map +1 -0
  240. package/lib/sharedString.mjs +269 -0
  241. package/lib/sharedString.mjs.map +1 -0
  242. package/package.json +168 -75
  243. package/prettier.config.cjs +8 -0
  244. package/src/defaultMap.ts +419 -403
  245. package/src/defaultMapInterfaces.ts +164 -117
  246. package/src/index.ts +86 -26
  247. package/src/intervalCollection.ts +2042 -1563
  248. package/src/intervalIndex/endpointInRangeIndex.ts +116 -0
  249. package/src/intervalIndex/endpointIndex.ts +91 -0
  250. package/src/intervalIndex/idIntervalIndex.ts +64 -0
  251. package/src/intervalIndex/index.ts +25 -0
  252. package/src/intervalIndex/intervalIndex.ts +32 -0
  253. package/src/intervalIndex/intervalIndexUtils.ts +27 -0
  254. package/src/intervalIndex/overlappingIntervalsIndex.ts +187 -0
  255. package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +80 -0
  256. package/src/intervalIndex/sequenceIntervalIndexes.ts +34 -0
  257. package/src/intervalIndex/startpointInRangeIndex.ts +114 -0
  258. package/src/intervalTree.ts +98 -0
  259. package/src/intervals/index.ts +26 -0
  260. package/src/intervals/interval.ts +238 -0
  261. package/src/intervals/intervalUtils.ts +298 -0
  262. package/src/intervals/sequenceInterval.ts +616 -0
  263. package/src/localValues.ts +68 -73
  264. package/src/packageVersion.ts +1 -1
  265. package/src/revertibles.ts +693 -0
  266. package/src/sequence.ts +850 -690
  267. package/src/sequenceDeltaEvent.ts +164 -131
  268. package/src/sequenceFactory.ts +58 -214
  269. package/src/sharedIntervalCollection.ts +161 -152
  270. package/src/sharedSequence.ts +181 -167
  271. package/src/sharedString.ts +367 -234
  272. package/tsc-multi.test.json +10 -0
  273. package/tsconfig.json +11 -13
  274. package/.editorconfig +0 -7
  275. package/.vscode/launch.json +0 -15
  276. package/dist/defaultMap.js.map +0 -1
  277. package/dist/defaultMapInterfaces.js.map +0 -1
  278. package/dist/index.js +0 -44
  279. package/dist/index.js.map +0 -1
  280. package/dist/intervalCollection.js +0 -1250
  281. package/dist/intervalCollection.js.map +0 -1
  282. package/dist/localValues.js.map +0 -1
  283. package/dist/packageVersion.js.map +0 -1
  284. package/dist/sequence.js.map +0 -1
  285. package/dist/sequenceDeltaEvent.js.map +0 -1
  286. package/dist/sequenceFactory.js +0 -192
  287. package/dist/sequenceFactory.js.map +0 -1
  288. package/dist/sharedIntervalCollection.js.map +0 -1
  289. package/dist/sharedNumberSequence.d.ts +0 -50
  290. package/dist/sharedNumberSequence.d.ts.map +0 -1
  291. package/dist/sharedNumberSequence.js +0 -61
  292. package/dist/sharedNumberSequence.js.map +0 -1
  293. package/dist/sharedObjectSequence.d.ts +0 -50
  294. package/dist/sharedObjectSequence.d.ts.map +0 -1
  295. package/dist/sharedObjectSequence.js +0 -61
  296. package/dist/sharedObjectSequence.js.map +0 -1
  297. package/dist/sharedSequence.js.map +0 -1
  298. package/dist/sharedString.js +0 -187
  299. package/dist/sharedString.js.map +0 -1
  300. package/dist/sparsematrix.d.ts +0 -139
  301. package/dist/sparsematrix.d.ts.map +0 -1
  302. package/dist/sparsematrix.js +0 -332
  303. package/dist/sparsematrix.js.map +0 -1
  304. package/lib/defaultMap.d.ts.map +0 -1
  305. package/lib/defaultMap.js.map +0 -1
  306. package/lib/defaultMapInterfaces.d.ts.map +0 -1
  307. package/lib/defaultMapInterfaces.js.map +0 -1
  308. package/lib/index.d.ts +0 -27
  309. package/lib/index.d.ts.map +0 -1
  310. package/lib/index.js +0 -26
  311. package/lib/index.js.map +0 -1
  312. package/lib/intervalCollection.d.ts +0 -270
  313. package/lib/intervalCollection.d.ts.map +0 -1
  314. package/lib/intervalCollection.js +0 -1238
  315. package/lib/intervalCollection.js.map +0 -1
  316. package/lib/localValues.d.ts.map +0 -1
  317. package/lib/localValues.js.map +0 -1
  318. package/lib/packageVersion.d.ts.map +0 -1
  319. package/lib/packageVersion.js.map +0 -1
  320. package/lib/sequence.d.ts.map +0 -1
  321. package/lib/sequence.js.map +0 -1
  322. package/lib/sequenceDeltaEvent.d.ts.map +0 -1
  323. package/lib/sequenceDeltaEvent.js.map +0 -1
  324. package/lib/sequenceFactory.d.ts +0 -108
  325. package/lib/sequenceFactory.d.ts.map +0 -1
  326. package/lib/sequenceFactory.js +0 -186
  327. package/lib/sequenceFactory.js.map +0 -1
  328. package/lib/sharedIntervalCollection.d.ts.map +0 -1
  329. package/lib/sharedIntervalCollection.js.map +0 -1
  330. package/lib/sharedNumberSequence.d.ts +0 -50
  331. package/lib/sharedNumberSequence.d.ts.map +0 -1
  332. package/lib/sharedNumberSequence.js +0 -57
  333. package/lib/sharedNumberSequence.js.map +0 -1
  334. package/lib/sharedObjectSequence.d.ts +0 -50
  335. package/lib/sharedObjectSequence.d.ts.map +0 -1
  336. package/lib/sharedObjectSequence.js +0 -57
  337. package/lib/sharedObjectSequence.js.map +0 -1
  338. package/lib/sharedSequence.d.ts.map +0 -1
  339. package/lib/sharedSequence.js.map +0 -1
  340. package/lib/sharedString.d.ts.map +0 -1
  341. package/lib/sharedString.js +0 -183
  342. package/lib/sharedString.js.map +0 -1
  343. package/lib/sparsematrix.d.ts +0 -139
  344. package/lib/sparsematrix.d.ts.map +0 -1
  345. package/lib/sparsematrix.js +0 -323
  346. package/lib/sparsematrix.js.map +0 -1
  347. package/src/sharedNumberSequence.ts +0 -62
  348. package/src/sharedObjectSequence.ts +0 -62
  349. package/src/sparsematrix.ts +0 -421
  350. package/tsconfig.esnext.json +0 -7
@@ -0,0 +1,734 @@
1
+ ## API Report File for "@fluidframework/sequence"
2
+
3
+ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
+
5
+ ```ts
6
+
7
+ import { BaseSegment } from '@fluidframework/merge-tree';
8
+ import { Client } from '@fluidframework/merge-tree';
9
+ import { Deferred } from '@fluidframework/core-utils';
10
+ import { IChannelAttributes } from '@fluidframework/datastore-definitions';
11
+ import { IChannelFactory } from '@fluidframework/datastore-definitions';
12
+ import { IChannelServices } from '@fluidframework/datastore-definitions';
13
+ import { IChannelStorageService } from '@fluidframework/datastore-definitions';
14
+ import { IEvent } from '@fluidframework/core-interfaces';
15
+ import { IEventThisPlaceHolder } from '@fluidframework/core-interfaces';
16
+ import { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';
17
+ import { IFluidSerializer } from '@fluidframework/shared-object-base';
18
+ import { IJSONSegment } from '@fluidframework/merge-tree';
19
+ import { IMergeTreeDeltaCallbackArgs } from '@fluidframework/merge-tree';
20
+ import { IMergeTreeDeltaOpArgs } from '@fluidframework/merge-tree';
21
+ import { IMergeTreeGroupMsg } from '@fluidframework/merge-tree';
22
+ import { IMergeTreeMaintenanceCallbackArgs } from '@fluidframework/merge-tree';
23
+ import { IRelativePosition } from '@fluidframework/merge-tree';
24
+ import { ISegment } from '@fluidframework/merge-tree';
25
+ import { ISegmentAction } from '@fluidframework/merge-tree';
26
+ import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
27
+ import { ISharedObjectEvents } from '@fluidframework/shared-object-base';
28
+ import { ISummaryTreeWithStats } from '@fluidframework/runtime-definitions';
29
+ import { ITelemetryContext } from '@fluidframework/runtime-definitions';
30
+ import { LocalReferencePosition } from '@fluidframework/merge-tree';
31
+ import { MapLike } from '@fluidframework/merge-tree';
32
+ import { Marker } from '@fluidframework/merge-tree';
33
+ import { MergeTreeDeltaOperationType } from '@fluidframework/merge-tree';
34
+ import { MergeTreeDeltaOperationTypes } from '@fluidframework/merge-tree';
35
+ import { MergeTreeDeltaRevertible } from '@fluidframework/merge-tree';
36
+ import { MergeTreeDeltaType } from '@fluidframework/merge-tree';
37
+ import { MergeTreeMaintenanceType } from '@fluidframework/merge-tree';
38
+ import { MergeTreeRevertibleDriver } from '@fluidframework/merge-tree';
39
+ import { PropertiesManager } from '@fluidframework/merge-tree';
40
+ import { PropertySet } from '@fluidframework/merge-tree';
41
+ import { ReferencePosition } from '@fluidframework/merge-tree';
42
+ import { ReferenceType } from '@fluidframework/merge-tree';
43
+ import { reservedMarkerIdKey } from '@fluidframework/merge-tree';
44
+ import { reservedRangeLabelsKey } from '@fluidframework/merge-tree';
45
+ import { reservedTileLabelsKey } from '@fluidframework/merge-tree';
46
+ import { Serializable } from '@fluidframework/datastore-definitions';
47
+ import { SharedObject } from '@fluidframework/shared-object-base';
48
+ import { SlidingPreference } from '@fluidframework/merge-tree';
49
+ import { TextSegment } from '@fluidframework/merge-tree';
50
+ import { TrackingGroup } from '@fluidframework/merge-tree';
51
+ import { TypedEventEmitter } from '@fluid-internal/client-utils';
52
+
53
+ // @internal
54
+ export function appendAddIntervalToRevertibles(interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
55
+
56
+ // @internal
57
+ export function appendChangeIntervalToRevertibles(string: SharedString, newInterval: SequenceInterval, previousInterval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
58
+
59
+ // @internal
60
+ export function appendDeleteIntervalToRevertibles(string: SharedString, interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
61
+
62
+ // @internal
63
+ export function appendIntervalPropertyChangedToRevertibles(interval: SequenceInterval, deltas: PropertySet, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
64
+
65
+ // @internal
66
+ export function appendSharedStringDeltaToRevertibles(string: SharedString, delta: SequenceDeltaEvent, revertibles: SharedStringRevertible[]): void;
67
+
68
+ export { BaseSegment }
69
+
70
+ // @internal (undocumented)
71
+ export function createEndpointIndex(sharedString: SharedString): IEndpointIndex<SequenceInterval>;
72
+
73
+ // @internal (undocumented)
74
+ export function createEndpointInRangeIndex(sharedString: SharedString): IEndpointInRangeIndex<SequenceInterval>;
75
+
76
+ // @internal (undocumented)
77
+ export function createIdIntervalIndex<TInterval extends ISerializableInterval>(): IIdIntervalIndex<TInterval>;
78
+
79
+ // @internal (undocumented)
80
+ export function createOverlappingIntervalsIndex(sharedString: SharedString): IOverlappingIntervalsIndex<SequenceInterval>;
81
+
82
+ // @internal (undocumented)
83
+ export function createOverlappingSequenceIntervalsIndex(sharedString: SharedString): SequenceIntervalIndexes.Overlapping;
84
+
85
+ // @internal (undocumented)
86
+ export function createStartpointInRangeIndex(sharedString: SharedString): IStartpointInRangeIndex<SequenceInterval>;
87
+
88
+ // @alpha (undocumented)
89
+ export type DeserializeCallback = (properties: PropertySet) => void;
90
+
91
+ // @internal
92
+ export function discardSharedStringRevertibles(sharedString: SharedString, revertibles: SharedStringRevertible[]): void;
93
+
94
+ // @internal
95
+ export function getTextAndMarkers(sharedString: SharedString, label: string, start?: number, end?: number): {
96
+ parallelText: string[];
97
+ parallelMarkers: Marker[];
98
+ };
99
+
100
+ // @internal (undocumented)
101
+ export interface IEndpointIndex<TInterval extends ISerializableInterval> extends IntervalIndex<TInterval> {
102
+ // (undocumented)
103
+ nextInterval(pos: number): TInterval | undefined;
104
+ // (undocumented)
105
+ previousInterval(pos: number): TInterval | undefined;
106
+ }
107
+
108
+ // @internal
109
+ export interface IEndpointInRangeIndex<TInterval extends ISerializableInterval> extends IntervalIndex<TInterval> {
110
+ // (undocumented)
111
+ findIntervalsWithEndpointInRange(start: number, end: number): TInterval[];
112
+ }
113
+
114
+ // @internal (undocumented)
115
+ export interface IIdIntervalIndex<TInterval extends ISerializableInterval> extends IntervalIndex<TInterval>, Iterable<TInterval> {
116
+ // (undocumented)
117
+ [Symbol.iterator](): Iterator<TInterval>;
118
+ // (undocumented)
119
+ getIntervalById(id: string): TInterval | undefined;
120
+ }
121
+
122
+ // @alpha
123
+ export interface IInterval {
124
+ // (undocumented)
125
+ clone(): IInterval;
126
+ compare(b: IInterval): number;
127
+ compareEnd(b: IInterval): number;
128
+ compareStart(b: IInterval): number;
129
+ modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, useNewSlidingBehavior?: boolean): IInterval | undefined;
130
+ // (undocumented)
131
+ overlaps(b: IInterval): boolean;
132
+ union(b: IInterval): IInterval;
133
+ }
134
+
135
+ // @alpha
136
+ export interface IIntervalCollection<TInterval extends ISerializableInterval> extends TypedEventEmitter<IIntervalCollectionEvent<TInterval>> {
137
+ // (undocumented)
138
+ [Symbol.iterator](): Iterator<TInterval>;
139
+ add({ start, end, props, }: {
140
+ start: SequencePlace;
141
+ end: SequencePlace;
142
+ props?: PropertySet;
143
+ }): TInterval;
144
+ // (undocumented)
145
+ attachDeserializer(onDeserialize: DeserializeCallback): void;
146
+ // (undocumented)
147
+ readonly attached: boolean;
148
+ attachIndex(index: IntervalIndex<TInterval>): void;
149
+ // @deprecated
150
+ change(id: string, start: SequencePlace, end: SequencePlace): TInterval | undefined;
151
+ change(id: string, { start, end, props }: {
152
+ start?: SequencePlace;
153
+ end?: SequencePlace;
154
+ props?: PropertySet;
155
+ }): TInterval | undefined;
156
+ // @deprecated
157
+ changeProperties(id: string, props: PropertySet): void;
158
+ // (undocumented)
159
+ CreateBackwardIteratorWithEndPosition(endPosition: number): Iterator<TInterval>;
160
+ // (undocumented)
161
+ CreateBackwardIteratorWithStartPosition(startPosition: number): Iterator<TInterval>;
162
+ // (undocumented)
163
+ CreateForwardIteratorWithEndPosition(endPosition: number): Iterator<TInterval>;
164
+ // (undocumented)
165
+ CreateForwardIteratorWithStartPosition(startPosition: number): Iterator<TInterval>;
166
+ detachIndex(index: IntervalIndex<TInterval>): boolean;
167
+ // @deprecated (undocumented)
168
+ findOverlappingIntervals(startPosition: number, endPosition: number): TInterval[];
169
+ gatherIterationResults(results: TInterval[], iteratesForward: boolean, start?: number, end?: number): void;
170
+ // (undocumented)
171
+ getIntervalById(id: string): TInterval | undefined;
172
+ map(fn: (interval: TInterval) => void): void;
173
+ // @deprecated (undocumented)
174
+ nextInterval(pos: number): TInterval | undefined;
175
+ // @deprecated (undocumented)
176
+ previousInterval(pos: number): TInterval | undefined;
177
+ removeIntervalById(id: string): TInterval | undefined;
178
+ }
179
+
180
+ // @alpha
181
+ export interface IIntervalCollectionEvent<TInterval extends ISerializableInterval> extends IEvent {
182
+ (event: "changeInterval", listener: (interval: TInterval, previousInterval: TInterval, local: boolean, op: ISequencedDocumentMessage | undefined, slide: boolean) => void): void;
183
+ (event: "addInterval" | "deleteInterval", listener: (interval: TInterval, local: boolean, op: ISequencedDocumentMessage | undefined) => void): void;
184
+ (event: "propertyChanged", listener: (interval: TInterval, propertyDeltas: PropertySet, local: boolean, op: ISequencedDocumentMessage | undefined) => void): void;
185
+ }
186
+
187
+ // @internal @sealed @deprecated (undocumented)
188
+ export interface IIntervalHelpers<TInterval extends ISerializableInterval> {
189
+ // (undocumented)
190
+ create(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, client: Client | undefined, intervalType: IntervalType, op?: ISequencedDocumentMessage, fromSnapshot?: boolean, useNewSlidingBehavior?: boolean): TInterval;
191
+ }
192
+
193
+ // @internal @deprecated (undocumented)
194
+ export interface IJSONRunSegment<T> extends IJSONSegment {
195
+ // (undocumented)
196
+ items: Serializable<T>[];
197
+ }
198
+
199
+ // @internal (undocumented)
200
+ export interface IMapMessageLocalMetadata {
201
+ // (undocumented)
202
+ localSeq: number;
203
+ }
204
+
205
+ // @alpha
206
+ export interface InteriorSequencePlace {
207
+ // (undocumented)
208
+ pos: number;
209
+ // (undocumented)
210
+ side: Side;
211
+ }
212
+
213
+ // @internal
214
+ export class Interval implements ISerializableInterval {
215
+ constructor(start: number, end: number, props?: PropertySet);
216
+ // (undocumented)
217
+ addProperties(newProps: PropertySet, collaborating?: boolean, seq?: number): PropertySet | undefined;
218
+ addPropertySet(props: PropertySet): void;
219
+ // (undocumented)
220
+ auxProps: PropertySet[] | undefined;
221
+ // (undocumented)
222
+ clone(): Interval;
223
+ compare(b: Interval): number;
224
+ compareEnd(b: Interval): number;
225
+ compareStart(b: Interval): number;
226
+ // (undocumented)
227
+ end: number;
228
+ // (undocumented)
229
+ getAdditionalPropertySets(): PropertySet[];
230
+ getIntervalId(): string;
231
+ // (undocumented)
232
+ getProperties(): PropertySet;
233
+ modify(label: string, start?: SequencePlace, end?: SequencePlace, op?: ISequencedDocumentMessage): Interval | undefined;
234
+ // (undocumented)
235
+ overlaps(b: Interval): boolean;
236
+ properties: PropertySet;
237
+ // (undocumented)
238
+ readonly propertyManager: PropertiesManager;
239
+ // (undocumented)
240
+ serialize(): ISerializedInterval;
241
+ // (undocumented)
242
+ start: number;
243
+ union(b: Interval): Interval;
244
+ }
245
+
246
+ // @alpha
247
+ export interface IntervalIndex<TInterval extends ISerializableInterval> {
248
+ add(interval: TInterval): void;
249
+ remove(interval: TInterval): void;
250
+ }
251
+
252
+ // @internal
253
+ export interface IntervalLocator {
254
+ interval: SequenceInterval;
255
+ label: string;
256
+ }
257
+
258
+ // @internal
259
+ export function intervalLocatorFromEndpoint(potentialEndpoint: LocalReferencePosition): IntervalLocator | undefined;
260
+
261
+ // @internal
262
+ export const IntervalOpType: {
263
+ readonly PROPERTY_CHANGED: "propertyChanged";
264
+ readonly POSITION_REMOVE: "positionRemove";
265
+ readonly ADD: "add";
266
+ readonly DELETE: "delete";
267
+ readonly CHANGE: "change";
268
+ };
269
+
270
+ // @internal (undocumented)
271
+ export type IntervalOpType = (typeof IntervalOpType)[keyof typeof IntervalOpType];
272
+
273
+ // @internal
274
+ export type IntervalRevertible = {
275
+ event: typeof IntervalOpType.CHANGE;
276
+ interval: SequenceInterval;
277
+ start: LocalReferencePosition;
278
+ end: LocalReferencePosition;
279
+ } | {
280
+ event: typeof IntervalOpType.ADD;
281
+ interval: SequenceInterval;
282
+ } | {
283
+ event: typeof IntervalOpType.DELETE;
284
+ interval: SequenceInterval;
285
+ start: LocalReferencePosition;
286
+ end: LocalReferencePosition;
287
+ } | {
288
+ event: typeof IntervalOpType.PROPERTY_CHANGED;
289
+ interval: SequenceInterval;
290
+ propertyDeltas: PropertySet;
291
+ } | {
292
+ event: typeof IntervalOpType.POSITION_REMOVE;
293
+ intervals: {
294
+ intervalId: string;
295
+ label: string;
296
+ startOffset?: number;
297
+ endOffset?: number;
298
+ }[];
299
+ revertibleRefs: {
300
+ revertible: IntervalRevertible;
301
+ offset: number;
302
+ isStart: boolean;
303
+ }[];
304
+ mergeTreeRevertible: MergeTreeDeltaRevertible;
305
+ };
306
+
307
+ // @alpha
308
+ export const IntervalStickiness: {
309
+ readonly NONE: 0;
310
+ readonly START: 1;
311
+ readonly END: 2;
312
+ readonly FULL: 3;
313
+ };
314
+
315
+ // @alpha
316
+ export type IntervalStickiness = (typeof IntervalStickiness)[keyof typeof IntervalStickiness];
317
+
318
+ // @alpha (undocumented)
319
+ export enum IntervalType {
320
+ // (undocumented)
321
+ Simple = 0,
322
+ SlideOnRemove = 2,
323
+ // @internal
324
+ Transient = 4
325
+ }
326
+
327
+ // @internal (undocumented)
328
+ export interface IOverlappingIntervalsIndex<TInterval extends ISerializableInterval> extends IntervalIndex<TInterval> {
329
+ // (undocumented)
330
+ findOverlappingIntervals(start: SequencePlace, end: SequencePlace): TInterval[];
331
+ gatherIterationResults(results: TInterval[], iteratesForward: boolean, start?: SequencePlace, end?: SequencePlace): void;
332
+ }
333
+
334
+ export { ISegment }
335
+
336
+ // @alpha
337
+ export interface ISequenceDeltaRange<TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes> {
338
+ operation: TOperation;
339
+ position: number;
340
+ propertyDeltas: PropertySet;
341
+ segment: ISegment;
342
+ }
343
+
344
+ // @alpha (undocumented)
345
+ export interface ISerializableInterval extends IInterval {
346
+ // (undocumented)
347
+ addProperties(props: PropertySet, collaborating?: boolean, seq?: number): PropertySet | undefined;
348
+ getIntervalId(): string | undefined;
349
+ properties: PropertySet;
350
+ // (undocumented)
351
+ propertyManager: PropertiesManager;
352
+ // (undocumented)
353
+ serialize(): ISerializedInterval;
354
+ }
355
+
356
+ // @alpha
357
+ export interface ISerializedInterval {
358
+ end: number | "start" | "end";
359
+ // (undocumented)
360
+ endSide?: Side;
361
+ intervalType: IntervalType;
362
+ properties?: PropertySet;
363
+ sequenceNumber: number;
364
+ start: number | "start" | "end";
365
+ // (undocumented)
366
+ startSide?: Side;
367
+ stickiness?: IntervalStickiness;
368
+ }
369
+
370
+ // @alpha (undocumented)
371
+ export interface ISharedIntervalCollection<TInterval extends ISerializableInterval> {
372
+ // (undocumented)
373
+ getIntervalCollection(label: string): IIntervalCollection<TInterval>;
374
+ }
375
+
376
+ // @alpha
377
+ export interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
378
+ // (undocumented)
379
+ (event: "createIntervalCollection", listener: (label: string, local: boolean, target: IEventThisPlaceHolder) => void): void;
380
+ // (undocumented)
381
+ (event: "sequenceDelta", listener: (event: SequenceDeltaEvent, target: IEventThisPlaceHolder) => void): void;
382
+ // (undocumented)
383
+ (event: "maintenance", listener: (event: SequenceMaintenanceEvent, target: IEventThisPlaceHolder) => void): void;
384
+ }
385
+
386
+ // @alpha
387
+ export interface ISharedString extends SharedSegmentSequence<SharedStringSegment> {
388
+ insertMarker(pos: number, refType: ReferenceType, props?: PropertySet): void;
389
+ insertText(pos: number, text: string, props?: PropertySet): void;
390
+ posFromRelativePos(relativePos: IRelativePosition): number;
391
+ }
392
+
393
+ // @internal
394
+ export interface IStartpointInRangeIndex<TInterval extends ISerializableInterval> extends IntervalIndex<TInterval> {
395
+ // (undocumented)
396
+ findIntervalsWithStartpointInRange(start: number, end: number): TInterval[];
397
+ }
398
+
399
+ // @internal @deprecated
400
+ export interface IValueOpEmitter {
401
+ // @deprecated
402
+ emit(opName: IntervalOpType, previousValue: undefined, params: SerializedIntervalDelta, localOpMetadata: IMapMessageLocalMetadata): void;
403
+ }
404
+
405
+ export { LocalReferencePosition }
406
+
407
+ export { MapLike }
408
+
409
+ export { Marker }
410
+
411
+ export { MergeTreeDeltaType }
412
+
413
+ export { PropertySet }
414
+
415
+ export { ReferencePosition }
416
+
417
+ export { ReferenceType }
418
+
419
+ export { reservedMarkerIdKey }
420
+
421
+ export { reservedRangeLabelsKey }
422
+
423
+ export { reservedTileLabelsKey }
424
+
425
+ // @internal
426
+ export function revertSharedStringRevertibles(sharedString: SharedString, revertibles: SharedStringRevertible[]): void;
427
+
428
+ // @alpha
429
+ export class SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationType> {
430
+ constructor(opArgs: IMergeTreeDeltaOpArgs, deltaArgs: IMergeTreeDeltaCallbackArgs, mergeTreeClient: Client);
431
+ readonly isLocal: boolean;
432
+ // (undocumented)
433
+ readonly opArgs: IMergeTreeDeltaOpArgs;
434
+ }
435
+
436
+ // @alpha
437
+ export abstract class SequenceEvent<TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes> {
438
+ constructor(deltaArgs: IMergeTreeDeltaCallbackArgs<TOperation>, mergeTreeClient: Client);
439
+ get clientId(): string | undefined;
440
+ // (undocumented)
441
+ readonly deltaArgs: IMergeTreeDeltaCallbackArgs<TOperation>;
442
+ // (undocumented)
443
+ readonly deltaOperation: TOperation;
444
+ get first(): Readonly<ISequenceDeltaRange<TOperation>>;
445
+ get last(): Readonly<ISequenceDeltaRange<TOperation>>;
446
+ get ranges(): readonly Readonly<ISequenceDeltaRange<TOperation>>[];
447
+ }
448
+
449
+ // @alpha
450
+ export class SequenceInterval implements ISerializableInterval {
451
+ constructor(client: Client,
452
+ start: LocalReferencePosition,
453
+ end: LocalReferencePosition, intervalType: IntervalType, props?: PropertySet, startSide?: Side, endSide?: Side);
454
+ addPositionChangeListeners(beforePositionChange: () => void, afterPositionChange: () => void): void;
455
+ // (undocumented)
456
+ addProperties(newProps: PropertySet, collab?: boolean, seq?: number): PropertySet | undefined;
457
+ // (undocumented)
458
+ clone(): SequenceInterval;
459
+ compare(b: SequenceInterval): number;
460
+ compareEnd(b: SequenceInterval): number;
461
+ compareStart(b: SequenceInterval): number;
462
+ end: LocalReferencePosition;
463
+ // (undocumented)
464
+ readonly endSide: Side;
465
+ getIntervalId(): string;
466
+ // (undocumented)
467
+ intervalType: IntervalType;
468
+ modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, useNewSlidingBehavior?: boolean): SequenceInterval;
469
+ // (undocumented)
470
+ overlaps(b: SequenceInterval): boolean;
471
+ // (undocumented)
472
+ overlapsPos(bstart: number, bend: number): boolean;
473
+ properties: PropertySet;
474
+ // (undocumented)
475
+ propertyManager: PropertiesManager;
476
+ removePositionChangeListeners(): void;
477
+ // (undocumented)
478
+ serialize(): ISerializedInterval;
479
+ start: LocalReferencePosition;
480
+ // (undocumented)
481
+ readonly startSide: Side;
482
+ // (undocumented)
483
+ get stickiness(): IntervalStickiness;
484
+ union(b: SequenceInterval): SequenceInterval;
485
+ }
486
+
487
+ // @internal @deprecated (undocumented)
488
+ export const sequenceIntervalHelpers: IIntervalHelpers<SequenceInterval>;
489
+
490
+ // @internal
491
+ export namespace SequenceIntervalIndexes {
492
+ export interface Overlapping extends IOverlappingIntervalsIndex<SequenceInterval> {
493
+ findOverlappingIntervalsBySegoff(startSegoff: {
494
+ segment: ISegment | undefined;
495
+ offset: number | undefined;
496
+ }, endSegoff: {
497
+ segment: ISegment | undefined;
498
+ offset: number | undefined;
499
+ }): Iterable<SequenceInterval>;
500
+ }
501
+ }
502
+
503
+ // @alpha
504
+ export class SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMaintenanceType> {
505
+ constructor(opArgs: IMergeTreeDeltaOpArgs | undefined, deltaArgs: IMergeTreeMaintenanceCallbackArgs, mergeTreeClient: Client);
506
+ // (undocumented)
507
+ readonly opArgs: IMergeTreeDeltaOpArgs | undefined;
508
+ }
509
+
510
+ // @internal
511
+ export interface SequenceOptions {
512
+ // (undocumented)
513
+ [key: string]: boolean;
514
+ intervalStickinessEnabled: boolean;
515
+ mergeTreeReferencesCanSlideToEndpoint: boolean;
516
+ }
517
+
518
+ // @alpha
519
+ export type SequencePlace = number | "start" | "end" | InteriorSequencePlace;
520
+
521
+ // @internal
522
+ export type SerializedIntervalDelta = Omit<ISerializedInterval, "start" | "end" | "properties"> & Partial<Pick<ISerializedInterval, "start" | "end" | "properties">>;
523
+
524
+ // @internal @deprecated (undocumented)
525
+ export class SharedIntervalCollection extends SharedObject implements ISharedIntervalCollection<Interval> {
526
+ // (undocumented)
527
+ readonly [Symbol.toStringTag]: string;
528
+ constructor(id: string, runtime: IFluidDataStoreRuntime, attributes: IChannelAttributes);
529
+ // (undocumented)
530
+ protected applyStashedOp(): void;
531
+ static create(runtime: IFluidDataStoreRuntime, id?: string): SharedIntervalCollection;
532
+ static getFactory(): IChannelFactory;
533
+ // (undocumented)
534
+ getIntervalCollection(label: string): IIntervalCollection<Interval>;
535
+ protected getIntervalCollectionPath(label: string): string;
536
+ // (undocumented)
537
+ protected loadCore(storage: IChannelStorageService): Promise<void>;
538
+ // (undocumented)
539
+ protected onDisconnect(): void;
540
+ // (undocumented)
541
+ protected processCore(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
542
+ // (undocumented)
543
+ protected reSubmitCore(content: any, localOpMetadata: unknown): void;
544
+ // (undocumented)
545
+ protected summarizeCore(serializer: IFluidSerializer): ISummaryTreeWithStats;
546
+ }
547
+
548
+ // @internal @deprecated
549
+ export class SharedIntervalCollectionFactory implements IChannelFactory {
550
+ // (undocumented)
551
+ static readonly Attributes: IChannelAttributes;
552
+ // (undocumented)
553
+ get attributes(): IChannelAttributes;
554
+ // (undocumented)
555
+ create(runtime: IFluidDataStoreRuntime, id: string): SharedIntervalCollection;
556
+ // (undocumented)
557
+ load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, attributes: IChannelAttributes): Promise<SharedIntervalCollection>;
558
+ // (undocumented)
559
+ static readonly Type = "https://graph.microsoft.com/types/sharedIntervalCollection";
560
+ // (undocumented)
561
+ get type(): string;
562
+ }
563
+
564
+ // @alpha (undocumented)
565
+ export abstract class SharedSegmentSequence<T extends ISegment> extends SharedObject<ISharedSegmentSequenceEvents> implements ISharedIntervalCollection<SequenceInterval>, MergeTreeRevertibleDriver {
566
+ constructor(dataStoreRuntime: IFluidDataStoreRuntime, id: string, attributes: IChannelAttributes, segmentFromSpec: (spec: IJSONSegment) => ISegment);
567
+ annotateRange(start: number, end: number, props: PropertySet): void;
568
+ // (undocumented)
569
+ protected applyStashedOp(content: any): unknown;
570
+ // (undocumented)
571
+ protected client: Client;
572
+ createLocalReferencePosition(segment: T, offset: number, refType: ReferenceType, properties: PropertySet | undefined, slidingPreference?: SlidingPreference, canSlideToEndpoint?: boolean): LocalReferencePosition;
573
+ // (undocumented)
574
+ protected didAttach(): void;
575
+ getContainingSegment(pos: number): {
576
+ segment: T | undefined;
577
+ offset: number | undefined;
578
+ };
579
+ // (undocumented)
580
+ getCurrentSeq(): number;
581
+ getIntervalCollection(label: string): IIntervalCollection<SequenceInterval>;
582
+ // (undocumented)
583
+ getIntervalCollectionLabels(): IterableIterator<string>;
584
+ getLength(): number;
585
+ getPosition(segment: ISegment): number;
586
+ // (undocumented)
587
+ getPropertiesAtPosition(pos: number): PropertySet | undefined;
588
+ // (undocumented)
589
+ getRangeExtentsOfPosition(pos: number): {
590
+ posStart: number | undefined;
591
+ posAfterEnd: number | undefined;
592
+ };
593
+ // @deprecated (undocumented)
594
+ groupOperation(groupOp: IMergeTreeGroupMsg): void;
595
+ protected guardReentrancy: <TRet>(callback: () => TRet) => TRet;
596
+ // (undocumented)
597
+ id: string;
598
+ // (undocumented)
599
+ protected initializeLocalCore(): void;
600
+ insertAtReferencePosition(pos: ReferencePosition, segment: T): void;
601
+ insertFromSpec(pos: number, spec: IJSONSegment): void;
602
+ // (undocumented)
603
+ protected loadCore(storage: IChannelStorageService): Promise<void>;
604
+ // (undocumented)
605
+ get loaded(): Promise<void>;
606
+ protected loadedDeferred: Deferred<void>;
607
+ localReferencePositionToPosition(lref: ReferencePosition): number;
608
+ obliterateRange(start: number, end: number): void;
609
+ // (undocumented)
610
+ protected onConnect(): void;
611
+ // (undocumented)
612
+ protected onDisconnect(): void;
613
+ posFromRelativePos(relativePos: IRelativePosition): number;
614
+ // (undocumented)
615
+ protected processCore(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
616
+ protected processGCDataCore(serializer: IFluidSerializer): void;
617
+ removeLocalReferencePosition(lref: LocalReferencePosition): LocalReferencePosition | undefined;
618
+ // (undocumented)
619
+ removeRange(start: number, end: number): void;
620
+ protected replaceRange(start: number, end: number, segment: ISegment): void;
621
+ resolveRemoteClientPosition(remoteClientPosition: number, remoteClientRefSeq: number, remoteClientId: string): number | undefined;
622
+ // (undocumented)
623
+ protected reSubmitCore(content: any, localOpMetadata: unknown): void;
624
+ // (undocumented)
625
+ readonly segmentFromSpec: (spec: IJSONSegment) => ISegment;
626
+ // (undocumented)
627
+ protected summarizeCore(serializer: IFluidSerializer, telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
628
+ walkSegments<TClientData>(handler: ISegmentAction<TClientData>, start?: number, end?: number, accum?: TClientData, splitRange?: boolean): void;
629
+ }
630
+
631
+ // @internal @deprecated (undocumented)
632
+ export class SharedSequence<T> extends SharedSegmentSequence<SubSequence<T>> {
633
+ constructor(document: IFluidDataStoreRuntime, id: string, attributes: IChannelAttributes, specToSegment: (spec: IJSONSegment) => ISegment);
634
+ getItemCount(): number;
635
+ getItems(start: number, end?: number): Serializable<T>[];
636
+ // (undocumented)
637
+ id: string;
638
+ // (undocumented)
639
+ insert(pos: number, items: Serializable<T>[], props?: PropertySet): void;
640
+ // (undocumented)
641
+ remove(start: number, end: number): void;
642
+ }
643
+
644
+ // @alpha
645
+ export class SharedString extends SharedSegmentSequence<SharedStringSegment> implements ISharedString {
646
+ constructor(document: IFluidDataStoreRuntime, id: string, attributes: IChannelAttributes);
647
+ annotateMarker(marker: Marker, props: PropertySet): void;
648
+ static create(runtime: IFluidDataStoreRuntime, id?: string): SharedString;
649
+ static getFactory(): SharedStringFactory;
650
+ getMarkerFromId(id: string): ISegment | undefined;
651
+ getText(start?: number, end?: number): string;
652
+ // (undocumented)
653
+ getTextRangeWithMarkers(start: number, end: number): string;
654
+ getTextWithPlaceholders(start?: number, end?: number): string;
655
+ // (undocumented)
656
+ id: string;
657
+ insertMarker(pos: number, refType: ReferenceType, props?: PropertySet): void;
658
+ insertMarkerRelative(relativePos1: IRelativePosition, refType: ReferenceType, props?: PropertySet): void;
659
+ insertText(pos: number, text: string, props?: PropertySet): void;
660
+ insertTextRelative(relativePos1: IRelativePosition, text: string, props?: PropertySet): void;
661
+ // (undocumented)
662
+ get ISharedString(): ISharedString;
663
+ removeText(start: number, end: number): void;
664
+ replaceText(start: number, end: number, text: string, props?: PropertySet): void;
665
+ protected rollback(content: any, localOpMetadata: unknown): void;
666
+ searchForMarker(startPos: number, markerLabel: string, forwards?: boolean): Marker | undefined;
667
+ }
668
+
669
+ // @alpha (undocumented)
670
+ export class SharedStringFactory implements IChannelFactory {
671
+ // (undocumented)
672
+ static readonly Attributes: IChannelAttributes;
673
+ // (undocumented)
674
+ get attributes(): IChannelAttributes;
675
+ // (undocumented)
676
+ create(document: IFluidDataStoreRuntime, id: string): SharedString;
677
+ // (undocumented)
678
+ load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, attributes: IChannelAttributes): Promise<SharedString>;
679
+ // (undocumented)
680
+ static segmentFromSpec(spec: any): SharedStringSegment;
681
+ // (undocumented)
682
+ static Type: string;
683
+ // (undocumented)
684
+ get type(): string;
685
+ }
686
+
687
+ // @internal
688
+ export type SharedStringRevertible = MergeTreeDeltaRevertible | IntervalRevertible;
689
+
690
+ // @alpha (undocumented)
691
+ export type SharedStringSegment = TextSegment | Marker;
692
+
693
+ // @alpha
694
+ export enum Side {
695
+ // (undocumented)
696
+ After = 1,
697
+ // (undocumented)
698
+ Before = 0
699
+ }
700
+
701
+ // @internal @deprecated (undocumented)
702
+ export class SubSequence<T> extends BaseSegment {
703
+ constructor(items: Serializable<T>[]);
704
+ // (undocumented)
705
+ append(segment: ISegment): void;
706
+ // (undocumented)
707
+ canAppend(segment: ISegment): boolean;
708
+ // (undocumented)
709
+ clone(start?: number, end?: number): SubSequence<T>;
710
+ // (undocumented)
711
+ protected createSplitSegmentAt(pos: number): SubSequence<T> | undefined;
712
+ // (undocumented)
713
+ static fromJSONObject<U>(spec: any): SubSequence<U> | undefined;
714
+ // (undocumented)
715
+ static is(segment: ISegment): segment is SubSequence<any>;
716
+ // (undocumented)
717
+ items: Serializable<T>[];
718
+ // (undocumented)
719
+ removeRange(start: number, end: number): boolean;
720
+ // (undocumented)
721
+ toJSONObject(): IJSONRunSegment<T>;
722
+ // (undocumented)
723
+ toString(): string;
724
+ // (undocumented)
725
+ readonly type: string;
726
+ // (undocumented)
727
+ static readonly typeString: string;
728
+ }
729
+
730
+ export { TextSegment }
731
+
732
+ export { TrackingGroup }
733
+
734
+ ```