fluid-framework 2.1.0-276985 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,930 @@
1
+ ## Public API Report File for "fluid-framework"
2
+
3
+ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
+
5
+ ```ts
6
+
7
+ // @public
8
+ export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
9
+
10
+ // @public
11
+ type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
12
+ [FieldKind.Required]: T;
13
+ [FieldKind.Optional]: T | undefined;
14
+ [FieldKind.Identifier]: DefaultsAreOptional extends true ? T | undefined : T;
15
+ }[Kind];
16
+
17
+ // @public
18
+ export enum AttachState {
19
+ Attached = "Attached",
20
+ Attaching = "Attaching",
21
+ Detached = "Detached"
22
+ }
23
+
24
+ // @public
25
+ export enum CommitKind {
26
+ Default = 0,
27
+ Redo = 2,
28
+ Undo = 1
29
+ }
30
+
31
+ // @public @sealed
32
+ export interface CommitMetadata {
33
+ readonly isLocal: boolean;
34
+ readonly kind: CommitKind;
35
+ }
36
+
37
+ // @public
38
+ export enum ConnectionState {
39
+ CatchingUp = 1,
40
+ Connected = 2,
41
+ Disconnected = 0,
42
+ EstablishingConnection = 3
43
+ }
44
+
45
+ // @public
46
+ export namespace ConnectionStateType {
47
+ export type CatchingUp = 1;
48
+ export type Connected = 2;
49
+ export type Disconnected = 0;
50
+ export type EstablishingConnection = 3;
51
+ }
52
+
53
+ // @public
54
+ export type ConnectionStateType = ConnectionStateType.Disconnected | ConnectionStateType.EstablishingConnection | ConnectionStateType.CatchingUp | ConnectionStateType.Connected;
55
+
56
+ // @public
57
+ export type ContainerAttachProps<T = unknown> = T;
58
+
59
+ // @public
60
+ export interface ContainerSchema {
61
+ readonly dynamicObjectTypes?: readonly SharedObjectKind[];
62
+ readonly initialObjects: Record<string, SharedObjectKind>;
63
+ }
64
+
65
+ // @public @sealed
66
+ interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
67
+ }
68
+
69
+ // @public @sealed
70
+ export abstract class ErasedType<out Name = unknown> {
71
+ static [Symbol.hasInstance](value: never): value is never;
72
+ protected abstract brand(dummy: never): Name;
73
+ }
74
+
75
+ // @public
76
+ type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
77
+
78
+ // @public
79
+ type FieldHasDefault<T extends ImplicitFieldSchema> = T extends FieldSchema<FieldKind.Optional | FieldKind.Identifier> ? true : false;
80
+
81
+ // @public @sealed
82
+ type FieldHasDefaultUnsafe<T extends Unenforced<ImplicitFieldSchema>> = T extends FieldSchemaUnsafe<FieldKind.Optional | FieldKind.Identifier, Unenforced<ImplicitAllowedTypes>> ? true : false;
83
+
84
+ // @public
85
+ export enum FieldKind {
86
+ Identifier = 2,
87
+ Optional = 0,
88
+ Required = 1
89
+ }
90
+
91
+ // @public
92
+ export interface FieldProps {
93
+ readonly defaultProvider?: DefaultProvider;
94
+ readonly key?: string;
95
+ }
96
+
97
+ // @public @sealed
98
+ export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes> {
99
+ readonly allowedTypes: Types;
100
+ get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;
101
+ readonly kind: Kind;
102
+ readonly props?: FieldProps | undefined;
103
+ protected _typeCheck?: MakeNominal;
104
+ }
105
+
106
+ // @public
107
+ export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends Unenforced<ImplicitAllowedTypes>> extends FieldSchema<Kind, any> {
108
+ readonly allowedTypes: Types;
109
+ readonly allowedTypeSet: ReadonlySet<TreeNodeSchema>;
110
+ readonly kind: Kind;
111
+ }
112
+
113
+ // @public
114
+ type FlattenKeys<T> = [{
115
+ [Property in keyof T]: T[Property];
116
+ }][_InlineTrick];
117
+
118
+ // @public
119
+ type FlexList<Item = unknown> = readonly LazyItem<Item>[];
120
+
121
+ // @public
122
+ type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
123
+
124
+ // @public
125
+ export type FluidObject<T = unknown> = {
126
+ [P in FluidObjectProviderKeys<T>]?: T[P];
127
+ };
128
+
129
+ // @public
130
+ 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;
131
+
132
+ // @public
133
+ export interface IConnection {
134
+ readonly id: string;
135
+ readonly mode: "write" | "read";
136
+ }
137
+
138
+ // @public
139
+ export type ICriticalContainerError = IErrorBase;
140
+
141
+ // @public @sealed
142
+ export interface IDirectory extends Map<string, any>, IEventProvider<IDirectoryEvents>, Partial<IDisposable> {
143
+ readonly absolutePath: string;
144
+ countSubDirectory?(): number;
145
+ createSubDirectory(subdirName: string): IDirectory;
146
+ deleteSubDirectory(subdirName: string): boolean;
147
+ get<T = any>(key: string): T | undefined;
148
+ getSubDirectory(subdirName: string): IDirectory | undefined;
149
+ getWorkingDirectory(relativePath: string): IDirectory | undefined;
150
+ hasSubDirectory(subdirName: string): boolean;
151
+ set<T = unknown>(key: string, value: T): this;
152
+ subdirectories(): IterableIterator<[string, IDirectory]>;
153
+ }
154
+
155
+ // @public @sealed
156
+ export interface IDirectoryEvents extends IEvent {
157
+ (event: "containedValueChanged", listener: (changed: IValueChanged, local: boolean, target: IEventThisPlaceHolder) => void): any;
158
+ (event: "subDirectoryCreated", listener: (path: string, local: boolean, target: IEventThisPlaceHolder) => void): any;
159
+ (event: "subDirectoryDeleted", listener: (path: string, local: boolean, target: IEventThisPlaceHolder) => void): any;
160
+ (event: "disposed", listener: (target: IEventThisPlaceHolder) => void): any;
161
+ (event: "undisposed", listener: (target: IEventThisPlaceHolder) => void): any;
162
+ }
163
+
164
+ // @public @sealed
165
+ export interface IDirectoryValueChanged extends IValueChanged {
166
+ path: string;
167
+ }
168
+
169
+ // @public @sealed
170
+ export interface IDisposable {
171
+ dispose(error?: Error): void;
172
+ readonly disposed: boolean;
173
+ }
174
+
175
+ // @public
176
+ export interface IErrorBase extends Partial<Error> {
177
+ readonly errorType: string;
178
+ getTelemetryProperties?(): ITelemetryBaseProperties;
179
+ readonly message: string;
180
+ readonly name?: string;
181
+ readonly stack?: string;
182
+ }
183
+
184
+ // @public
185
+ export interface IErrorEvent extends IEvent {
186
+ // @eventProperty
187
+ (event: "error", listener: (message: any) => void): any;
188
+ }
189
+
190
+ // @public
191
+ export interface IEvent {
192
+ // @eventProperty
193
+ (event: string, listener: (...args: any[]) => void): any;
194
+ }
195
+
196
+ // @public @sealed
197
+ export interface IEventProvider<TEvent extends IEvent> {
198
+ readonly off: IEventTransformer<this, TEvent>;
199
+ readonly on: IEventTransformer<this, TEvent>;
200
+ readonly once: IEventTransformer<this, TEvent>;
201
+ }
202
+
203
+ // @public
204
+ export type IEventThisPlaceHolder = {
205
+ thisPlaceHolder: "thisPlaceHolder";
206
+ };
207
+
208
+ // @public
209
+ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
210
+ (event: infer E0, listener: (...args: infer A0) => void): any;
211
+ (event: infer E1, listener: (...args: infer A1) => void): any;
212
+ (event: infer E2, listener: (...args: infer A2) => void): any;
213
+ (event: infer E3, listener: (...args: infer A3) => void): any;
214
+ (event: infer E4, listener: (...args: infer A4) => void): any;
215
+ (event: infer E5, listener: (...args: infer A5) => void): any;
216
+ (event: infer E6, listener: (...args: infer A6) => void): any;
217
+ (event: infer E7, listener: (...args: infer A7) => void): any;
218
+ (event: infer E8, listener: (...args: infer A8) => void): any;
219
+ (event: infer E9, listener: (...args: infer A9) => void): any;
220
+ (event: infer E10, listener: (...args: infer A10) => void): any;
221
+ (event: infer E11, listener: (...args: infer A11) => void): any;
222
+ (event: infer E12, listener: (...args: infer A12) => void): any;
223
+ (event: infer E13, listener: (...args: infer A13) => void): any;
224
+ (event: infer E14, listener: (...args: infer A14) => void): any;
225
+ (event: string, listener: (...args: any[]) => void): any;
226
+ } ? 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 {
227
+ (event: infer E0, listener: (...args: infer A0) => void): any;
228
+ (event: infer E1, listener: (...args: infer A1) => void): any;
229
+ (event: infer E2, listener: (...args: infer A2) => void): any;
230
+ (event: infer E3, listener: (...args: infer A3) => void): any;
231
+ (event: infer E4, listener: (...args: infer A4) => void): any;
232
+ (event: infer E5, listener: (...args: infer A5) => void): any;
233
+ (event: infer E6, listener: (...args: infer A6) => void): any;
234
+ (event: infer E7, listener: (...args: infer A7) => void): any;
235
+ (event: infer E8, listener: (...args: infer A8) => void): any;
236
+ (event: infer E9, listener: (...args: infer A9) => void): any;
237
+ (event: infer E10, listener: (...args: infer A10) => void): any;
238
+ (event: infer E11, listener: (...args: infer A11) => void): any;
239
+ (event: infer E12, listener: (...args: infer A12) => void): any;
240
+ (event: infer E13, listener: (...args: infer A13) => void): any;
241
+ (event: string, listener: (...args: any[]) => void): any;
242
+ } ? 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 {
243
+ (event: infer E0, listener: (...args: infer A0) => void): any;
244
+ (event: infer E1, listener: (...args: infer A1) => void): any;
245
+ (event: infer E2, listener: (...args: infer A2) => void): any;
246
+ (event: infer E3, listener: (...args: infer A3) => void): any;
247
+ (event: infer E4, listener: (...args: infer A4) => void): any;
248
+ (event: infer E5, listener: (...args: infer A5) => void): any;
249
+ (event: infer E6, listener: (...args: infer A6) => void): any;
250
+ (event: infer E7, listener: (...args: infer A7) => void): any;
251
+ (event: infer E8, listener: (...args: infer A8) => void): any;
252
+ (event: infer E9, listener: (...args: infer A9) => void): any;
253
+ (event: infer E10, listener: (...args: infer A10) => void): any;
254
+ (event: infer E11, listener: (...args: infer A11) => void): any;
255
+ (event: infer E12, listener: (...args: infer A12) => void): any;
256
+ (event: string, listener: (...args: any[]) => void): any;
257
+ } ? 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 {
258
+ (event: infer E0, listener: (...args: infer A0) => void): any;
259
+ (event: infer E1, listener: (...args: infer A1) => void): any;
260
+ (event: infer E2, listener: (...args: infer A2) => void): any;
261
+ (event: infer E3, listener: (...args: infer A3) => void): any;
262
+ (event: infer E4, listener: (...args: infer A4) => void): any;
263
+ (event: infer E5, listener: (...args: infer A5) => void): any;
264
+ (event: infer E6, listener: (...args: infer A6) => void): any;
265
+ (event: infer E7, listener: (...args: infer A7) => void): any;
266
+ (event: infer E8, listener: (...args: infer A8) => void): any;
267
+ (event: infer E9, listener: (...args: infer A9) => void): any;
268
+ (event: infer E10, listener: (...args: infer A10) => void): any;
269
+ (event: infer E11, listener: (...args: infer A11) => void): any;
270
+ (event: string, listener: (...args: any[]) => void): any;
271
+ } ? 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 {
272
+ (event: infer E0, listener: (...args: infer A0) => void): any;
273
+ (event: infer E1, listener: (...args: infer A1) => void): any;
274
+ (event: infer E2, listener: (...args: infer A2) => void): any;
275
+ (event: infer E3, listener: (...args: infer A3) => void): any;
276
+ (event: infer E4, listener: (...args: infer A4) => void): any;
277
+ (event: infer E5, listener: (...args: infer A5) => void): any;
278
+ (event: infer E6, listener: (...args: infer A6) => void): any;
279
+ (event: infer E7, listener: (...args: infer A7) => void): any;
280
+ (event: infer E8, listener: (...args: infer A8) => void): any;
281
+ (event: infer E9, listener: (...args: infer A9) => void): any;
282
+ (event: infer E10, listener: (...args: infer A10) => void): any;
283
+ (event: string, listener: (...args: any[]) => void): any;
284
+ } ? 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 {
285
+ (event: infer E0, listener: (...args: infer A0) => void): any;
286
+ (event: infer E1, listener: (...args: infer A1) => void): any;
287
+ (event: infer E2, listener: (...args: infer A2) => void): any;
288
+ (event: infer E3, listener: (...args: infer A3) => void): any;
289
+ (event: infer E4, listener: (...args: infer A4) => void): any;
290
+ (event: infer E5, listener: (...args: infer A5) => void): any;
291
+ (event: infer E6, listener: (...args: infer A6) => void): any;
292
+ (event: infer E7, listener: (...args: infer A7) => void): any;
293
+ (event: infer E8, listener: (...args: infer A8) => void): any;
294
+ (event: infer E9, listener: (...args: infer A9) => void): any;
295
+ (event: string, listener: (...args: any[]) => void): any;
296
+ } ? 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 {
297
+ (event: infer E0, listener: (...args: infer A0) => void): any;
298
+ (event: infer E1, listener: (...args: infer A1) => void): any;
299
+ (event: infer E2, listener: (...args: infer A2) => void): any;
300
+ (event: infer E3, listener: (...args: infer A3) => void): any;
301
+ (event: infer E4, listener: (...args: infer A4) => void): any;
302
+ (event: infer E5, listener: (...args: infer A5) => void): any;
303
+ (event: infer E6, listener: (...args: infer A6) => void): any;
304
+ (event: infer E7, listener: (...args: infer A7) => void): any;
305
+ (event: infer E8, listener: (...args: infer A8) => void): any;
306
+ (event: string, listener: (...args: any[]) => void): any;
307
+ } ? 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 {
308
+ (event: infer E0, listener: (...args: infer A0) => void): any;
309
+ (event: infer E1, listener: (...args: infer A1) => void): any;
310
+ (event: infer E2, listener: (...args: infer A2) => void): any;
311
+ (event: infer E3, listener: (...args: infer A3) => void): any;
312
+ (event: infer E4, listener: (...args: infer A4) => void): any;
313
+ (event: infer E5, listener: (...args: infer A5) => void): any;
314
+ (event: infer E6, listener: (...args: infer A6) => void): any;
315
+ (event: infer E7, listener: (...args: infer A7) => void): any;
316
+ (event: string, listener: (...args: any[]) => void): any;
317
+ } ? 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 {
318
+ (event: infer E0, listener: (...args: infer A0) => void): any;
319
+ (event: infer E1, listener: (...args: infer A1) => void): any;
320
+ (event: infer E2, listener: (...args: infer A2) => void): any;
321
+ (event: infer E3, listener: (...args: infer A3) => void): any;
322
+ (event: infer E4, listener: (...args: infer A4) => void): any;
323
+ (event: infer E5, listener: (...args: infer A5) => void): any;
324
+ (event: infer E6, listener: (...args: infer A6) => void): any;
325
+ (event: string, listener: (...args: any[]) => void): any;
326
+ } ? 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 {
327
+ (event: infer E0, listener: (...args: infer A0) => void): any;
328
+ (event: infer E1, listener: (...args: infer A1) => void): any;
329
+ (event: infer E2, listener: (...args: infer A2) => void): any;
330
+ (event: infer E3, listener: (...args: infer A3) => void): any;
331
+ (event: infer E4, listener: (...args: infer A4) => void): any;
332
+ (event: infer E5, listener: (...args: infer A5) => void): any;
333
+ (event: string, listener: (...args: any[]) => void): any;
334
+ } ? 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 {
335
+ (event: infer E0, listener: (...args: infer A0) => void): any;
336
+ (event: infer E1, listener: (...args: infer A1) => void): any;
337
+ (event: infer E2, listener: (...args: infer A2) => void): any;
338
+ (event: infer E3, listener: (...args: infer A3) => void): any;
339
+ (event: infer E4, listener: (...args: infer A4) => void): any;
340
+ (event: string, listener: (...args: any[]) => void): any;
341
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> : TEvent extends {
342
+ (event: infer E0, listener: (...args: infer A0) => void): any;
343
+ (event: infer E1, listener: (...args: infer A1) => void): any;
344
+ (event: infer E2, listener: (...args: infer A2) => void): any;
345
+ (event: infer E3, listener: (...args: infer A3) => void): any;
346
+ (event: string, listener: (...args: any[]) => void): any;
347
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> : TEvent extends {
348
+ (event: infer E0, listener: (...args: infer A0) => void): any;
349
+ (event: infer E1, listener: (...args: infer A1) => void): any;
350
+ (event: infer E2, listener: (...args: infer A2) => void): any;
351
+ (event: string, listener: (...args: any[]) => void): any;
352
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> : TEvent extends {
353
+ (event: infer E0, listener: (...args: infer A0) => void): any;
354
+ (event: infer E1, listener: (...args: infer A1) => void): any;
355
+ (event: string, listener: (...args: any[]) => void): any;
356
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> : TEvent extends {
357
+ (event: infer E0, listener: (...args: infer A0) => void): any;
358
+ (event: string, listener: (...args: any[]) => void): any;
359
+ } ? TransformedEvent<TThis, E0, A0> : TransformedEvent<TThis, string, any[]>;
360
+
361
+ // @public @sealed
362
+ export interface IFluidContainer<TContainerSchema extends ContainerSchema = ContainerSchema> extends IEventProvider<IFluidContainerEvents> {
363
+ attach(props?: ContainerAttachProps): Promise<string>;
364
+ readonly attachState: AttachState;
365
+ connect(): void;
366
+ readonly connectionState: ConnectionStateType;
367
+ create<T extends IFluidLoadable>(objectClass: SharedObjectKind<T>): Promise<T>;
368
+ disconnect(): void;
369
+ dispose(): void;
370
+ readonly disposed: boolean;
371
+ readonly initialObjects: InitialObjects<TContainerSchema>;
372
+ readonly isDirty: boolean;
373
+ }
374
+
375
+ // @public @sealed
376
+ export interface IFluidContainerEvents extends IEvent {
377
+ (event: "connected", listener: () => void): void;
378
+ (event: "disconnected", listener: () => void): void;
379
+ (event: "saved", listener: () => void): void;
380
+ (event: "dirty", listener: () => void): void;
381
+ (event: "disposed", listener: (error?: ICriticalContainerError) => void): any;
382
+ }
383
+
384
+ // @public (undocumented)
385
+ export const IFluidHandle = "IFluidHandle";
386
+
387
+ // @public @sealed
388
+ export interface IFluidHandle<out T = unknown> {
389
+ readonly [fluidHandleSymbol]: IFluidHandleErased<T>;
390
+ get(): Promise<T>;
391
+ readonly isAttached: boolean;
392
+ }
393
+
394
+ // @public @sealed
395
+ export interface IFluidHandleErased<T> extends ErasedType<readonly ["IFluidHandle", T]> {
396
+ }
397
+
398
+ // @public (undocumented)
399
+ export const IFluidLoadable: keyof IProvideFluidLoadable;
400
+
401
+ // @public @sealed
402
+ export interface IFluidLoadable extends IProvideFluidLoadable {
403
+ // (undocumented)
404
+ readonly handle: IFluidHandle;
405
+ }
406
+
407
+ // @public
408
+ export interface IMember {
409
+ readonly connections: IConnection[];
410
+ readonly id: string;
411
+ }
412
+
413
+ // @public
414
+ export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
415
+
416
+ // @public
417
+ export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
418
+
419
+ // @public
420
+ export type InitialObjects<T extends ContainerSchema> = {
421
+ [K in keyof T["initialObjects"]]: T["initialObjects"][K] extends SharedObjectKind<infer TChannel> ? TChannel : never;
422
+ };
423
+
424
+ // @public
425
+ type _InlineTrick = 0;
426
+
427
+ // @public
428
+ type InsertableObjectFromSchemaRecord<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>> = FlattenKeys<{
429
+ readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property]>;
430
+ } & {
431
+ readonly [Property in keyof T as FieldHasDefault<T[Property]> extends false ? Property : never]: InsertableTreeFieldFromImplicitField<T[Property]>;
432
+ }>;
433
+
434
+ // @public
435
+ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>> = {
436
+ readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends false ? Property : never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
437
+ } & {
438
+ readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends true ? Property : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
439
+ };
440
+
441
+ // @public
442
+ export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
443
+
444
+ // @public
445
+ export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
446
+
447
+ // @public
448
+ export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
449
+
450
+ // @public
451
+ export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypes ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
452
+
453
+ // @public
454
+ export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
455
+ implicitlyConstructable: true;
456
+ } ? NodeBuilderData<T> : never) | Unhydrated<NodeFromSchema<T>>;
457
+
458
+ // @public
459
+ type InsertableTypedNodeUnsafe<T extends Unenforced<TreeNodeSchema>> = [
460
+ Unhydrated<NodeFromSchemaUnsafe<T>> | (T extends {
461
+ implicitlyConstructable: true;
462
+ } ? NodeBuilderDataUnsafe<T> : never)
463
+ ][_InlineTrick];
464
+
465
+ // @public @sealed
466
+ export interface InternalTreeNode extends ErasedType<"@fluidframework/tree.InternalTreeNode"> {
467
+ }
468
+
469
+ declare namespace InternalTypes {
470
+ export {
471
+ _InlineTrick,
472
+ FlattenKeys,
473
+ ApplyKind,
474
+ NodeBuilderData,
475
+ FieldHasDefault,
476
+ TreeNodeSchemaNonClass,
477
+ TreeArrayNodeBase,
478
+ ScopedSchemaName,
479
+ DefaultProvider,
480
+ typeNameSymbol,
481
+ InsertableObjectFromSchemaRecord,
482
+ ObjectFromSchemaRecord,
483
+ FieldHasDefaultUnsafe,
484
+ ObjectFromSchemaRecordUnsafe,
485
+ TreeObjectNodeUnsafe,
486
+ TreeFieldFromImplicitFieldUnsafe,
487
+ TreeNodeFromImplicitAllowedTypesUnsafe,
488
+ InsertableTreeNodeFromImplicitAllowedTypesUnsafe,
489
+ TreeArrayNodeUnsafe,
490
+ TreeMapNodeUnsafe,
491
+ InsertableObjectFromSchemaRecordUnsafe,
492
+ InsertableTreeFieldFromImplicitFieldUnsafe,
493
+ InsertableTypedNodeUnsafe,
494
+ NodeBuilderDataUnsafe,
495
+ NodeFromSchemaUnsafe,
496
+ FlexList,
497
+ FlexListToUnion,
498
+ ExtractItemType,
499
+ TreeApi
500
+ }
501
+ }
502
+ export { InternalTypes }
503
+
504
+ // @public (undocumented)
505
+ export interface IProvideFluidLoadable {
506
+ // (undocumented)
507
+ readonly IFluidLoadable: IFluidLoadable;
508
+ }
509
+
510
+ // @public
511
+ export interface IServiceAudience<M extends IMember> extends IEventProvider<IServiceAudienceEvents<M>> {
512
+ getMembers(): ReadonlyMap<string, M>;
513
+ getMyself(): Myself<M> | undefined;
514
+ }
515
+
516
+ // @public
517
+ export interface IServiceAudienceEvents<M extends IMember> extends IEvent {
518
+ // @eventProperty
519
+ (event: "membersChanged", listener: () => void): void;
520
+ // @eventProperty
521
+ (event: "memberAdded", listener: MemberChangedListener<M>): void;
522
+ // @eventProperty
523
+ (event: "memberRemoved", listener: MemberChangedListener<M>): void;
524
+ }
525
+
526
+ // @public
527
+ export type IsListener<TListener> = TListener extends (...args: any[]) => void ? true : false;
528
+
529
+ // @public
530
+ export interface ITelemetryBaseProperties {
531
+ [index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
532
+ }
533
+
534
+ // @public @sealed
535
+ export class IterableTreeArrayContent<T> implements Iterable<T> {
536
+ [Symbol.iterator](): Iterator<T>;
537
+ }
538
+
539
+ // @public @sealed
540
+ export interface ITree extends IFluidLoadable {
541
+ viewWith<TRoot extends ImplicitFieldSchema>(config: TreeViewConfiguration<TRoot>): TreeView<TRoot>;
542
+ }
543
+
544
+ // @public
545
+ export interface ITreeConfigurationOptions {
546
+ enableSchemaValidation?: boolean;
547
+ }
548
+
549
+ // @public
550
+ export interface ITreeViewConfiguration<TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> {
551
+ readonly enableSchemaValidation?: boolean;
552
+ readonly schema: TSchema;
553
+ }
554
+
555
+ // @public @sealed
556
+ export interface IValueChanged {
557
+ readonly key: string;
558
+ readonly previousValue: any;
559
+ }
560
+
561
+ // @public
562
+ export type LazyItem<Item = unknown> = Item | (() => Item);
563
+
564
+ // @public @sealed
565
+ export interface Listenable<TListeners extends object> {
566
+ on<K extends keyof Listeners<TListeners>>(eventName: K, listener: TListeners[K]): Off;
567
+ }
568
+
569
+ // @public
570
+ export type Listeners<T extends object> = {
571
+ [P in (string | symbol) & keyof T as IsListener<T[P]> extends true ? P : never]: T[P];
572
+ };
573
+
574
+ // @public @sealed
575
+ export interface MakeNominal {
576
+ }
577
+
578
+ // @public
579
+ export type MemberChangedListener<M extends IMember> = (clientId: string, member: M) => void;
580
+
581
+ // @public
582
+ export type Myself<M extends IMember = IMember> = M & {
583
+ readonly currentConnection: string;
584
+ };
585
+
586
+ // @public
587
+ type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
588
+
589
+ // @public
590
+ type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
591
+
592
+ // @public
593
+ export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
594
+
595
+ // @public
596
+ type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
597
+
598
+ // @public
599
+ export interface NodeInDocumentConstraint {
600
+ // (undocumented)
601
+ readonly node: TreeNode;
602
+ // (undocumented)
603
+ readonly type: "nodeInDocument";
604
+ }
605
+
606
+ // @public
607
+ export enum NodeKind {
608
+ Array = 1,
609
+ Leaf = 3,
610
+ Map = 0,
611
+ Object = 2
612
+ }
613
+
614
+ // @public
615
+ type ObjectFromSchemaRecord<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>> = {
616
+ -readonly [Property in keyof T]: TreeFieldFromImplicitField<T[Property]>;
617
+ };
618
+
619
+ // @public
620
+ type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>> = {
621
+ -readonly [Property in keyof T]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
622
+ };
623
+
624
+ // @public
625
+ export type Off = () => void;
626
+
627
+ // @public
628
+ export type ReplaceIEventThisPlaceHolder<L extends any[], TThis> = L extends any[] ? {
629
+ [K in keyof L]: L[K] extends IEventThisPlaceHolder ? TThis : L[K];
630
+ } : L;
631
+
632
+ // @public
633
+ export type RestrictiveReadonlyRecord<K extends symbol | string, T> = {
634
+ readonly [P in symbol | string]: P extends K ? T : never;
635
+ };
636
+
637
+ // @public @sealed
638
+ export interface Revertible {
639
+ dispose(): void;
640
+ revert(): void;
641
+ revert(dispose: boolean): void;
642
+ readonly status: RevertibleStatus;
643
+ }
644
+
645
+ // @public @sealed
646
+ export type RevertibleFactory = (onRevertibleDisposed?: (revertible: Revertible) => void) => Revertible;
647
+
648
+ // @public
649
+ export enum RevertibleStatus {
650
+ Disposed = 1,
651
+ Valid = 0
652
+ }
653
+
654
+ // @public
655
+ export const rollback: unique symbol;
656
+
657
+ // @public @sealed
658
+ export interface RunTransaction {
659
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
660
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
661
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
662
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
663
+ <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
664
+ <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void): void;
665
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
666
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
667
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
668
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
669
+ <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
670
+ <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
671
+ readonly rollback: typeof rollback;
672
+ }
673
+
674
+ // @public @sealed
675
+ export interface SchemaCompatibilityStatus {
676
+ readonly canInitialize: boolean;
677
+ readonly canUpgrade: boolean;
678
+ readonly canView: boolean;
679
+ readonly isEquivalent: boolean;
680
+ }
681
+
682
+ // @public @sealed
683
+ export class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> {
684
+ constructor(scope: TScope);
685
+ array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
686
+ array<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, Name>>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
687
+ arrayRecursive<const Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>>, {
688
+ [Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
689
+ }, false, T>;
690
+ readonly boolean: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
691
+ readonly handle: TreeNodeSchema<"com.fluidframework.leaf.handle", NodeKind.Leaf, IFluidHandle<unknown>, IFluidHandle<unknown>>;
692
+ get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
693
+ map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>>, Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>, true, T>;
694
+ map<Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>>, Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>, true, T>;
695
+ mapRecursive<Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>>, {
696
+ [Symbol.iterator](): Iterator<[
697
+ string,
698
+ InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
699
+ ]>;
700
+ }, false, T>;
701
+ readonly null: TreeNodeSchema<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null>;
702
+ readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
703
+ object<const Name extends TName, const T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>(name: Name, fields: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
704
+ objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>>(name: Name, t: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & { readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends false ? Property : never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>; } & { readonly [Property_1 in keyof T as FieldHasDefaultUnsafe<T[Property_1]> extends true ? Property_1 : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property_1]> | undefined; }, false, T>;
705
+ optional<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchema<FieldKind.Optional, T>;
706
+ optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
707
+ required<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchema<FieldKind.Required, T>;
708
+ requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
709
+ // (undocumented)
710
+ readonly scope: TScope;
711
+ readonly string: TreeNodeSchema<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string>;
712
+ }
713
+
714
+ // @public
715
+ type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
716
+
717
+ // @public @sealed
718
+ export interface SharedObjectKind<out TSharedObject = unknown> extends ErasedType<readonly ["SharedObjectKind", TSharedObject]> {
719
+ is(value: IFluidLoadable): value is IFluidLoadable & TSharedObject;
720
+ }
721
+
722
+ // @public
723
+ export const SharedTree: SharedObjectKind<ITree>;
724
+
725
+ // @public
726
+ export interface Tagged<V, T extends string = string> {
727
+ // (undocumented)
728
+ tag: T;
729
+ // (undocumented)
730
+ value: V;
731
+ }
732
+
733
+ // @public
734
+ export type TelemetryBaseEventPropertyType = string | number | boolean | undefined;
735
+
736
+ // @public
737
+ export type TransactionConstraint = NodeInDocumentConstraint;
738
+
739
+ // @public
740
+ export type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
741
+
742
+ // @public
743
+ export const Tree: TreeApi;
744
+
745
+ // @public @sealed
746
+ interface TreeApi extends TreeNodeApi {
747
+ contains(node: TreeNode, other: TreeNode): boolean;
748
+ readonly runTransaction: RunTransaction;
749
+ }
750
+
751
+ // @public @sealed
752
+ export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>, TreeArrayNode> {
753
+ }
754
+
755
+ // @public
756
+ export const TreeArrayNode: {
757
+ readonly spread: <T>(content: Iterable<T>) => IterableTreeArrayContent<T>;
758
+ };
759
+
760
+ // @public @sealed
761
+ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<T>, TreeNode {
762
+ insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
763
+ insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
764
+ insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
765
+ moveRangeToEnd(sourceStart: number, sourceEnd: number): void;
766
+ moveRangeToEnd(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
767
+ moveRangeToIndex(index: number, sourceStart: number, sourceEnd: number): void;
768
+ moveRangeToIndex(index: number, sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
769
+ moveRangeToStart(sourceStart: number, sourceEnd: number): void;
770
+ moveRangeToStart(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
771
+ moveToEnd(sourceIndex: number): void;
772
+ moveToEnd(sourceIndex: number, source: TMoveFrom): void;
773
+ moveToIndex(index: number, sourceIndex: number): void;
774
+ moveToIndex(index: number, sourceIndex: number, source: TMoveFrom): void;
775
+ moveToStart(sourceIndex: number): void;
776
+ moveToStart(sourceIndex: number, source: TMoveFrom): void;
777
+ removeAt(index: number): void;
778
+ removeRange(start?: number, end?: number): void;
779
+ values(): IterableIterator<T>;
780
+ }
781
+
782
+ // @public @sealed
783
+ export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, TreeArrayNode> {
784
+ }
785
+
786
+ // @public @sealed
787
+ export interface TreeChangeEvents {
788
+ nodeChanged(): void;
789
+ treeChanged(): void;
790
+ }
791
+
792
+ // @public
793
+ export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
794
+
795
+ // @public
796
+ type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
797
+
798
+ // @public
799
+ export type TreeLeafValue = number | string | boolean | IFluidHandle | null;
800
+
801
+ // @public @sealed
802
+ export interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>, TreeNode {
803
+ delete(key: string): void;
804
+ entries(): IterableIterator<[string, TreeNodeFromImplicitAllowedTypes<T>]>;
805
+ forEach(callbackfn: (value: TreeNodeFromImplicitAllowedTypes<T>, key: string, map: ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>) => void, thisArg?: any): void;
806
+ keys(): IterableIterator<string>;
807
+ set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypes<T> | undefined): void;
808
+ values(): IterableIterator<TreeNodeFromImplicitAllowedTypes<T>>;
809
+ }
810
+
811
+ // @public @sealed
812
+ export interface TreeMapNodeUnsafe<T extends Unenforced<ImplicitAllowedTypes>> extends ReadonlyMap<string, TreeNodeFromImplicitAllowedTypesUnsafe<T>>, TreeNode {
813
+ delete(key: string): void;
814
+ set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T> | undefined): void;
815
+ }
816
+
817
+ // @public @sealed
818
+ export abstract class TreeNode implements WithType {
819
+ static [Symbol.hasInstance](value: unknown): value is TreeNode;
820
+ static [Symbol.hasInstance]<TSchema extends abstract new (...args: any[]) => TreeNode>(this: TSchema, value: unknown): value is InstanceType<TSchema>;
821
+ abstract get [typeNameSymbol](): string;
822
+ protected constructor();
823
+ }
824
+
825
+ // @public @sealed
826
+ export interface TreeNodeApi {
827
+ is<TSchema extends ImplicitAllowedTypes>(value: unknown, schema: TSchema): value is TreeNodeFromImplicitAllowedTypes<TSchema>;
828
+ key(node: TreeNode): string | number;
829
+ on<K extends keyof TreeChangeEvents>(node: TreeNode, eventName: K, listener: TreeChangeEvents[K]): () => void;
830
+ parent(node: TreeNode): TreeNode | undefined;
831
+ schema<T extends TreeNode | TreeLeafValue>(node: T): TreeNodeSchema<string, NodeKind, unknown, T>;
832
+ shortId(node: TreeNode): number | string | undefined;
833
+ status(node: TreeNode): TreeStatus;
834
+ }
835
+
836
+ // @public
837
+ export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
838
+
839
+ // @public
840
+ type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
841
+
842
+ // @public @sealed
843
+ 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>;
844
+
845
+ // @public @sealed
846
+ export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
847
+ // @sealed
848
+ new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
849
+ }
850
+
851
+ // @public @sealed
852
+ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown> {
853
+ // (undocumented)
854
+ readonly identifier: Name;
855
+ readonly implicitlyConstructable: ImplicitlyConstructable;
856
+ readonly info: Info;
857
+ // (undocumented)
858
+ readonly kind: Kind;
859
+ }
860
+
861
+ // @public @sealed
862
+ interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
863
+ // (undocumented)
864
+ create(data: TInsertable): TNode;
865
+ }
866
+
867
+ // @public
868
+ export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName>;
869
+
870
+ // @public
871
+ export type TreeObjectNodeUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName>;
872
+
873
+ // @public
874
+ export enum TreeStatus {
875
+ Deleted = 2,
876
+ InDocument = 0,
877
+ New = 3,
878
+ Removed = 1
879
+ }
880
+
881
+ // @public @sealed
882
+ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
883
+ readonly compatibility: SchemaCompatibilityStatus;
884
+ readonly events: Listenable<TreeViewEvents>;
885
+ initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
886
+ get root(): TreeFieldFromImplicitField<TSchema>;
887
+ set root(newRoot: InsertableTreeFieldFromImplicitField<TSchema>);
888
+ upgradeSchema(): void;
889
+ }
890
+
891
+ // @public @sealed
892
+ export class TreeViewConfiguration<TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
893
+ constructor(props: ITreeViewConfiguration<TSchema>);
894
+ readonly enableSchemaValidation: boolean;
895
+ readonly schema: TSchema;
896
+ }
897
+
898
+ // @public @sealed
899
+ export interface TreeViewEvents {
900
+ commitApplied(data: CommitMetadata, getRevertible?: RevertibleFactory): void;
901
+ rootChanged(): void;
902
+ schemaChanged(): void;
903
+ }
904
+
905
+ // @public
906
+ const typeNameSymbol: unique symbol;
907
+
908
+ // @public
909
+ export type Unenforced<_DesiredExtendsConstraint> = unknown;
910
+
911
+ // @public
912
+ export type Unhydrated<T> = T;
913
+
914
+ // @public
915
+ export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"]>, {
916
+ [NodeKind.Object]: T["info"] extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
917
+ [NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
918
+ [NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
919
+ }[T["kind"]], false, {
920
+ [NodeKind.Object]: RestrictiveReadonlyRecord<string, ImplicitFieldSchema>;
921
+ [NodeKind.Array]: ImplicitAllowedTypes;
922
+ [NodeKind.Map]: ImplicitAllowedTypes;
923
+ }[T["kind"]]>> = true;
924
+
925
+ // @public @sealed
926
+ export interface WithType<TName extends string = string> {
927
+ get [typeNameSymbol](): TName;
928
+ }
929
+
930
+ ```