fluid-framework 2.91.0 → 2.93.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.
@@ -96,16 +96,47 @@ Kind
96
96
  export interface ArrayNodeCustomizableSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaClass<TName, NodeKind.Array, TreeArrayNode<T> & WithType<TName, NodeKind.Array, T>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleArrayNodeSchema<SchemaType.View, TCustomMetadata> {
97
97
  }
98
98
 
99
+ // @alpha @sealed @system
100
+ export interface ArrayNodeCustomizableSchemaAlpha<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaClass<TName, NodeKind.Array, TreeArrayNodeAlpha<T> & WithType<TName, NodeKind.Array, T>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleArrayNodeSchema<SchemaType.View, TCustomMetadata> {
101
+ }
102
+
99
103
  // @alpha @sealed @system
100
104
  export interface ArrayNodeCustomizableSchemaUnsafe<out TName extends string, in out T extends System_Unsafe.ImplicitAllowedTypesUnsafe, out TCustomMetadata> extends TreeNodeSchemaClass<TName, NodeKind.Array, System_Unsafe.TreeArrayNodeUnsafe<T> & WithType<TName, NodeKind.Array, T>, {
101
105
  [Symbol.iterator](): Iterator<System_Unsafe.InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
102
106
  }, false, T, undefined, TCustomMetadata>, SimpleArrayNodeSchema<SchemaType.View, TCustomMetadata> {
103
107
  }
104
108
 
109
+ // @alpha @sealed
110
+ export type ArrayNodeDeltaOp = ArrayNodeRetainOp | ArrayNodeInsertOp | ArrayNodeRemoveOp;
111
+
112
+ // @alpha @sealed
113
+ export interface ArrayNodeInsertOp {
114
+ // (undocumented)
115
+ readonly count: number;
116
+ // (undocumented)
117
+ readonly type: "insert";
118
+ }
119
+
105
120
  // @alpha @sealed @system
106
121
  export interface ArrayNodePojoEmulationSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaNonClass<TName, NodeKind.Array, TreeArrayNode<T> & WithType<TName, NodeKind.Array, T>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleArrayNodeSchema<SchemaType.View, TCustomMetadata> {
107
122
  }
108
123
 
124
+ // @alpha @sealed
125
+ export interface ArrayNodeRemoveOp {
126
+ // (undocumented)
127
+ readonly count: number;
128
+ // (undocumented)
129
+ readonly type: "remove";
130
+ }
131
+
132
+ // @alpha @sealed
133
+ export interface ArrayNodeRetainOp {
134
+ // (undocumented)
135
+ readonly count: number;
136
+ // (undocumented)
137
+ readonly type: "retain";
138
+ }
139
+
109
140
  // @alpha
110
141
  export type ArrayNodeSchema = ArrayNodeCustomizableSchema | ArrayNodePojoEmulationSchema;
111
142
 
@@ -114,6 +145,14 @@ export const ArrayNodeSchema: {
114
145
  readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is ArrayNodeSchema;
115
146
  };
116
147
 
148
+ // @alpha
149
+ export type ArrayNodeTreeChangedDeltaOp = ArrayNodeTreeChangedRetainOp | ArrayNodeInsertOp | ArrayNodeRemoveOp;
150
+
151
+ // @alpha @sealed
152
+ export interface ArrayNodeTreeChangedRetainOp extends ArrayNodeRetainOp {
153
+ readonly subtreeChanged: boolean;
154
+ }
155
+
117
156
  // @alpha @sealed
118
157
  export interface ArrayPlaceAnchor {
119
158
  get index(): number;
@@ -125,6 +164,12 @@ export function asAlpha<TSchema extends ImplicitFieldSchema>(view: TreeView<TSch
125
164
  // @alpha
126
165
  export function asAlpha<TSchema extends ImplicitFieldSchema>(view: TreeViewConfiguration<TSchema>): TreeViewConfigurationAlpha<TSchema>;
127
166
 
167
+ // @alpha
168
+ export function asAlpha<TAllowedTypes extends ImplicitAllowedTypes>(node: TreeArrayNode<TAllowedTypes>): TreeArrayNodeAlpha<TAllowedTypes>;
169
+
170
+ // @alpha
171
+ export function asAlpha<TAllowedTypes extends ImplicitAllowedTypes>(node: TreeMapNode<TAllowedTypes>): TreeMapNodeAlpha<TAllowedTypes>;
172
+
128
173
  // @beta
129
174
  export function asBeta<TSchema extends ImplicitFieldSchema>(view: TreeView<TSchema>): TreeViewBeta<TSchema>;
130
175
 
@@ -138,14 +183,6 @@ export enum AttachState {
138
183
  Detached = "Detached"
139
184
  }
140
185
 
141
- // @alpha @sealed
142
- export interface BranchableTree extends ViewableTree {
143
- branch(): TreeBranchFork;
144
- merge(branch: TreeBranchFork): void;
145
- merge(branch: TreeBranchFork, disposeMerged: boolean): void;
146
- rebase(branch: TreeBranchFork): void;
147
- }
148
-
149
186
  // @alpha @sealed
150
187
  export type ChangeMetadata = LocalChangeMetadata | RemoteChangeMetadata;
151
188
 
@@ -240,7 +277,7 @@ export const contentSchemaSymbol: unique symbol;
240
277
  // @alpha
241
278
  export function createArrayInsertionAnchor(node: TreeArrayNode, currentIndex: number): ArrayPlaceAnchor;
242
279
 
243
- // @alpha
280
+ // @beta
244
281
  export function createIdentifierIndex<TSchema extends ImplicitFieldSchema>(view: TreeView<TSchema>): IdentifierIndex;
245
282
 
246
283
  // @alpha
@@ -257,16 +294,16 @@ export type CreateIndependentTreeAlphaOptions = ForestOptions & ((IndependentVie
257
294
  // @beta
258
295
  export function createIndependentTreeBeta<const TSchema extends ImplicitFieldSchema>(options?: ForestOptions): ViewableTree;
259
296
 
260
- // @alpha
297
+ // @beta
261
298
  export function createTreeIndex<TFieldSchema extends ImplicitFieldSchema, TKey extends TreeIndexKey, TValue>(view: TreeView<TFieldSchema>, indexer: (schema: TreeNodeSchema) => string | undefined, getValue: (nodes: TreeIndexNodes<TreeNode>) => TValue, isKeyValid: (key: TreeIndexKey) => key is TKey): TreeIndex<TKey, TValue>;
262
299
 
263
- // @alpha
300
+ // @beta
264
301
  export function createTreeIndex<TFieldSchema extends ImplicitFieldSchema, TKey extends TreeIndexKey, TValue, TSchema extends TreeNodeSchema>(view: TreeView<TFieldSchema>, indexer: (schema: TSchema) => string | undefined, getValue: (nodes: TreeIndexNodes<NodeFromSchema<TSchema>>) => TValue, isKeyValid: (key: TreeIndexKey) => key is TKey, indexableSchema: readonly TSchema[]): TreeIndex<TKey, TValue>;
265
302
 
266
- // @alpha
303
+ // @beta
267
304
  export function createTreeIndex<TFieldSchema extends ImplicitFieldSchema, TKey extends TreeIndexKey, TValue>(view: TreeView<TFieldSchema>, indexer: Map<TreeNodeSchema, string>, getValue: (nodes: TreeIndexNodes<TreeNode>) => TValue, isKeyValid: (key: TreeIndexKey) => key is TKey): TreeIndex<TKey, TValue>;
268
305
 
269
- // @alpha
306
+ // @beta
270
307
  export function createTreeIndex<TFieldSchema extends ImplicitFieldSchema, TKey extends TreeIndexKey, TValue, TSchema extends TreeNodeSchema>(view: TreeView<TFieldSchema>, indexer: Map<TreeNodeSchema, string>, getValue: (nodes: TreeIndexNodes<NodeFromSchema<TSchema>>) => TValue, isKeyValid: (key: TreeIndexKey) => key is TKey, indexableSchema: readonly TSchema[]): TreeIndex<TKey, TValue>;
271
308
 
272
309
  // @alpha
@@ -336,7 +373,7 @@ export function exportCompatibilitySchemaSnapshot(config: Pick<TreeViewConfigura
336
373
 
337
374
  // @beta
338
375
  export namespace ExtensibleUnionNode {
339
- export function createSchema<const T extends readonly TreeNodeSchema[], const TScope extends string, const TName extends string>(types: T, inputSchemaFactory: SchemaFactoryBeta<TScope>, name: TName): Statics<T> & TreeNodeSchemaCore_2<ScopedSchemaName_2<`com.fluidframework.extensibleUnionNode<${TScope}>`, TName>, NodeKind_2, false, unknown, never, unknown> & (new (data: InternalTreeNode_2) => Members<TreeNodeFromImplicitAllowedTypes<T>> & TreeNode_2 & WithType_2<ScopedSchemaName_2<`com.fluidframework.extensibleUnionNode<${TScope}>`, TName>, NodeKind_2, unknown>);
376
+ export function createSchema<const T extends readonly TreeNodeSchema[], const TScope extends string, const TName extends string>(types: T, inputSchemaFactory: SchemaFactoryBeta<TScope>, name: TName): Statics<T> & TreeNodeSchemaCore<ScopedSchemaName<`com.fluidframework.extensibleUnionNode<${TScope}>`, TName>, NodeKind, false, unknown, never, unknown> & (new (data: InternalTreeNode) => Members<TreeNodeFromImplicitAllowedTypes<T>> & TreeNode & WithType<ScopedSchemaName<`com.fluidframework.extensibleUnionNode<${TScope}>`, TName>, NodeKind, unknown>);
340
377
  export interface Members<T> {
341
378
  isValid(): boolean;
342
379
  readonly union: T | undefined;
@@ -394,6 +431,7 @@ export interface FieldProps<TCustomMetadata = unknown> {
394
431
  // @alpha @input
395
432
  export interface FieldPropsAlpha<TCustomMetadata = unknown> extends FieldProps<TCustomMetadata> {
396
433
  readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
434
+ readonly stagedOptionalUpgrade?: SchemaUpgrade;
397
435
  }
398
436
 
399
437
  // @public @sealed
@@ -418,6 +456,8 @@ export class FieldSchemaAlpha<Kind extends FieldKind = FieldKind, Types extends
418
456
  // (undocumented)
419
457
  get allowedTypesIdentifiers(): ReadonlySet<string>;
420
458
  // (undocumented)
459
+ get isStagedOptional(): false | SchemaUpgrade;
460
+ // (undocumented)
421
461
  get persistedMetadata(): JsonCompatibleReadOnlyObject | undefined;
422
462
  // (undocumented)
423
463
  get simpleAllowedTypes(): ReadonlyMap<string, SimpleAllowedTypeAttributes<SchemaType.View>>;
@@ -458,6 +498,29 @@ export const FluidClientVersion: {
458
498
  readonly v2_80: "2.80.0";
459
499
  };
460
500
 
501
+ // @beta @sealed
502
+ export interface FluidIterable<T> {
503
+ [Symbol.iterator](): FluidIterableIterator<T>;
504
+ }
505
+
506
+ // @beta @sealed
507
+ export interface FluidIterableIterator<T> extends FluidIterable<T> {
508
+ next(): {
509
+ value: T;
510
+ done?: false;
511
+ } | {
512
+ value: any;
513
+ done: true;
514
+ };
515
+ }
516
+
517
+ // @beta @sealed
518
+ export interface FluidMap<K, V> extends FluidReadonlyMap<K, V> {
519
+ delete(key: K): void;
520
+ forEach(callbackfn: (value: V, key: K, map: FluidMap<K, V>) => void, thisArg?: any): void;
521
+ set(key: K, value: V): void;
522
+ }
523
+
461
524
  // @public
462
525
  export type FluidObject<T = unknown> = {
463
526
  [P in FluidObjectProviderKeys<T>]?: T[P];
@@ -466,26 +529,39 @@ export type FluidObject<T = unknown> = {
466
529
  // @public
467
530
  export type FluidObjectProviderKeys<T, TProp extends keyof T = keyof T> = string extends TProp ? never : number extends TProp ? never : TProp extends keyof Required<T>[TProp] ? Required<T>[TProp] extends Required<Required<T>[TProp]>[TProp] ? TProp : never : never;
468
531
 
532
+ // @beta @sealed
533
+ export interface FluidReadonlyMap<K, V> {
534
+ [Symbol.iterator](): FluidIterableIterator<[K, V]>;
535
+ readonly [Symbol.toStringTag]: string;
536
+ entries(): FluidIterableIterator<[K, V]>;
537
+ forEach(callbackfn: (value: V, key: K, map: FluidReadonlyMap<K, V>) => void, thisArg?: any): void;
538
+ get(key: K): V | undefined;
539
+ has(key: K): boolean;
540
+ keys(): FluidIterableIterator<K>;
541
+ readonly size: number;
542
+ values(): FluidIterableIterator<V>;
543
+ }
544
+
469
545
  // @beta
470
546
  export namespace FluidSerializableAsTree {
471
547
  // @sealed
472
548
  export class Array extends _APIExtractorWorkaroundArrayBase {
473
549
  }
474
- const Tree: readonly [() => typeof FluidSerializableObject, () => typeof Array, LeafSchema_2<"string", string>, LeafSchema_2<"number", number>, LeafSchema_2<"boolean", boolean>, LeafSchema_2<"null", null>, LeafSchema_2<"handle", IFluidHandle<unknown>>];
550
+ const Tree: readonly [() => typeof FluidSerializableObject, () => typeof Array, LeafSchema<"string", string>, LeafSchema<"number", number>, LeafSchema<"boolean", boolean>, LeafSchema<"null", null>, LeafSchema<"handle", IFluidHandle<unknown>>];
475
551
  export type Data = JsonCompatible<IFluidHandle>;
476
552
  const // @system
477
- _APIExtractorWorkaroundObjectBase: TreeNodeSchemaClass_2<"com.fluidframework.serializable.object", NodeKind_2.Record, TreeRecordNodeUnsafe_2<readonly [() => typeof FluidSerializableObject, () => typeof Array, LeafSchema_2<"string", string>, LeafSchema_2<"number", number>, LeafSchema_2<"boolean", boolean>, LeafSchema_2<"null", null>, LeafSchema_2<"handle", IFluidHandle<unknown>>]> & WithType_2<"com.fluidframework.serializable.object", NodeKind_2.Record, unknown>, {
478
- readonly [x: string]: string | number | IFluidHandle<unknown> | System_Unsafe_2.InsertableTypedNodeUnsafe<LeafSchema_2<"boolean", boolean>, LeafSchema_2<"boolean", boolean>> | FluidSerializableObject | Array | null;
479
- }, false, readonly [() => typeof FluidSerializableObject, () => typeof Array, LeafSchema_2<"string", string>, LeafSchema_2<"number", number>, LeafSchema_2<"boolean", boolean>, LeafSchema_2<"null", null>, LeafSchema_2<"handle", IFluidHandle<unknown>>], undefined, unknown>;
553
+ _APIExtractorWorkaroundObjectBase: TreeNodeSchemaClass<"com.fluidframework.serializable.object", NodeKind.Record, TreeRecordNodeUnsafe<readonly [() => typeof FluidSerializableObject, () => typeof Array, LeafSchema<"string", string>, LeafSchema<"number", number>, LeafSchema<"boolean", boolean>, LeafSchema<"null", null>, LeafSchema<"handle", IFluidHandle<unknown>>]> & WithType<"com.fluidframework.serializable.object", NodeKind.Record, unknown>, {
554
+ readonly [x: string]: string | number | IFluidHandle<unknown> | System_Unsafe.InsertableTypedNodeUnsafe<LeafSchema<"boolean", boolean>, LeafSchema<"boolean", boolean>> | FluidSerializableObject | Array | null;
555
+ }, false, readonly [() => typeof FluidSerializableObject, () => typeof Array, LeafSchema<"string", string>, LeafSchema<"number", number>, LeafSchema<"boolean", boolean>, LeafSchema<"null", null>, LeafSchema<"handle", IFluidHandle<unknown>>], undefined, unknown>;
480
556
  // @sealed
481
557
  export class FluidSerializableObject extends _APIExtractorWorkaroundObjectBase {
482
558
  }
483
559
  // @system
484
560
  export type _RecursiveArrayWorkaroundJsonArray = FixRecursiveArraySchema<typeof Array>;
485
561
  const // @system
486
- _APIExtractorWorkaroundArrayBase: TreeNodeSchemaClass_2<"com.fluidframework.serializable.array", NodeKind_2.Array, System_Unsafe_2.TreeArrayNodeUnsafe<readonly [() => typeof FluidSerializableObject, () => typeof Array, LeafSchema_2<"string", string>, LeafSchema_2<"number", number>, LeafSchema_2<"boolean", boolean>, LeafSchema_2<"null", null>, LeafSchema_2<"handle", IFluidHandle<unknown>>]> & WithType_2<"com.fluidframework.serializable.array", NodeKind_2.Array, unknown>, {
487
- [Symbol.iterator](): Iterator<string | number | IFluidHandle<unknown> | System_Unsafe_2.InsertableTypedNodeUnsafe<LeafSchema_2<"boolean", boolean>, LeafSchema_2<"boolean", boolean>> | FluidSerializableObject | Array | null, any, undefined>;
488
- }, false, readonly [() => typeof FluidSerializableObject, () => typeof Array, LeafSchema_2<"string", string>, LeafSchema_2<"number", number>, LeafSchema_2<"boolean", boolean>, LeafSchema_2<"null", null>, LeafSchema_2<"handle", IFluidHandle<unknown>>], undefined>;
562
+ _APIExtractorWorkaroundArrayBase: TreeNodeSchemaClass<"com.fluidframework.serializable.array", NodeKind.Array, System_Unsafe.TreeArrayNodeUnsafe<readonly [() => typeof FluidSerializableObject, () => typeof Array, LeafSchema<"string", string>, LeafSchema<"number", number>, LeafSchema<"boolean", boolean>, LeafSchema<"null", null>, LeafSchema<"handle", IFluidHandle<unknown>>]> & WithType<"com.fluidframework.serializable.array", NodeKind.Array, unknown>, {
563
+ [Symbol.iterator](): Iterator<string | number | IFluidHandle<unknown> | System_Unsafe.InsertableTypedNodeUnsafe<LeafSchema<"boolean", boolean>, LeafSchema<"boolean", boolean>> | FluidSerializableObject | Array | null, any, undefined>;
564
+ }, false, readonly [() => typeof FluidSerializableObject, () => typeof Array, LeafSchema<"string", string>, LeafSchema<"number", number>, LeafSchema<"boolean", boolean>, LeafSchema<"null", null>, LeafSchema<"handle", IFluidHandle<unknown>>], undefined>;
489
565
  // (undocumented)
490
566
  export type Tree = TreeNodeFromImplicitAllowedTypes<typeof Tree>;
491
567
  }
@@ -513,7 +589,7 @@ export interface FormatValidator extends ErasedType<"FormatValidator"> {
513
589
  }
514
590
 
515
591
  // @alpha
516
- export const FormatValidatorBasic: FormatValidator_2;
592
+ export const FormatValidatorBasic: FormatValidator;
517
593
 
518
594
  // @alpha
519
595
  export const FormatValidatorNoOp: FormatValidator;
@@ -524,14 +600,14 @@ export type FormatVersion = number | string | undefined;
524
600
  // @alpha
525
601
  export function generateSchemaFromSimpleSchema(simple: SimpleTreeSchema): TreeSchema;
526
602
 
527
- // @alpha @deprecated
528
- export function getBranch(tree: ITree): BranchableTree;
603
+ // @alpha
604
+ export function getJsonSchema(schema: ImplicitAllowedTypes, options: Required<TreeSchemaEncodingOptions>): JsonTreeSchema;
529
605
 
530
- // @alpha @deprecated
531
- export function getBranch<T extends ImplicitFieldSchema | UnsafeUnknownSchema>(view: TreeViewAlpha<T>): BranchableTree;
606
+ // @public
607
+ export const getPresence: (fluidContainer: IFluidContainer) => Presence;
532
608
 
533
609
  // @alpha
534
- export function getJsonSchema(schema: ImplicitAllowedTypes, options: Required<TreeSchemaEncodingOptions>): JsonTreeSchema;
610
+ export function getPresenceAlpha(fluidContainer: IFluidContainer): PresenceWithNotifications;
535
611
 
536
612
  // @alpha
537
613
  export function getSimpleSchema(schema: ImplicitFieldSchema): SimpleTreeSchema<SchemaType.View>;
@@ -553,7 +629,7 @@ export interface IConnection {
553
629
  // @public
554
630
  export type ICriticalContainerError = IErrorBase;
555
631
 
556
- // @alpha
632
+ // @beta
557
633
  export type IdentifierIndex = TreeIndex<string, TreeNode>;
558
634
 
559
635
  // @public @sealed
@@ -1135,7 +1211,7 @@ export interface MakeNominal {
1135
1211
  }
1136
1212
 
1137
1213
  // @alpha @sealed @system
1138
- export interface MapNodeCustomizableSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaClass<TName, NodeKind.Map, TreeMapNode<T> & WithType<TName, NodeKind.Map, T>, MapNodeInsertableData<T>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleMapNodeSchema<SchemaType.View, TCustomMetadata> {
1214
+ export interface MapNodeCustomizableSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaClass<TName, NodeKind.Map, TreeMapNodeAlpha<T> & WithType<TName, NodeKind.Map, T>, MapNodeInsertableData<T>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleMapNodeSchema<SchemaType.View, TCustomMetadata> {
1139
1215
  }
1140
1216
 
1141
1217
  // @alpha @sealed @system
@@ -1153,7 +1229,7 @@ export interface MapNodeCustomizableSchemaUnsafe<out TName extends string, in ou
1153
1229
  export type MapNodeInsertableData<T extends ImplicitAllowedTypes> = Iterable<readonly [string, InsertableTreeNodeFromImplicitAllowedTypes<T>]> | RestrictiveStringRecord<InsertableTreeNodeFromImplicitAllowedTypes<T>>;
1154
1230
 
1155
1231
  // @alpha @sealed @system
1156
- export interface MapNodePojoEmulationSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaNonClass<TName, NodeKind.Map, TreeMapNode<T> & WithType<TName, NodeKind.Map, T>, MapNodeInsertableData<T>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleMapNodeSchema<SchemaType.View, TCustomMetadata> {
1232
+ export interface MapNodePojoEmulationSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaNonClass<TName, NodeKind.Map, TreeMapNodeAlpha<T> & WithType<TName, NodeKind.Map, T>, MapNodeInsertableData<T>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleMapNodeSchema<SchemaType.View, TCustomMetadata> {
1157
1233
  }
1158
1234
 
1159
1235
  // @alpha
@@ -1186,6 +1262,24 @@ export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
1186
1262
  readonly changedProperties?: ReadonlySet<TNode extends WithType<string, NodeKind.Object, infer TInfo> ? string & keyof TInfo : string>;
1187
1263
  }
1188
1264
 
1265
+ // @alpha
1266
+ export type NodeChangedDataAlpha<TNode extends TreeNode = TreeNode> = TNode extends WithType<string, NodeKind.Array> ? NodeChangedDataDelta : TNode extends WithType<string, NodeKind.Map | NodeKind.Object | NodeKind.Record> ? NodeChangedDataProperties<TNode> : NodeChangedDataProperties<TNode> | NodeChangedDataDelta;
1267
+
1268
+ // @alpha @sealed
1269
+ export interface NodeChangedDataDelta {
1270
+ readonly delta: readonly ArrayNodeDeltaOp[] | undefined;
1271
+ }
1272
+
1273
+ // @alpha @sealed
1274
+ export interface NodeChangedDataProperties<TNode extends TreeNode = TreeNode> {
1275
+ readonly changedProperties: ReadonlySet<TNode extends WithType<string, NodeKind.Object, infer TInfo> ? string & keyof TInfo : string>;
1276
+ }
1277
+
1278
+ // @alpha @sealed
1279
+ export interface NodeChangedDataTreeDelta {
1280
+ readonly delta: readonly ArrayNodeTreeChangedDeltaOp[] | undefined;
1281
+ }
1282
+
1189
1283
  // @public
1190
1284
  export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchemaClass<string, NodeKind, infer TNode> ? TNode : T extends TreeNodeSchemaNonClass<string, NodeKind, infer TNode> ? TNode : never;
1191
1285
 
@@ -1436,11 +1530,11 @@ export const SchemaFactory_base: SchemaStatics & (new () => SchemaStatics);
1436
1530
 
1437
1531
  // @alpha
1438
1532
  export class SchemaFactoryAlpha<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactoryBeta<TScope, TName> {
1439
- arrayAlpha<const Name extends TName, const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): ArrayNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
1533
+ arrayAlpha<const Name extends TName, const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): ArrayNodeCustomizableSchemaAlpha<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
1440
1534
  arrayRecursive<const Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): ArrayNodeCustomizableSchemaUnsafe<ScopedSchemaName<TScope, Name>, T, TCustomMetadata>;
1441
1535
  static readonly identifier: <const TCustomMetadata = unknown>(props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Identifier, LeafSchema<"string", string> & SimpleLeafNodeSchema<SchemaType>, TCustomMetadata, FieldPropsAlpha<TCustomMetadata>>;
1442
- static readonly leaves: readonly [LeafSchema<"string", string> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"number", number> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"boolean", boolean> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"null", null> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"handle", IFluidHandle_2<unknown>> & SimpleLeafNodeSchema<SchemaType>];
1443
- readonly leaves: readonly [LeafSchema<"string", string> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"number", number> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"boolean", boolean> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"null", null> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"handle", IFluidHandle_2<unknown>> & SimpleLeafNodeSchema<SchemaType>];
1536
+ static readonly leaves: readonly [LeafSchema<"string", string> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"number", number> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"boolean", boolean> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"null", null> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"handle", IFluidHandle<unknown>> & SimpleLeafNodeSchema<SchemaType>];
1537
+ readonly leaves: readonly [LeafSchema<"string", string> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"number", number> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"boolean", boolean> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"null", null> & SimpleLeafNodeSchema<SchemaType>, LeafSchema<"handle", IFluidHandle<unknown>> & SimpleLeafNodeSchema<SchemaType>];
1444
1538
  mapAlpha<Name extends TName, const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): MapNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
1445
1539
  mapRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): MapNodeCustomizableSchemaUnsafe<ScopedSchemaName<TScope, Name>, T, TCustomMetadata>;
1446
1540
  objectAlpha<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchema>, const TCustomMetadata = unknown>(name: Name, fields: T, options?: ObjectSchemaOptionsAlpha<TCustomMetadata>): ObjectNodeSchemaWorkaround<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
@@ -1459,10 +1553,12 @@ export class SchemaFactoryAlpha<out TScope extends string | undefined = string |
1459
1553
  static readonly requiredRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe<FieldKind.Required, T, TCustomMetadata, FieldPropsAlpha<TCustomMetadata>>;
1460
1554
  readonly requiredRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe<FieldKind.Required, T, TCustomMetadata, FieldPropsAlpha<TCustomMetadata>>;
1461
1555
  scopedFactoryAlpha<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryAlpha<ScopedSchemaName<TScope, T>, TNameInner>;
1462
- readonly withDefault: <Kind extends FieldKind, Types extends ImplicitAllowedTypes, TCustomMetadata = unknown>(fieldSchema: FieldSchema<Kind, Types, TCustomMetadata>, defaultValue: NodeProvider<ApplyKindInput_2<InsertableTreeNodeFromImplicitAllowedTypes_2<Types>, Kind, true>>) => FieldSchemaAlpha<Kind, Types, TCustomMetadata, FieldPropsAlpha<TCustomMetadata> & {
1556
+ readonly stagedOptional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "stagedOptionalUpgrade" | "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Optional, T, TCustomMetadata, FieldPropsAlpha<TCustomMetadata>>;
1557
+ static readonly stagedOptional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "stagedOptionalUpgrade" | "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Optional, T, TCustomMetadata, FieldPropsAlpha<TCustomMetadata>>;
1558
+ readonly withDefault: <Kind extends FieldKind, Types extends ImplicitAllowedTypes, TCustomMetadata = unknown>(fieldSchema: FieldSchema<Kind, Types, TCustomMetadata>, defaultValue: NodeProvider<ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true>>) => FieldSchemaAlpha<Kind, Types, TCustomMetadata, FieldPropsAlpha<TCustomMetadata> & {
1463
1559
  defaultProvider: DefaultProvider;
1464
1560
  }>;
1465
- static readonly withDefault: <Kind extends FieldKind, Types extends ImplicitAllowedTypes, TCustomMetadata = unknown>(fieldSchema: FieldSchema<Kind, Types, TCustomMetadata>, defaultValue: NodeProvider<ApplyKindInput_2<InsertableTreeNodeFromImplicitAllowedTypes_2<Types>, Kind, true>>) => FieldSchemaAlpha<Kind, Types, TCustomMetadata, FieldPropsAlpha<TCustomMetadata> & {
1561
+ static readonly withDefault: <Kind extends FieldKind, Types extends ImplicitAllowedTypes, TCustomMetadata = unknown>(fieldSchema: FieldSchema<Kind, Types, TCustomMetadata>, defaultValue: NodeProvider<ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true>>) => FieldSchemaAlpha<Kind, Types, TCustomMetadata, FieldPropsAlpha<TCustomMetadata> & {
1466
1562
  defaultProvider: DefaultProvider;
1467
1563
  }>;
1468
1564
  readonly withDefaultRecursive: <Kind extends FieldKind, Types extends System_Unsafe.ImplicitAllowedTypesUnsafe, TCustomMetadata = unknown>(fieldSchema: System_Unsafe.FieldSchemaUnsafe<Kind, Types, TCustomMetadata>, defaultValue: unknown) => FieldSchemaAlphaUnsafe<Kind, Types, TCustomMetadata, FieldPropsAlpha<TCustomMetadata> & {
@@ -1516,6 +1612,7 @@ export interface SchemaStatics {
1516
1612
 
1517
1613
  // @alpha @sealed @system
1518
1614
  export interface SchemaStaticsAlpha {
1615
+ readonly stagedOptional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider" | "stagedOptionalUpgrade">) => FieldSchemaAlpha<FieldKind.Optional, T, TCustomMetadata, FieldPropsAlpha<TCustomMetadata>>;
1519
1616
  readonly withDefault: <Kind extends FieldKind, Types extends ImplicitAllowedTypes, TCustomMetadata = unknown>(fieldSchema: FieldSchema<Kind, Types, TCustomMetadata>, defaultValue: NodeProvider<InsertableTreeFieldFromImplicitField<FieldSchema<Kind, Types>>>) => FieldSchemaAlpha<Kind, Types, TCustomMetadata, FieldPropsAlpha<TCustomMetadata> & {
1520
1617
  defaultProvider: DefaultProvider;
1521
1618
  }>;
@@ -1581,6 +1678,7 @@ export interface SimpleArrayNodeSchema<Type extends SchemaType = SchemaType, out
1581
1678
 
1582
1679
  // @alpha @sealed
1583
1680
  export interface SimpleFieldSchema<Type extends SchemaType = SchemaType> {
1681
+ readonly isStagedOptional?: Type extends SchemaType.Stored ? undefined : false | SchemaUpgrade;
1584
1682
  readonly kind: FieldKind;
1585
1683
  readonly metadata: FieldSchemaMetadata & (Type extends SchemaType.View ? unknown : {
1586
1684
  readonly custom?: undefined;
@@ -1691,22 +1789,22 @@ export namespace System_TableSchema {
1691
1789
  props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
1692
1790
  }), true, {
1693
1791
  readonly props: TPropsSchema;
1694
- readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
1792
+ readonly id: FieldSchema<FieldKind.Identifier, LeafSchema<"string", string>, unknown>;
1695
1793
  }>;
1696
1794
  // @system
1697
1795
  export type CreateRowOptionsBase<TUserScope extends string = string, TSchemaFactory extends SchemaFactoryBeta<TUserScope> = SchemaFactoryBeta<TUserScope>, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCellSchema>;
1698
1796
  // @system
1699
1797
  export function createRowSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row">, NodeKind.Object, TreeNode & TableSchema.Row<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row">, NodeKind, unknown>, object & {
1700
1798
  readonly id?: string | undefined;
1701
- readonly cells: (InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>> | undefined) & InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>>;
1799
+ readonly cells: (InsertableTypedNode<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData<TCellSchema>, true, TCellSchema, undefined, unknown>> | undefined) & InsertableTypedNode<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData<TCellSchema>, true, TCellSchema, undefined, unknown>>;
1702
1800
  } & (FieldHasDefault<TPropsSchema> extends true ? {
1703
1801
  props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
1704
1802
  } : {
1705
1803
  props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
1706
1804
  }), true, {
1707
1805
  readonly props: TPropsSchema;
1708
- readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
1709
- readonly cells: FieldSchema_2<FieldKind_2.Required, TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>, unknown>;
1806
+ readonly id: FieldSchema<FieldKind.Identifier, LeafSchema<"string", string>, unknown>;
1807
+ readonly cells: FieldSchema<FieldKind.Required, TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData<TCellSchema>, true, TCellSchema, undefined, unknown>, unknown>;
1710
1808
  }>;
1711
1809
  // @system
1712
1810
  export function createTableSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TColumnSchema extends ColumnSchemaBase<TUserScope, TCellSchema>, const TRowSchema extends RowSchemaBase<TUserScope, TCellSchema>>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema): {
@@ -2002,6 +2100,7 @@ export interface TreeAlpha {
2002
2100
  importConcise<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(schema: UnsafeUnknownSchema extends TSchema ? ImplicitFieldSchema : TSchema & ImplicitFieldSchema, data: ConciseTree | undefined): Unhydrated<TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeNode | TreeLeafValue | undefined>;
2003
2101
  importVerbose<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: VerboseTree | undefined, options?: TreeParsingOptions): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
2004
2102
  key2(node: TreeNode): string | number | undefined;
2103
+ on<K extends keyof TreeChangeEventsAlpha<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsAlpha<TNode>[K]>): () => void;
2005
2104
  tagContentSchema<TSchema extends TreeNodeSchema, TContent extends InsertableField<TSchema>>(schema: TSchema, content: TContent): TContent;
2006
2105
  trackObservations<TResult>(onInvalidation: () => void, trackDuring: () => TResult): ObservationResults<TResult>;
2007
2106
  trackObservationsOnce<TResult>(onInvalidation: () => void, trackDuring: () => TResult): ObservationResults<TResult>;
@@ -2038,6 +2137,11 @@ export const TreeArrayNode: {
2038
2137
  readonly spread: <T>(content: Iterable<T>) => IterableTreeArrayContent<T>;
2039
2138
  };
2040
2139
 
2140
+ // @alpha @sealed
2141
+ export interface TreeArrayNodeAlpha<TAllowedTypes extends System_Unsafe.ImplicitAllowedTypesUnsafe = ImplicitAllowedTypes, out T = [TAllowedTypes] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TAllowedTypes> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, in TNew = [TAllowedTypes] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes> : InsertableTreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>> extends TreeArrayNode<TAllowedTypes, T, TNew> {
2142
+ splice(start: number, deleteCount?: number, ...items: readonly (TNew | IterableTreeArrayContent<TNew>)[]): T[];
2143
+ }
2144
+
2041
2145
  // @beta @sealed
2042
2146
  export interface TreeBeta {
2043
2147
  clone<const TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
@@ -2073,14 +2177,8 @@ export interface TreeBranchAlpha extends TreeBranch, TreeContextAlpha {
2073
2177
  }
2074
2178
 
2075
2179
  // @alpha @sealed
2076
- export interface TreeBranchEvents extends Omit<TreeViewEvents, "commitApplied"> {
2180
+ export interface TreeBranchEvents {
2077
2181
  changed(data: ChangeMetadata, getRevertible?: RevertibleAlphaFactory): void;
2078
- commitApplied(data: ChangeMetadata, getRevertible?: RevertibleAlphaFactory): void;
2079
- }
2080
-
2081
- // @alpha @sealed
2082
- export interface TreeBranchFork extends BranchableTree, IDisposable {
2083
- rebaseOnto(branch: BranchableTree): void;
2084
2182
  }
2085
2183
 
2086
2184
  // @public @sealed
@@ -2089,6 +2187,12 @@ export interface TreeChangeEvents {
2089
2187
  treeChanged(): void;
2090
2188
  }
2091
2189
 
2190
+ // @alpha @sealed
2191
+ export interface TreeChangeEventsAlpha<TNode extends TreeNode = TreeNode> extends TreeChangeEvents {
2192
+ nodeChanged: (data: NodeChangedDataAlpha<TNode>) => void;
2193
+ treeChanged: TNode extends WithType<string, NodeKind.Array> ? (data: NodeChangedDataTreeDelta) => void : TreeChangeEventsBeta<TNode>["treeChanged"];
2194
+ }
2195
+
2092
2196
  // @beta @sealed
2093
2197
  export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends TreeChangeEvents {
2094
2198
  nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object | NodeKind.Record> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
@@ -2127,15 +2231,15 @@ export interface TreeIdentifierUtils {
2127
2231
  shorten(branch: TreeBranch, nodeIdentifier: string): number | undefined;
2128
2232
  }
2129
2233
 
2130
- // @alpha @sealed
2131
- export interface TreeIndex<TKey, TValue> extends ReadonlyMap<TKey, TValue> {
2234
+ // @beta @sealed
2235
+ export interface TreeIndex<TKey, TValue> extends FluidReadonlyMap<TKey, TValue> {
2132
2236
  dispose(): void;
2133
2237
  }
2134
2238
 
2135
- // @alpha
2239
+ // @beta
2136
2240
  export type TreeIndexKey = TreeLeafValue;
2137
2241
 
2138
- // @alpha
2242
+ // @beta
2139
2243
  export type TreeIndexNodes<TNode> = readonly [first: TNode, ...rest: TNode[]];
2140
2244
 
2141
2245
  // @public
@@ -2151,6 +2255,10 @@ export interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTyp
2151
2255
  values(): IterableIterator<TreeNodeFromImplicitAllowedTypes<T>>;
2152
2256
  }
2153
2257
 
2258
+ // @alpha @sealed
2259
+ export interface TreeMapNodeAlpha<T extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends FluidReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>, TreeNode, Pick<TreeMapNode<T>, "set" | "delete"> {
2260
+ }
2261
+
2154
2262
  // @public @sealed
2155
2263
  export abstract class TreeNode implements WithType {
2156
2264
  static [Symbol.hasInstance](value: unknown): value is TreeNode;