fluid-framework 2.0.0-dev-rc.5.0.0.268409 → 2.0.0-dev-rc.5.0.0.270987

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.
@@ -5,16 +5,7 @@
5
5
  ```ts
6
6
 
7
7
  import { Client } from '@fluidframework/merge-tree/internal';
8
- import { ErasedType } from '@fluidframework/core-interfaces';
9
8
  import { IChannel } from '@fluidframework/datastore-definitions/internal';
10
- import { IDisposable } from '@fluidframework/core-interfaces';
11
- import type { IErrorBase } from '@fluidframework/core-interfaces';
12
- import { IErrorEvent } from '@fluidframework/core-interfaces';
13
- import { IEvent } from '@fluidframework/core-interfaces';
14
- import { IEventProvider } from '@fluidframework/core-interfaces';
15
- import { IEventThisPlaceHolder } from '@fluidframework/core-interfaces';
16
- import { IFluidHandle } from '@fluidframework/core-interfaces';
17
- import { IFluidLoadable } from '@fluidframework/core-interfaces';
18
9
  import { IGarbageCollectionData } from '@fluidframework/runtime-definitions/internal';
19
10
  import { IJSONSegment } from '@fluidframework/merge-tree/internal';
20
11
  import { IMergeTreeDeltaCallbackArgs } from '@fluidframework/merge-tree/internal';
@@ -44,7 +35,7 @@ import { TypedEventEmitter } from '@fluid-internal/client-utils';
44
35
  export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
45
36
 
46
37
  // @public
47
- export type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
38
+ type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
48
39
  [FieldKind.Required]: T;
49
40
  [FieldKind.Optional]: T | undefined;
50
41
  [FieldKind.Identifier]: DefaultsAreOptional extends true ? T | undefined : T;
@@ -105,8 +96,14 @@ export interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldP
105
96
  // @alpha (undocumented)
106
97
  export type DeserializeCallback = (properties: PropertySet) => void;
107
98
 
99
+ // @public @sealed
100
+ export abstract class ErasedType<out Name = unknown> {
101
+ static [Symbol.hasInstance](value: never): value is never;
102
+ protected abstract brand(dummy: never): Name;
103
+ }
104
+
108
105
  // @public
109
- export type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
106
+ type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
110
107
 
111
108
  // @public
112
109
  export enum FieldKind {
@@ -141,9 +138,17 @@ export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends
141
138
  export type FlexList<Item = unknown> = readonly LazyItem<Item>[];
142
139
 
143
140
  // @public
144
- export type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
141
+ type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
145
142
 
146
143
  // @public
144
+ export type FluidObject<T = unknown> = {
145
+ [P in FluidObjectProviderKeys<T>]?: T[P];
146
+ };
147
+
148
+ // @public
149
+ 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;
150
+
151
+ // @alpha
147
152
  export interface IBranchOrigin {
148
153
  id: string;
149
154
  minimumSequenceNumber: number;
@@ -187,6 +192,198 @@ export interface IDirectoryValueChanged extends IValueChanged {
187
192
  path: string;
188
193
  }
189
194
 
195
+ // @public @sealed
196
+ export interface IDisposable {
197
+ dispose(error?: Error): void;
198
+ readonly disposed: boolean;
199
+ }
200
+
201
+ // @public
202
+ export interface IErrorBase extends Partial<Error> {
203
+ readonly errorType: string;
204
+ getTelemetryProperties?(): ITelemetryBaseProperties;
205
+ readonly message: string;
206
+ readonly name?: string;
207
+ readonly stack?: string;
208
+ }
209
+
210
+ // @public
211
+ export interface IErrorEvent extends IEvent {
212
+ // @eventProperty
213
+ (event: "error", listener: (message: any) => void): any;
214
+ }
215
+
216
+ // @public
217
+ export interface IEvent {
218
+ // @eventProperty
219
+ (event: string, listener: (...args: any[]) => void): any;
220
+ }
221
+
222
+ // @public
223
+ export interface IEventProvider<TEvent extends IEvent> {
224
+ readonly off: IEventTransformer<this, TEvent>;
225
+ readonly on: IEventTransformer<this, TEvent>;
226
+ readonly once: IEventTransformer<this, TEvent>;
227
+ }
228
+
229
+ // @public
230
+ export type IEventThisPlaceHolder = {
231
+ thisPlaceHolder: "thisPlaceHolder";
232
+ };
233
+
234
+ // @public
235
+ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
236
+ (event: infer E0, listener: (...args: infer A0) => void): any;
237
+ (event: infer E1, listener: (...args: infer A1) => void): any;
238
+ (event: infer E2, listener: (...args: infer A2) => void): any;
239
+ (event: infer E3, listener: (...args: infer A3) => void): any;
240
+ (event: infer E4, listener: (...args: infer A4) => void): any;
241
+ (event: infer E5, listener: (...args: infer A5) => void): any;
242
+ (event: infer E6, listener: (...args: infer A6) => void): any;
243
+ (event: infer E7, listener: (...args: infer A7) => void): any;
244
+ (event: infer E8, listener: (...args: infer A8) => void): any;
245
+ (event: infer E9, listener: (...args: infer A9) => void): any;
246
+ (event: infer E10, listener: (...args: infer A10) => void): any;
247
+ (event: infer E11, listener: (...args: infer A11) => void): any;
248
+ (event: infer E12, listener: (...args: infer A12) => void): any;
249
+ (event: infer E13, listener: (...args: infer A13) => void): any;
250
+ (event: infer E14, listener: (...args: infer A14) => void): any;
251
+ (event: string, listener: (...args: any[]) => void): any;
252
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> & TransformedEvent<TThis, E12, A12> & TransformedEvent<TThis, E13, A13> & TransformedEvent<TThis, E14, A14> : TEvent extends {
253
+ (event: infer E0, listener: (...args: infer A0) => void): any;
254
+ (event: infer E1, listener: (...args: infer A1) => void): any;
255
+ (event: infer E2, listener: (...args: infer A2) => void): any;
256
+ (event: infer E3, listener: (...args: infer A3) => void): any;
257
+ (event: infer E4, listener: (...args: infer A4) => void): any;
258
+ (event: infer E5, listener: (...args: infer A5) => void): any;
259
+ (event: infer E6, listener: (...args: infer A6) => void): any;
260
+ (event: infer E7, listener: (...args: infer A7) => void): any;
261
+ (event: infer E8, listener: (...args: infer A8) => void): any;
262
+ (event: infer E9, listener: (...args: infer A9) => void): any;
263
+ (event: infer E10, listener: (...args: infer A10) => void): any;
264
+ (event: infer E11, listener: (...args: infer A11) => void): any;
265
+ (event: infer E12, listener: (...args: infer A12) => void): any;
266
+ (event: infer E13, listener: (...args: infer A13) => void): any;
267
+ (event: string, listener: (...args: any[]) => void): any;
268
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> & TransformedEvent<TThis, E12, A12> & TransformedEvent<TThis, E13, A13> : TEvent extends {
269
+ (event: infer E0, listener: (...args: infer A0) => void): any;
270
+ (event: infer E1, listener: (...args: infer A1) => void): any;
271
+ (event: infer E2, listener: (...args: infer A2) => void): any;
272
+ (event: infer E3, listener: (...args: infer A3) => void): any;
273
+ (event: infer E4, listener: (...args: infer A4) => void): any;
274
+ (event: infer E5, listener: (...args: infer A5) => void): any;
275
+ (event: infer E6, listener: (...args: infer A6) => void): any;
276
+ (event: infer E7, listener: (...args: infer A7) => void): any;
277
+ (event: infer E8, listener: (...args: infer A8) => void): any;
278
+ (event: infer E9, listener: (...args: infer A9) => void): any;
279
+ (event: infer E10, listener: (...args: infer A10) => void): any;
280
+ (event: infer E11, listener: (...args: infer A11) => void): any;
281
+ (event: infer E12, listener: (...args: infer A12) => void): any;
282
+ (event: string, listener: (...args: any[]) => void): any;
283
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> & TransformedEvent<TThis, E12, A12> : TEvent extends {
284
+ (event: infer E0, listener: (...args: infer A0) => void): any;
285
+ (event: infer E1, listener: (...args: infer A1) => void): any;
286
+ (event: infer E2, listener: (...args: infer A2) => void): any;
287
+ (event: infer E3, listener: (...args: infer A3) => void): any;
288
+ (event: infer E4, listener: (...args: infer A4) => void): any;
289
+ (event: infer E5, listener: (...args: infer A5) => void): any;
290
+ (event: infer E6, listener: (...args: infer A6) => void): any;
291
+ (event: infer E7, listener: (...args: infer A7) => void): any;
292
+ (event: infer E8, listener: (...args: infer A8) => void): any;
293
+ (event: infer E9, listener: (...args: infer A9) => void): any;
294
+ (event: infer E10, listener: (...args: infer A10) => void): any;
295
+ (event: infer E11, listener: (...args: infer A11) => void): any;
296
+ (event: string, listener: (...args: any[]) => void): any;
297
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> : TEvent extends {
298
+ (event: infer E0, listener: (...args: infer A0) => void): any;
299
+ (event: infer E1, listener: (...args: infer A1) => void): any;
300
+ (event: infer E2, listener: (...args: infer A2) => void): any;
301
+ (event: infer E3, listener: (...args: infer A3) => void): any;
302
+ (event: infer E4, listener: (...args: infer A4) => void): any;
303
+ (event: infer E5, listener: (...args: infer A5) => void): any;
304
+ (event: infer E6, listener: (...args: infer A6) => void): any;
305
+ (event: infer E7, listener: (...args: infer A7) => void): any;
306
+ (event: infer E8, listener: (...args: infer A8) => void): any;
307
+ (event: infer E9, listener: (...args: infer A9) => void): any;
308
+ (event: infer E10, listener: (...args: infer A10) => void): any;
309
+ (event: string, listener: (...args: any[]) => void): any;
310
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> : TEvent extends {
311
+ (event: infer E0, listener: (...args: infer A0) => void): any;
312
+ (event: infer E1, listener: (...args: infer A1) => void): any;
313
+ (event: infer E2, listener: (...args: infer A2) => void): any;
314
+ (event: infer E3, listener: (...args: infer A3) => void): any;
315
+ (event: infer E4, listener: (...args: infer A4) => void): any;
316
+ (event: infer E5, listener: (...args: infer A5) => void): any;
317
+ (event: infer E6, listener: (...args: infer A6) => void): any;
318
+ (event: infer E7, listener: (...args: infer A7) => void): any;
319
+ (event: infer E8, listener: (...args: infer A8) => void): any;
320
+ (event: infer E9, listener: (...args: infer A9) => void): any;
321
+ (event: string, listener: (...args: any[]) => void): any;
322
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> : TEvent extends {
323
+ (event: infer E0, listener: (...args: infer A0) => void): any;
324
+ (event: infer E1, listener: (...args: infer A1) => void): any;
325
+ (event: infer E2, listener: (...args: infer A2) => void): any;
326
+ (event: infer E3, listener: (...args: infer A3) => void): any;
327
+ (event: infer E4, listener: (...args: infer A4) => void): any;
328
+ (event: infer E5, listener: (...args: infer A5) => void): any;
329
+ (event: infer E6, listener: (...args: infer A6) => void): any;
330
+ (event: infer E7, listener: (...args: infer A7) => void): any;
331
+ (event: infer E8, listener: (...args: infer A8) => void): any;
332
+ (event: string, listener: (...args: any[]) => void): any;
333
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> : TEvent extends {
334
+ (event: infer E0, listener: (...args: infer A0) => void): any;
335
+ (event: infer E1, listener: (...args: infer A1) => void): any;
336
+ (event: infer E2, listener: (...args: infer A2) => void): any;
337
+ (event: infer E3, listener: (...args: infer A3) => void): any;
338
+ (event: infer E4, listener: (...args: infer A4) => void): any;
339
+ (event: infer E5, listener: (...args: infer A5) => void): any;
340
+ (event: infer E6, listener: (...args: infer A6) => void): any;
341
+ (event: infer E7, listener: (...args: infer A7) => void): any;
342
+ (event: string, listener: (...args: any[]) => void): any;
343
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> : TEvent extends {
344
+ (event: infer E0, listener: (...args: infer A0) => void): any;
345
+ (event: infer E1, listener: (...args: infer A1) => void): any;
346
+ (event: infer E2, listener: (...args: infer A2) => void): any;
347
+ (event: infer E3, listener: (...args: infer A3) => void): any;
348
+ (event: infer E4, listener: (...args: infer A4) => void): any;
349
+ (event: infer E5, listener: (...args: infer A5) => void): any;
350
+ (event: infer E6, listener: (...args: infer A6) => void): any;
351
+ (event: string, listener: (...args: any[]) => void): any;
352
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> : TEvent extends {
353
+ (event: infer E0, listener: (...args: infer A0) => void): any;
354
+ (event: infer E1, listener: (...args: infer A1) => void): any;
355
+ (event: infer E2, listener: (...args: infer A2) => void): any;
356
+ (event: infer E3, listener: (...args: infer A3) => void): any;
357
+ (event: infer E4, listener: (...args: infer A4) => void): any;
358
+ (event: infer E5, listener: (...args: infer A5) => void): any;
359
+ (event: string, listener: (...args: any[]) => void): any;
360
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> : TEvent extends {
361
+ (event: infer E0, listener: (...args: infer A0) => void): any;
362
+ (event: infer E1, listener: (...args: infer A1) => void): any;
363
+ (event: infer E2, listener: (...args: infer A2) => void): any;
364
+ (event: infer E3, listener: (...args: infer A3) => void): any;
365
+ (event: infer E4, listener: (...args: infer A4) => void): any;
366
+ (event: string, listener: (...args: any[]) => void): any;
367
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> : TEvent extends {
368
+ (event: infer E0, listener: (...args: infer A0) => void): any;
369
+ (event: infer E1, listener: (...args: infer A1) => void): any;
370
+ (event: infer E2, listener: (...args: infer A2) => void): any;
371
+ (event: infer E3, listener: (...args: infer A3) => void): any;
372
+ (event: string, listener: (...args: any[]) => void): any;
373
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> : TEvent extends {
374
+ (event: infer E0, listener: (...args: infer A0) => void): any;
375
+ (event: infer E1, listener: (...args: infer A1) => void): any;
376
+ (event: infer E2, listener: (...args: infer A2) => void): any;
377
+ (event: string, listener: (...args: any[]) => void): any;
378
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> : TEvent extends {
379
+ (event: infer E0, listener: (...args: infer A0) => void): any;
380
+ (event: infer E1, listener: (...args: infer A1) => void): any;
381
+ (event: string, listener: (...args: any[]) => void): any;
382
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> : TEvent extends {
383
+ (event: infer E0, listener: (...args: infer A0) => void): any;
384
+ (event: string, listener: (...args: any[]) => void): any;
385
+ } ? TransformedEvent<TThis, E0, A0> : TransformedEvent<TThis, string, any[]>;
386
+
190
387
  // @public @sealed
191
388
  export interface IFluidContainer<TContainerSchema extends ContainerSchema = ContainerSchema> extends IEventProvider<IFluidContainerEvents> {
192
389
  attach(props?: ContainerAttachProps): Promise<string>;
@@ -210,6 +407,29 @@ export interface IFluidContainerEvents extends IEvent {
210
407
  (event: "disposed", listener: (error?: ICriticalContainerError) => void): any;
211
408
  }
212
409
 
410
+ // @public (undocumented)
411
+ export const IFluidHandle = "IFluidHandle";
412
+
413
+ // @public
414
+ export interface IFluidHandle<out T = unknown> {
415
+ readonly [fluidHandleSymbol]: IFluidHandleErased<T>;
416
+ get(): Promise<T>;
417
+ readonly isAttached: boolean;
418
+ }
419
+
420
+ // @public
421
+ export interface IFluidHandleErased<T> extends ErasedType<readonly ["IFluidHandle", T]> {
422
+ }
423
+
424
+ // @public (undocumented)
425
+ export const IFluidLoadable: keyof IProvideFluidLoadable;
426
+
427
+ // @public
428
+ export interface IFluidLoadable extends IProvideFluidLoadable {
429
+ // (undocumented)
430
+ readonly handle: IFluidHandle;
431
+ }
432
+
213
433
  // @alpha
214
434
  export interface IInterval {
215
435
  // (undocumented)
@@ -306,10 +526,10 @@ export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSc
306
526
  export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
307
527
 
308
528
  // @public
309
- export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
529
+ export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<InternalFlexListTypes.FlexListToUnion<TSchema>> : never;
310
530
 
311
531
  // @public
312
- export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypes ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
532
+ export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypes ? InsertableTypedNodeUnsafe<InternalFlexListTypes.FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
313
533
 
314
534
  // @public
315
535
  export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
@@ -329,6 +549,21 @@ export interface InteriorSequencePlace {
329
549
  side: Side;
330
550
  }
331
551
 
552
+ declare namespace InternalFlexListTypes {
553
+ export {
554
+ FlexListToUnion,
555
+ ExtractItemType
556
+ }
557
+ }
558
+ export { InternalFlexListTypes }
559
+
560
+ declare namespace InternalSimpleTreeTypes {
561
+ export {
562
+ ApplyKind
563
+ }
564
+ }
565
+ export { InternalSimpleTreeTypes }
566
+
332
567
  // @public
333
568
  export interface InternalTreeNode extends ErasedType<"@fluidframework/tree.InternalTreeNode"> {
334
569
  }
@@ -357,7 +592,13 @@ export enum IntervalType {
357
592
  SlideOnRemove = 2,// SlideOnRemove is default behavior - all intervals are SlideOnRemove
358
593
  }
359
594
 
360
- // @public
595
+ // @public (undocumented)
596
+ export interface IProvideFluidLoadable {
597
+ // (undocumented)
598
+ readonly IFluidLoadable: IFluidLoadable;
599
+ }
600
+
601
+ // @alpha
361
602
  export interface ISequencedDocumentMessage {
362
603
  clientId: string | null;
363
604
  clientSequenceNumber: number;
@@ -543,12 +784,17 @@ export interface ISharedString extends ISharedSegmentSequence<SharedStringSegmen
543
784
  // @public
544
785
  export type IsListener<TListener> = TListener extends (...args: any[]) => void ? true : false;
545
786
 
787
+ // @public
788
+ export interface ITelemetryBaseProperties {
789
+ [index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
790
+ }
791
+
546
792
  // @public
547
793
  export class IterableTreeArrayContent<T> implements Iterable<T> {
548
794
  [Symbol.iterator](): Iterator<T>;
549
795
  }
550
796
 
551
- // @public
797
+ // @alpha
552
798
  export interface ITrace {
553
799
  action: string;
554
800
  service: string;
@@ -637,6 +883,11 @@ export type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveReadonl
637
883
  // @public
638
884
  export type Off = () => void;
639
885
 
886
+ // @public
887
+ export type ReplaceIEventThisPlaceHolder<L extends any[], TThis> = L extends any[] ? {
888
+ [K in keyof L]: L[K] extends IEventThisPlaceHolder ? TThis : L[K];
889
+ } : L;
890
+
640
891
  // @public
641
892
  export type RestrictiveReadonlyRecord<K extends symbol | string, T> = {
642
893
  readonly [P in symbol | string]: P extends K ? T : never;
@@ -824,9 +1075,23 @@ export enum Side {
824
1075
  Before = 0
825
1076
  }
826
1077
 
1078
+ // @public
1079
+ export interface Tagged<V, T extends string = string> {
1080
+ // (undocumented)
1081
+ tag: T;
1082
+ // (undocumented)
1083
+ value: V;
1084
+ }
1085
+
1086
+ // @public
1087
+ export type TelemetryBaseEventPropertyType = string | number | boolean | undefined;
1088
+
827
1089
  // @public
828
1090
  export type TransactionConstraint = NodeInDocumentConstraint;
829
1091
 
1092
+ // @public
1093
+ export type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
1094
+
830
1095
  // @public
831
1096
  export const Tree: TreeApi;
832
1097
 
@@ -929,10 +1194,10 @@ export interface TreeNodeApi {
929
1194
  }
930
1195
 
931
1196
  // @public
932
- export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
1197
+ export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<InternalFlexListTypes.FlexListToUnion<TSchema>> : unknown;
933
1198
 
934
1199
  // @public
935
- export type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
1200
+ export type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<InternalFlexListTypes.FlexListToUnion<TSchema>> : unknown;
936
1201
 
937
1202
  // @public
938
1203
  export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode = unknown, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;