@fluidframework/sequence 2.31.1 → 2.33.0-333010

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 (130) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/intervalCollection.d.ts +11 -13
  7. package/dist/intervalCollection.d.ts.map +1 -1
  8. package/dist/intervalCollection.js +96 -149
  9. package/dist/intervalCollection.js.map +1 -1
  10. package/dist/intervalCollectionMap.d.ts +4 -4
  11. package/dist/intervalCollectionMap.d.ts.map +1 -1
  12. package/dist/intervalCollectionMap.js +16 -49
  13. package/dist/intervalCollectionMap.js.map +1 -1
  14. package/dist/intervalCollectionMapInterfaces.d.ts +21 -15
  15. package/dist/intervalCollectionMapInterfaces.d.ts.map +1 -1
  16. package/dist/intervalCollectionMapInterfaces.js.map +1 -1
  17. package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  18. package/dist/intervalIndex/endpointInRangeIndex.js +2 -2
  19. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  20. package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
  21. package/dist/intervalIndex/endpointIndex.js +2 -3
  22. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  23. package/dist/intervalIndex/idIntervalIndex.d.ts.map +1 -1
  24. package/dist/intervalIndex/idIntervalIndex.js +0 -7
  25. package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
  26. package/dist/intervalIndex/index.d.ts +0 -1
  27. package/dist/intervalIndex/index.d.ts.map +1 -1
  28. package/dist/intervalIndex/index.js +1 -3
  29. package/dist/intervalIndex/index.js.map +1 -1
  30. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  31. package/dist/intervalIndex/overlappingIntervalsIndex.js +2 -2
  32. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  33. package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  34. package/dist/intervalIndex/startpointInRangeIndex.js +2 -2
  35. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  36. package/dist/intervals/index.d.ts +2 -2
  37. package/dist/intervals/index.d.ts.map +1 -1
  38. package/dist/intervals/index.js +3 -1
  39. package/dist/intervals/index.js.map +1 -1
  40. package/dist/intervals/intervalUtils.d.ts +1 -5
  41. package/dist/intervals/intervalUtils.d.ts.map +1 -1
  42. package/dist/intervals/intervalUtils.js.map +1 -1
  43. package/dist/intervals/sequenceInterval.d.ts +20 -9
  44. package/dist/intervals/sequenceInterval.d.ts.map +1 -1
  45. package/dist/intervals/sequenceInterval.js +82 -27
  46. package/dist/intervals/sequenceInterval.js.map +1 -1
  47. package/dist/packageVersion.d.ts +1 -1
  48. package/dist/packageVersion.d.ts.map +1 -1
  49. package/dist/packageVersion.js +1 -1
  50. package/dist/packageVersion.js.map +1 -1
  51. package/dist/revertibles.d.ts.map +1 -1
  52. package/dist/revertibles.js +8 -7
  53. package/dist/revertibles.js.map +1 -1
  54. package/lib/index.d.ts +1 -1
  55. package/lib/index.d.ts.map +1 -1
  56. package/lib/index.js +1 -1
  57. package/lib/index.js.map +1 -1
  58. package/lib/intervalCollection.d.ts +11 -13
  59. package/lib/intervalCollection.d.ts.map +1 -1
  60. package/lib/intervalCollection.js +98 -151
  61. package/lib/intervalCollection.js.map +1 -1
  62. package/lib/intervalCollectionMap.d.ts +4 -4
  63. package/lib/intervalCollectionMap.d.ts.map +1 -1
  64. package/lib/intervalCollectionMap.js +17 -50
  65. package/lib/intervalCollectionMap.js.map +1 -1
  66. package/lib/intervalCollectionMapInterfaces.d.ts +21 -15
  67. package/lib/intervalCollectionMapInterfaces.d.ts.map +1 -1
  68. package/lib/intervalCollectionMapInterfaces.js.map +1 -1
  69. package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  70. package/lib/intervalIndex/endpointInRangeIndex.js +3 -3
  71. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
  72. package/lib/intervalIndex/endpointIndex.d.ts.map +1 -1
  73. package/lib/intervalIndex/endpointIndex.js +3 -4
  74. package/lib/intervalIndex/endpointIndex.js.map +1 -1
  75. package/lib/intervalIndex/idIntervalIndex.d.ts.map +1 -1
  76. package/lib/intervalIndex/idIntervalIndex.js +0 -7
  77. package/lib/intervalIndex/idIntervalIndex.js.map +1 -1
  78. package/lib/intervalIndex/index.d.ts +0 -1
  79. package/lib/intervalIndex/index.d.ts.map +1 -1
  80. package/lib/intervalIndex/index.js +0 -1
  81. package/lib/intervalIndex/index.js.map +1 -1
  82. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  83. package/lib/intervalIndex/overlappingIntervalsIndex.js +3 -3
  84. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  85. package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  86. package/lib/intervalIndex/startpointInRangeIndex.js +3 -3
  87. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
  88. package/lib/intervals/index.d.ts +2 -2
  89. package/lib/intervals/index.d.ts.map +1 -1
  90. package/lib/intervals/index.js +1 -1
  91. package/lib/intervals/index.js.map +1 -1
  92. package/lib/intervals/intervalUtils.d.ts +1 -5
  93. package/lib/intervals/intervalUtils.d.ts.map +1 -1
  94. package/lib/intervals/intervalUtils.js.map +1 -1
  95. package/lib/intervals/sequenceInterval.d.ts +20 -9
  96. package/lib/intervals/sequenceInterval.d.ts.map +1 -1
  97. package/lib/intervals/sequenceInterval.js +81 -28
  98. package/lib/intervals/sequenceInterval.js.map +1 -1
  99. package/lib/packageVersion.d.ts +1 -1
  100. package/lib/packageVersion.d.ts.map +1 -1
  101. package/lib/packageVersion.js +1 -1
  102. package/lib/packageVersion.js.map +1 -1
  103. package/lib/revertibles.d.ts.map +1 -1
  104. package/lib/revertibles.js +8 -7
  105. package/lib/revertibles.js.map +1 -1
  106. package/package.json +19 -18
  107. package/src/index.ts +0 -1
  108. package/src/intervalCollection.ts +135 -198
  109. package/src/intervalCollectionMap.ts +19 -61
  110. package/src/intervalCollectionMapInterfaces.ts +33 -29
  111. package/src/intervalIndex/endpointInRangeIndex.ts +3 -15
  112. package/src/intervalIndex/endpointIndex.ts +3 -17
  113. package/src/intervalIndex/idIntervalIndex.ts +0 -7
  114. package/src/intervalIndex/index.ts +0 -1
  115. package/src/intervalIndex/overlappingIntervalsIndex.ts +3 -12
  116. package/src/intervalIndex/startpointInRangeIndex.ts +3 -15
  117. package/src/intervals/index.ts +2 -1
  118. package/src/intervals/intervalUtils.ts +0 -7
  119. package/src/intervals/sequenceInterval.ts +124 -33
  120. package/src/packageVersion.ts +1 -1
  121. package/src/revertibles.ts +8 -7
  122. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +0 -11
  123. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +0 -1
  124. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +0 -38
  125. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +0 -1
  126. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +0 -11
  127. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +0 -1
  128. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js +0 -34
  129. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +0 -1
  130. package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +0 -80
@@ -13,10 +13,6 @@ import { ValueType, IFluidSerializer } from "@fluidframework/shared-object-base/
13
13
  import { makeSerializable } from "./IntervalCollectionValues.js";
14
14
  import {
15
15
  IntervalCollection,
16
- opsMap,
17
- reservedIntervalIdKey,
18
- toOptionalSequencePlace,
19
- toSequencePlace,
20
16
  type ISerializedIntervalCollectionV1,
21
17
  type ISerializedIntervalCollectionV2,
22
18
  } from "./intervalCollection.js";
@@ -190,63 +186,33 @@ export class IntervalCollectionMap {
190
186
 
191
187
  /**
192
188
  * Submit the given op if a handler is registered.
193
- * @param op - The operation to attempt to submit
189
+ * @param content - The operation to attempt to submit
194
190
  * @param localOpMetadata - The local metadata associated with the op. This is kept locally by the runtime
195
191
  * and not sent to the server. This will be sent back when this message is received back from the server. This is
196
192
  * also sent if we are asked to resubmit the message.
197
193
  * @returns True if the operation was submitted, false otherwise.
198
194
  */
199
- public tryResubmitMessage(op: unknown, localOpMetadata: IMapMessageLocalMetadata): boolean {
200
- if (isMapOperation(op)) {
201
- const localValue = this.data.get(op.key);
202
-
195
+ public tryResubmitMessage(
196
+ content: unknown,
197
+ localOpMetadata: IMapMessageLocalMetadata,
198
+ ): boolean {
199
+ if (isMapOperation(content)) {
200
+ const { value, key } = content;
201
+ const localValue = this.data.get(key);
203
202
  assert(localValue !== undefined, 0x3f8 /* Local value expected on resubmission */);
204
-
205
- const handler = opsMap[op.value.opName];
206
- const rebased = handler.rebase(localValue, op.value, localOpMetadata);
207
- if (rebased !== undefined) {
208
- const { rebasedOp, rebasedLocalOpMetadata } = rebased;
209
- this.submitMessage({ ...op, value: rebasedOp }, rebasedLocalOpMetadata);
210
- }
203
+ localValue.resubmitMessage(value, localOpMetadata);
211
204
  return true;
212
205
  }
213
206
  return false;
214
207
  }
215
208
 
216
- public tryApplyStashedOp(op: unknown): boolean {
217
- if (isMapOperation(op)) {
218
- const { value, key } = op;
209
+ public tryApplyStashedOp(content: unknown): boolean {
210
+ if (isMapOperation(content)) {
211
+ const { value, key } = content;
219
212
  const map = this.get(key);
220
213
 
221
- switch (value.opName) {
222
- case "add": {
223
- map.add({
224
- // Todo: we should improve typing so we know add ops always have start and end
225
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
226
- start: toSequencePlace(value.value.start!, value.value.startSide),
227
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
228
- end: toSequencePlace(value.value.end!, value.value.endSide),
229
- props: value.value.properties,
230
- });
231
- return true;
232
- }
233
- case "change": {
234
- const { [reservedIntervalIdKey]: id, ...props } = value.value.properties ?? {};
235
- map.change(id, {
236
- start: toOptionalSequencePlace(value.value.start, value.value.startSide),
237
- end: toOptionalSequencePlace(value.value.end, value.value.endSide),
238
- props,
239
- });
240
- return true;
241
- }
242
- case "delete": {
243
- const { [reservedIntervalIdKey]: id } = value.value.properties ?? {};
244
- map.removeIntervalById(id);
245
- return true;
246
- }
247
- default:
248
- throw new Error("unknown ops should not be stashed");
249
- }
214
+ map.applyStashedOp(value);
215
+ return true;
250
216
  }
251
217
  return false;
252
218
  }
@@ -267,23 +233,15 @@ export class IntervalCollectionMap {
267
233
  * (since its data no longer matches what other clients think the data should be) and will avoid overriding document content or misleading the users into thinking their current state is accurate.
268
234
  */
269
235
  public tryProcessMessage(
270
- op: unknown,
236
+ content: unknown,
271
237
  local: boolean,
272
238
  message: ISequencedDocumentMessage,
273
239
  localOpMetadata: unknown,
274
240
  ): boolean {
275
- if (isMapOperation(op)) {
276
- const localValue = this.data.get(op.key) ?? this.createCore(op.key, local);
277
- const handler = opsMap[op.value.opName];
278
- const previousValue = localValue;
279
- const translatedValue = op.value.value as any;
280
- handler.process(
281
- previousValue,
282
- translatedValue,
283
- local,
284
- message,
285
- localOpMetadata as IMapMessageLocalMetadata,
286
- );
241
+ if (isMapOperation(content)) {
242
+ const { value, key } = content;
243
+ const localValue = this.data.get(key) ?? this.createCore(key, local);
244
+ localValue.process(value, local, message, localOpMetadata as IMapMessageLocalMetadata);
287
245
  return true;
288
246
  }
289
247
  return false;
@@ -74,25 +74,6 @@ export interface IIntervalCollectionOperation {
74
74
  message: ISequencedDocumentMessage | undefined,
75
75
  localOpMetadata: IMapMessageLocalMetadata | undefined,
76
76
  ): void;
77
-
78
- /**
79
- * Rebases an `op` on `value` from its original perspective (ref/local seq) to the current
80
- * perspective. Should be invoked on reconnection.
81
- * @param value - The current value stored at the given key, which should be the value type.
82
- * @param op - The op to be rebased.
83
- * @param localOpMetadata - Any local metadata that was originally submitted with the op.
84
- * @returns A rebased version of the op and any local metadata that should be submitted with it.
85
- */
86
- rebase(
87
- value: IntervalCollection,
88
- op: IIntervalCollectionTypeOperationValue,
89
- localOpMetadata: IMapMessageLocalMetadata,
90
- ):
91
- | {
92
- rebasedOp: IIntervalCollectionTypeOperationValue;
93
- rebasedLocalOpMetadata: IMapMessageLocalMetadata;
94
- }
95
- | undefined;
96
77
  }
97
78
 
98
79
  /**
@@ -138,14 +119,37 @@ export interface ISerializedIntervalCollection {
138
119
  * serializable via JSON.stringify/parse but differs in that it has no equivalency with an in-memory value - rather
139
120
  * it just describes an operation to be applied to an already-in-memory value.
140
121
  */
141
- export interface IIntervalCollectionTypeOperationValue {
142
- /**
143
- * The name of the operation.
144
- */
145
- opName: IntervalDeltaOpType;
122
+ export type IIntervalCollectionTypeOperationValue =
123
+ | {
124
+ /**
125
+ * The name of the operation.
126
+ */
127
+ opName: typeof IntervalDeltaOpType.ADD;
146
128
 
147
- /**
148
- * The payload that is submitted along with the operation.
149
- */
150
- value: SerializedIntervalDelta;
151
- }
129
+ /**
130
+ * The payload that is submitted along with the operation.
131
+ */
132
+ value: ISerializedInterval;
133
+ }
134
+ | {
135
+ /**
136
+ * The name of the operation.
137
+ */
138
+ opName: typeof IntervalDeltaOpType.CHANGE;
139
+
140
+ /**
141
+ * The payload that is submitted along with the operation.
142
+ */
143
+ value: SerializedIntervalDelta;
144
+ }
145
+ | {
146
+ /**
147
+ * The name of the operation.
148
+ */
149
+ opName: typeof IntervalDeltaOpType.DELETE;
150
+
151
+ /**
152
+ * The payload that is submitted along with the operation.
153
+ */
154
+ value: SerializedIntervalDelta;
155
+ };
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { Client, PropertyAction, RedBlackTree } from "@fluidframework/merge-tree/internal";
9
9
 
10
- import { IntervalType, SequenceInterval, createSequenceInterval } from "../intervals/index.js";
10
+ import { SequenceInterval, createTransientInterval } from "../intervals/index.js";
11
11
  import { ISharedString } from "../sharedString.js";
12
12
 
13
13
  import { type SequenceIntervalIndex } from "./intervalIndex.js";
@@ -77,21 +77,9 @@ export class EndpointInRangeIndex implements IEndpointInRangeIndex {
77
77
  return true;
78
78
  };
79
79
 
80
- const transientStartInterval = createSequenceInterval(
81
- "transient",
82
- start,
83
- start,
84
- this.client,
85
- IntervalType.Transient,
86
- );
80
+ const transientStartInterval = createTransientInterval(start, start, this.client);
87
81
 
88
- const transientEndInterval = createSequenceInterval(
89
- "transient",
90
- end,
91
- end,
92
- this.client,
93
- IntervalType.Transient,
94
- );
82
+ const transientEndInterval = createTransientInterval(end, end, this.client);
95
83
 
96
84
  // Add comparison overrides to the transient intervals
97
85
  (transientStartInterval as Partial<HasComparisonOverride>)[forceCompare] = -1;
@@ -3,11 +3,9 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- /* eslint-disable import/no-deprecated */
7
-
8
6
  import { Client, RedBlackTree } from "@fluidframework/merge-tree/internal";
9
7
 
10
- import { createSequenceInterval, IntervalType, SequenceInterval } from "../intervals/index.js";
8
+ import { createTransientInterval, SequenceInterval } from "../intervals/index.js";
11
9
  import { ISharedString } from "../sharedString.js";
12
10
 
13
11
  import { type SequenceIntervalIndex } from "./intervalIndex.js";
@@ -39,13 +37,7 @@ export class EndpointIndex implements IEndpointIndex {
39
37
  }
40
38
 
41
39
  public previousInterval(pos: number): SequenceInterval | undefined {
42
- const transientInterval = createSequenceInterval(
43
- "transient",
44
- pos,
45
- pos,
46
- this.client,
47
- IntervalType.Transient,
48
- );
40
+ const transientInterval = createTransientInterval(pos, pos, this.client);
49
41
  const rbNode = this.endIntervalTree.floor(transientInterval);
50
42
  if (rbNode) {
51
43
  return rbNode.data;
@@ -53,13 +45,7 @@ export class EndpointIndex implements IEndpointIndex {
53
45
  }
54
46
 
55
47
  public nextInterval(pos: number): SequenceInterval | undefined {
56
- const transientInterval = createSequenceInterval(
57
- "transient",
58
- pos,
59
- pos,
60
- this.client,
61
- IntervalType.Transient,
62
- );
48
+ const transientInterval = createTransientInterval(pos, pos, this.client);
63
49
  const rbNode = this.endIntervalTree.ceil(transientInterval);
64
50
  if (rbNode) {
65
51
  return rbNode.data;
@@ -5,7 +5,6 @@
5
5
 
6
6
  import { assert } from "@fluidframework/core-utils/internal";
7
7
 
8
- import { reservedIntervalIdKey } from "../intervalCollection.js";
9
8
  import { type SequenceIntervalClass } from "../intervals/index.js";
10
9
 
11
10
  import { type SequenceIntervalIndex } from "./intervalIndex.js";
@@ -26,12 +25,6 @@ class IdIntervalIndex implements IIdIntervalIndex, Iterable<SequenceIntervalClas
26
25
  id !== undefined,
27
26
  0x2c0 /* "ID must be created before adding interval to collection" */,
28
27
  );
29
- // Make the ID immutable.
30
- Object.defineProperty(interval.properties, reservedIntervalIdKey, {
31
- configurable: false,
32
- enumerable: true,
33
- writable: false,
34
- });
35
28
  this.intervalIdMap.set(id, interval);
36
29
  }
37
30
 
@@ -23,4 +23,3 @@ export {
23
23
  OverlappingIntervalsIndex,
24
24
  ISequenceOverlappingIntervalsIndex,
25
25
  } from "./overlappingIntervalsIndex.js";
26
- export { createOverlappingSequenceIntervalsIndex } from "./overlappingSequenceIntervalsIndex.js";
@@ -14,9 +14,8 @@ import {
14
14
  import { IntervalNode, IntervalTree } from "../intervalTree.js";
15
15
  import {
16
16
  ISerializableInterval,
17
- IntervalType,
18
17
  SequenceInterval,
19
- createSequenceInterval,
18
+ createTransientInterval,
20
19
  } from "../intervals/index.js";
21
20
  import { ISharedString } from "../sharedString.js";
22
21
 
@@ -108,12 +107,10 @@ export class OverlappingIntervalsIndex implements ISequenceOverlappingIntervalsI
108
107
  });
109
108
  }
110
109
  } else {
111
- const transientInterval: SequenceInterval = createSequenceInterval(
112
- "transient",
110
+ const transientInterval: SequenceInterval = createTransientInterval(
113
111
  start ?? "start",
114
112
  end ?? "end",
115
113
  this.client,
116
- IntervalType.Transient,
117
114
  );
118
115
 
119
116
  if (start === undefined) {
@@ -184,13 +181,7 @@ export class OverlappingIntervalsIndex implements ISequenceOverlappingIntervalsI
184
181
  ) {
185
182
  return [];
186
183
  }
187
- const transientInterval = createSequenceInterval(
188
- "transient",
189
- start,
190
- end,
191
- this.client,
192
- IntervalType.Transient,
193
- );
184
+ const transientInterval = createTransientInterval(start, end, this.client);
194
185
 
195
186
  const overlappingIntervalNodes = this.intervalTree.match(transientInterval);
196
187
  return overlappingIntervalNodes.map((node) => node.key);
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { Client, PropertyAction, RedBlackTree } from "@fluidframework/merge-tree/internal";
9
9
 
10
- import { IntervalType, SequenceInterval, createSequenceInterval } from "../intervals/index.js";
10
+ import { SequenceInterval, createTransientInterval } from "../intervals/index.js";
11
11
  import { ISharedString } from "../sharedString.js";
12
12
 
13
13
  import { type SequenceIntervalIndex } from "./intervalIndex.js";
@@ -76,21 +76,9 @@ export class StartpointInRangeIndex implements IStartpointInRangeIndex {
76
76
  return true;
77
77
  };
78
78
 
79
- const transientStartInterval = createSequenceInterval(
80
- "transient",
81
- start,
82
- start,
83
- this.client,
84
- IntervalType.Transient,
85
- );
79
+ const transientStartInterval = createTransientInterval(start, start, this.client);
86
80
 
87
- const transientEndInterval = createSequenceInterval(
88
- "transient",
89
- end,
90
- end,
91
- this.client,
92
- IntervalType.Transient,
93
- );
81
+ const transientEndInterval = createTransientInterval(end, end, this.client);
94
82
 
95
83
  // Add comparison overrides to the transient intervals
96
84
  (transientStartInterval as Partial<HasComparisonOverride>)[forceCompare] = -1;
@@ -11,7 +11,6 @@ export {
11
11
  IntervalType,
12
12
  IntervalDeltaOpType,
13
13
  IntervalStickiness,
14
- ISerializableIntervalPrivate,
15
14
  SerializedIntervalDelta,
16
15
  CompressedSerializedInterval,
17
16
  endReferenceSlidingPreference,
@@ -22,4 +21,6 @@ export {
22
21
  SequenceIntervalClass,
23
22
  createSequenceInterval,
24
23
  createPositionReferenceFromSegoff,
24
+ createTransientInterval,
25
+ getSerializedProperties,
25
26
  } from "./sequenceInterval.js";
@@ -7,15 +7,12 @@
7
7
 
8
8
  import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
9
9
  import {
10
- PropertiesManager,
11
10
  PropertySet,
12
11
  SlidingPreference,
13
12
  SequencePlace,
14
13
  Side,
15
14
  } from "@fluidframework/merge-tree/internal";
16
15
 
17
- import type { SequenceIntervalClass } from "./sequenceInterval.js";
18
-
19
16
  /**
20
17
  * Basic interval abstraction
21
18
  * @legacy
@@ -171,10 +168,6 @@ export interface ISerializableInterval extends IInterval {
171
168
  getIntervalId(): string;
172
169
  }
173
170
 
174
- export type ISerializableIntervalPrivate = SequenceIntervalClass & {
175
- propertyManager?: PropertiesManager;
176
- };
177
-
178
171
  /**
179
172
  * Represents a change that should be applied to an existing interval.
180
173
  * Changes can modify any of start/end/properties, with `undefined` signifying no change should be made.