@fluidframework/runtime-definitions 2.0.0-internal.8.0.1 → 2.0.0-rc.1.0.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.
@@ -37,8 +37,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
37
37
 
38
38
  /* Excluded from this release type: AliasResult */
39
39
 
40
- /* Excluded from this release type: AttachState */
41
-
42
40
  /* Excluded from this release type: AttributionInfo */
43
41
 
44
42
  /* Excluded from this release type: AttributionKey */
@@ -57,8 +55,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
57
55
 
58
56
  /* Excluded from this release type: FluidDataStoreRegistryEntry */
59
57
 
60
- /* Excluded from this release type: FluidObject */
61
-
62
58
  /* Excluded from this release type: FlushMode */
63
59
 
64
60
  /* Excluded from this release type: FlushModeExperimental */
@@ -73,8 +69,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
73
69
 
74
70
  /* Excluded from this release type: IAttachMessage */
75
71
 
76
- /* Excluded from this release type: IAudience */
77
-
78
72
  /* Excluded from this release type: IContainerRuntimeBase */
79
73
 
80
74
  /* Excluded from this release type: IContainerRuntimeBaseEvents */
@@ -85,19 +79,36 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
85
79
 
86
80
  /* Excluded from this release type: IdCreationRange */
87
81
 
88
- /* Excluded from this release type: IDeltaManager */
89
-
90
- /* Excluded from this release type: IDisposable */
91
-
92
82
  /* Excluded from this release type: IDocumentStorageService */
93
83
 
94
84
  /* Excluded from this release type: IEnvelope */
95
85
 
96
- /* Excluded from this release type: IEvent */
97
-
98
- /* Excluded from this release type: IEventProvider */
99
-
100
- /* Excluded from this release type: IExperimentalIncrementalSummaryContext */
86
+ /**
87
+ * @experimental - Can be deleted/changed at any time
88
+ * Contains the necessary information to allow DDSes to do incremental summaries
89
+ * @public
90
+ */
91
+ export declare interface IExperimentalIncrementalSummaryContext {
92
+ /**
93
+ * The sequence number of the summary generated that will be sent to the server.
94
+ */
95
+ summarySequenceNumber: number;
96
+ /**
97
+ * The sequence number of the most recent summary that was acknowledged by the server.
98
+ */
99
+ latestSummarySequenceNumber: number;
100
+ /**
101
+ * The path to the runtime/datastore/dds that is used to generate summary handles
102
+ * Note: Summary handles are nodes of the summary tree that point to previous parts of the last successful summary
103
+ * instead of being a blob or tree node
104
+ *
105
+ * This path contains the id of the data store and dds which should not be leaked to layers below them. Ideally,
106
+ * a layer should not know its own id. This is important for channel unification work and there has been a lot of
107
+ * work to remove these kinds of leakages. Some still exist, which have to be fixed but we should not be adding
108
+ * more dependencies.
109
+ */
110
+ summaryPath: string;
111
+ }
101
112
 
102
113
  /* Excluded from this release type: IFluidDataStoreChannel */
103
114
 
@@ -111,19 +122,32 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
111
122
 
112
123
  /* Excluded from this release type: IFluidDataStoreRegistry */
113
124
 
114
- /* Excluded from this release type: IFluidHandle */
115
-
116
- /* Excluded from this release type: IGarbageCollectionData */
125
+ /**
126
+ * Garbage collection data returned by nodes in a Container.
127
+ * Used for running GC in the Container.
128
+ * @public
129
+ */
130
+ export declare interface IGarbageCollectionData {
131
+ /**
132
+ * The GC nodes of a Fluid object in the Container. Each node has an id and a set of routes to other GC nodes.
133
+ */
134
+ gcNodes: {
135
+ [id: string]: string[];
136
+ };
137
+ }
117
138
 
118
139
  /* Excluded from this release type: IGarbageCollectionDetailsBase */
119
-
120
- /* Excluded from this release type: IIdCompressor */
140
+ export { IIdCompressor }
121
141
 
122
142
  /* Excluded from this release type: IIdCompressorCore */
123
143
 
124
- /* Excluded from this release type: IInboundSignalMessage */
125
-
126
- /* Excluded from this release type: ILoaderOptions */
144
+ /**
145
+ * Represents ISignalMessage with its type.
146
+ * @public
147
+ */
148
+ export declare interface IInboundSignalMessage extends ISignalMessage {
149
+ type: string;
150
+ }
127
151
 
128
152
  /* Excluded from this release type: InboundAttachMessage */
129
153
 
@@ -131,12 +155,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
131
155
 
132
156
  /* Excluded from this release type: IProvideFluidDataStoreRegistry */
133
157
 
134
- /* Excluded from this release type: IProvideFluidHandleContext */
135
-
136
- /* Excluded from this release type: IRequest */
137
-
138
- /* Excluded from this release type: IResponse */
139
-
140
158
  /* Excluded from this release type: ISignalEnvelope */
141
159
 
142
160
  /* Excluded from this release type: ISummarizeInternalResult */
@@ -151,13 +169,71 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
151
169
 
152
170
  /* Excluded from this release type: ISummarizerNodeWithGC */
153
171
 
154
- /* Excluded from this release type: ISummaryStats */
155
-
156
- /* Excluded from this release type: ISummaryTreeWithStats */
157
-
158
- /* Excluded from this release type: ITelemetryBaseLogger */
159
-
160
- /* Excluded from this release type: ITelemetryContext */
172
+ /**
173
+ * Contains the aggregation data from a Tree/Subtree.
174
+ * @public
175
+ */
176
+ export declare interface ISummaryStats {
177
+ treeNodeCount: number;
178
+ blobNodeCount: number;
179
+ handleNodeCount: number;
180
+ totalBlobSize: number;
181
+ unreferencedBlobSize: number;
182
+ }
183
+
184
+ /**
185
+ * Represents the summary tree for a node along with the statistics for that tree.
186
+ * For example, for a given data store, it contains the data for data store along with a subtree for
187
+ * each of its DDS.
188
+ * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject
189
+ * will be taking part of the summarization process.
190
+ * @public
191
+ */
192
+ export declare interface ISummaryTreeWithStats {
193
+ /**
194
+ * Represents an aggregation of node counts and blob sizes associated to the current summary information
195
+ */
196
+ stats: ISummaryStats;
197
+ /**
198
+ * A recursive data structure that will be converted to a snapshot tree and uploaded
199
+ * to the backend.
200
+ */
201
+ summary: ISummaryTree;
202
+ }
203
+
204
+ /**
205
+ * Contains telemetry data relevant to summarization workflows.
206
+ * This object is expected to be modified directly by various summarize methods.
207
+ * @public
208
+ */
209
+ export declare interface ITelemetryContext {
210
+ /**
211
+ * Sets value for telemetry data being tracked.
212
+ * @param prefix - unique prefix to tag this data with (ex: "fluid:map:")
213
+ * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
214
+ * @param value - value to attribute to this summary telemetry data
215
+ */
216
+ set(prefix: string, property: string, value: TelemetryEventPropertyType): void;
217
+ /**
218
+ * Sets multiple values for telemetry data being tracked.
219
+ * @param prefix - unique prefix to tag this data with (ex: "fluid:summarize:")
220
+ * @param property - property name of the telemetry data being tracked (ex: "Options")
221
+ * @param values - A set of values to attribute to this summary telemetry data.
222
+ */
223
+ setMultiple(prefix: string, property: string, values: Record<string, TelemetryEventPropertyType>): void;
224
+ /**
225
+ * Get the telemetry data being tracked
226
+ * @param prefix - unique prefix for this data (ex: "fluid:map:")
227
+ * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
228
+ * @returns undefined if item not found
229
+ */
230
+ get(prefix: string, property: string): TelemetryEventPropertyType;
231
+ /**
232
+ * Returns a serialized version of all the telemetry data.
233
+ * Should be used when logging in telemetry events.
234
+ */
235
+ serialize(): string;
236
+ }
161
237
 
162
238
  /* Excluded from this release type: LocalAttributionKey */
163
239
 
@@ -166,25 +242,21 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
166
242
  /* Excluded from this release type: NamedFluidDataStoreRegistryEntry */
167
243
 
168
244
  /* Excluded from this release type: OpAttributionKey */
169
-
170
- /* Excluded from this release type: OpSpaceCompressedId */
245
+ export { OpSpaceCompressedId }
171
246
 
172
247
  /* Excluded from this release type: SerializedIdCompressor */
173
248
 
174
249
  /* Excluded from this release type: SerializedIdCompressorWithNoSession */
175
250
 
176
251
  /* Excluded from this release type: SerializedIdCompressorWithOngoingSession */
252
+ export { SessionId }
177
253
 
178
- /* Excluded from this release type: SessionId */
254
+ export { SessionSpaceCompressedId }
179
255
 
180
- /* Excluded from this release type: SessionSpaceCompressedId */
181
-
182
- /* Excluded from this release type: StableId */
256
+ export { StableId }
183
257
 
184
258
  /* Excluded from this release type: SummarizeInternalFn */
185
259
 
186
- /* Excluded from this release type: TelemetryEventPropertyType */
187
-
188
260
  /* Excluded from this release type: totalBlobSizePropertyName */
189
261
 
190
262
  /* Excluded from this release type: VisibilityState */
@@ -37,8 +37,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
37
37
 
38
38
  /* Excluded from this release type: AliasResult */
39
39
 
40
- /* Excluded from this release type: AttachState */
41
-
42
40
  /* Excluded from this release type: AttributionInfo */
43
41
 
44
42
  /* Excluded from this release type: AttributionKey */
@@ -57,8 +55,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
57
55
 
58
56
  /* Excluded from this release type: FluidDataStoreRegistryEntry */
59
57
 
60
- /* Excluded from this release type: FluidObject */
61
-
62
58
  /* Excluded from this release type: FlushMode */
63
59
 
64
60
  /* Excluded from this release type: FlushModeExperimental */
@@ -73,8 +69,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
73
69
 
74
70
  /* Excluded from this release type: IAttachMessage */
75
71
 
76
- /* Excluded from this release type: IAudience */
77
-
78
72
  /* Excluded from this release type: IContainerRuntimeBase */
79
73
 
80
74
  /* Excluded from this release type: IContainerRuntimeBaseEvents */
@@ -85,19 +79,36 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
85
79
 
86
80
  /* Excluded from this release type: IdCreationRange */
87
81
 
88
- /* Excluded from this release type: IDeltaManager */
89
-
90
- /* Excluded from this release type: IDisposable */
91
-
92
82
  /* Excluded from this release type: IDocumentStorageService */
93
83
 
94
84
  /* Excluded from this release type: IEnvelope */
95
85
 
96
- /* Excluded from this release type: IEvent */
97
-
98
- /* Excluded from this release type: IEventProvider */
99
-
100
- /* Excluded from this release type: IExperimentalIncrementalSummaryContext */
86
+ /**
87
+ * @experimental - Can be deleted/changed at any time
88
+ * Contains the necessary information to allow DDSes to do incremental summaries
89
+ * @public
90
+ */
91
+ export declare interface IExperimentalIncrementalSummaryContext {
92
+ /**
93
+ * The sequence number of the summary generated that will be sent to the server.
94
+ */
95
+ summarySequenceNumber: number;
96
+ /**
97
+ * The sequence number of the most recent summary that was acknowledged by the server.
98
+ */
99
+ latestSummarySequenceNumber: number;
100
+ /**
101
+ * The path to the runtime/datastore/dds that is used to generate summary handles
102
+ * Note: Summary handles are nodes of the summary tree that point to previous parts of the last successful summary
103
+ * instead of being a blob or tree node
104
+ *
105
+ * This path contains the id of the data store and dds which should not be leaked to layers below them. Ideally,
106
+ * a layer should not know its own id. This is important for channel unification work and there has been a lot of
107
+ * work to remove these kinds of leakages. Some still exist, which have to be fixed but we should not be adding
108
+ * more dependencies.
109
+ */
110
+ summaryPath: string;
111
+ }
101
112
 
102
113
  /* Excluded from this release type: IFluidDataStoreChannel */
103
114
 
@@ -111,19 +122,32 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
111
122
 
112
123
  /* Excluded from this release type: IFluidDataStoreRegistry */
113
124
 
114
- /* Excluded from this release type: IFluidHandle */
115
-
116
- /* Excluded from this release type: IGarbageCollectionData */
125
+ /**
126
+ * Garbage collection data returned by nodes in a Container.
127
+ * Used for running GC in the Container.
128
+ * @public
129
+ */
130
+ export declare interface IGarbageCollectionData {
131
+ /**
132
+ * The GC nodes of a Fluid object in the Container. Each node has an id and a set of routes to other GC nodes.
133
+ */
134
+ gcNodes: {
135
+ [id: string]: string[];
136
+ };
137
+ }
117
138
 
118
139
  /* Excluded from this release type: IGarbageCollectionDetailsBase */
119
-
120
- /* Excluded from this release type: IIdCompressor */
140
+ export { IIdCompressor }
121
141
 
122
142
  /* Excluded from this release type: IIdCompressorCore */
123
143
 
124
- /* Excluded from this release type: IInboundSignalMessage */
125
-
126
- /* Excluded from this release type: ILoaderOptions */
144
+ /**
145
+ * Represents ISignalMessage with its type.
146
+ * @public
147
+ */
148
+ export declare interface IInboundSignalMessage extends ISignalMessage {
149
+ type: string;
150
+ }
127
151
 
128
152
  /* Excluded from this release type: InboundAttachMessage */
129
153
 
@@ -131,12 +155,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
131
155
 
132
156
  /* Excluded from this release type: IProvideFluidDataStoreRegistry */
133
157
 
134
- /* Excluded from this release type: IProvideFluidHandleContext */
135
-
136
- /* Excluded from this release type: IRequest */
137
-
138
- /* Excluded from this release type: IResponse */
139
-
140
158
  /* Excluded from this release type: ISignalEnvelope */
141
159
 
142
160
  /* Excluded from this release type: ISummarizeInternalResult */
@@ -151,13 +169,71 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
151
169
 
152
170
  /* Excluded from this release type: ISummarizerNodeWithGC */
153
171
 
154
- /* Excluded from this release type: ISummaryStats */
155
-
156
- /* Excluded from this release type: ISummaryTreeWithStats */
157
-
158
- /* Excluded from this release type: ITelemetryBaseLogger */
159
-
160
- /* Excluded from this release type: ITelemetryContext */
172
+ /**
173
+ * Contains the aggregation data from a Tree/Subtree.
174
+ * @public
175
+ */
176
+ export declare interface ISummaryStats {
177
+ treeNodeCount: number;
178
+ blobNodeCount: number;
179
+ handleNodeCount: number;
180
+ totalBlobSize: number;
181
+ unreferencedBlobSize: number;
182
+ }
183
+
184
+ /**
185
+ * Represents the summary tree for a node along with the statistics for that tree.
186
+ * For example, for a given data store, it contains the data for data store along with a subtree for
187
+ * each of its DDS.
188
+ * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject
189
+ * will be taking part of the summarization process.
190
+ * @public
191
+ */
192
+ export declare interface ISummaryTreeWithStats {
193
+ /**
194
+ * Represents an aggregation of node counts and blob sizes associated to the current summary information
195
+ */
196
+ stats: ISummaryStats;
197
+ /**
198
+ * A recursive data structure that will be converted to a snapshot tree and uploaded
199
+ * to the backend.
200
+ */
201
+ summary: ISummaryTree;
202
+ }
203
+
204
+ /**
205
+ * Contains telemetry data relevant to summarization workflows.
206
+ * This object is expected to be modified directly by various summarize methods.
207
+ * @public
208
+ */
209
+ export declare interface ITelemetryContext {
210
+ /**
211
+ * Sets value for telemetry data being tracked.
212
+ * @param prefix - unique prefix to tag this data with (ex: "fluid:map:")
213
+ * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
214
+ * @param value - value to attribute to this summary telemetry data
215
+ */
216
+ set(prefix: string, property: string, value: TelemetryEventPropertyType): void;
217
+ /**
218
+ * Sets multiple values for telemetry data being tracked.
219
+ * @param prefix - unique prefix to tag this data with (ex: "fluid:summarize:")
220
+ * @param property - property name of the telemetry data being tracked (ex: "Options")
221
+ * @param values - A set of values to attribute to this summary telemetry data.
222
+ */
223
+ setMultiple(prefix: string, property: string, values: Record<string, TelemetryEventPropertyType>): void;
224
+ /**
225
+ * Get the telemetry data being tracked
226
+ * @param prefix - unique prefix for this data (ex: "fluid:map:")
227
+ * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
228
+ * @returns undefined if item not found
229
+ */
230
+ get(prefix: string, property: string): TelemetryEventPropertyType;
231
+ /**
232
+ * Returns a serialized version of all the telemetry data.
233
+ * Should be used when logging in telemetry events.
234
+ */
235
+ serialize(): string;
236
+ }
161
237
 
162
238
  /* Excluded from this release type: LocalAttributionKey */
163
239
 
@@ -166,25 +242,21 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
166
242
  /* Excluded from this release type: NamedFluidDataStoreRegistryEntry */
167
243
 
168
244
  /* Excluded from this release type: OpAttributionKey */
169
-
170
- /* Excluded from this release type: OpSpaceCompressedId */
245
+ export { OpSpaceCompressedId }
171
246
 
172
247
  /* Excluded from this release type: SerializedIdCompressor */
173
248
 
174
249
  /* Excluded from this release type: SerializedIdCompressorWithNoSession */
175
250
 
176
251
  /* Excluded from this release type: SerializedIdCompressorWithOngoingSession */
252
+ export { SessionId }
177
253
 
178
- /* Excluded from this release type: SessionId */
254
+ export { SessionSpaceCompressedId }
179
255
 
180
- /* Excluded from this release type: SessionSpaceCompressedId */
181
-
182
- /* Excluded from this release type: StableId */
256
+ export { StableId }
183
257
 
184
258
  /* Excluded from this release type: SummarizeInternalFn */
185
259
 
186
- /* Excluded from this release type: TelemetryEventPropertyType */
187
-
188
260
  /* Excluded from this release type: totalBlobSizePropertyName */
189
261
 
190
262
  /* Excluded from this release type: VisibilityState */
@@ -201,7 +201,7 @@ export declare const gcTreeKey = "gc";
201
201
  /**
202
202
  * Message send by client attaching local data structure.
203
203
  * Contains snapshot of data structure which is the current state of this data structure.
204
- * @internal
204
+ * @alpha
205
205
  */
206
206
  export declare interface IAttachMessage {
207
207
  /**
@@ -316,7 +316,7 @@ export { IdCreationRange }
316
316
 
317
317
  /**
318
318
  * An envelope wraps the contents with the intended target
319
- * @internal
319
+ * @alpha
320
320
  */
321
321
  export declare interface IEnvelope {
322
322
  /**
@@ -332,7 +332,7 @@ export declare interface IEnvelope {
332
332
  /**
333
333
  * @experimental - Can be deleted/changed at any time
334
334
  * Contains the necessary information to allow DDSes to do incremental summaries
335
- * @alpha
335
+ * @public
336
336
  */
337
337
  export declare interface IExperimentalIncrementalSummaryContext {
338
338
  /**
@@ -553,6 +553,9 @@ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDat
553
553
  */
554
554
  getBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;
555
555
  /**
556
+ * @deprecated There is no replacement for this, its functionality is no longer needed at this layer.
557
+ * It will be removed in a future release, sometime after 2.0.0-internal.8.0.0
558
+ *
556
559
  * Called when a new outbound reference is added to another node. This is used by garbage collection to identify
557
560
  * all references added in the system.
558
561
  * @param srcHandle - The handle of the node that added the reference.
@@ -618,7 +621,7 @@ export declare interface IFluidDataStoreRegistry extends IProvideFluidDataStoreR
618
621
  /**
619
622
  * Garbage collection data returned by nodes in a Container.
620
623
  * Used for running GC in the Container.
621
- * @alpha
624
+ * @public
622
625
  */
623
626
  export declare interface IGarbageCollectionData {
624
627
  /**
@@ -650,7 +653,7 @@ export { IIdCompressorCore }
650
653
 
651
654
  /**
652
655
  * Represents ISignalMessage with its type.
653
- * @alpha
656
+ * @public
654
657
  */
655
658
  export declare interface IInboundSignalMessage extends ISignalMessage {
656
659
  type: string;
@@ -661,7 +664,7 @@ export declare interface IInboundSignalMessage extends ISignalMessage {
661
664
  * but it should not be used when creating a new attach op.
662
665
  * Older versions of attach messages could have null snapshots,
663
666
  * so this gives correct typings for writing backward compatible code.
664
- * @internal
667
+ * @alpha
665
668
  */
666
669
  export declare type InboundAttachMessage = Omit<IAttachMessage, "snapshot"> & {
667
670
  snapshot: IAttachMessage["snapshot"] | null;
@@ -904,7 +907,7 @@ export declare interface ISummarizerNodeWithGC extends ISummarizerNode {
904
907
 
905
908
  /**
906
909
  * Contains the aggregation data from a Tree/Subtree.
907
- * @alpha
910
+ * @public
908
911
  */
909
912
  export declare interface ISummaryStats {
910
913
  treeNodeCount: number;
@@ -920,7 +923,7 @@ export declare interface ISummaryStats {
920
923
  * each of its DDS.
921
924
  * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject
922
925
  * will be taking part of the summarization process.
923
- * @alpha
926
+ * @public
924
927
  */
925
928
  export declare interface ISummaryTreeWithStats {
926
929
  /**
@@ -937,7 +940,7 @@ export declare interface ISummaryTreeWithStats {
937
940
  /**
938
941
  * Contains telemetry data relevant to summarization workflows.
939
942
  * This object is expected to be modified directly by various summarize methods.
940
- * @alpha
943
+ * @public
941
944
  */
942
945
  export declare interface ITelemetryContext {
943
946
  /**
package/dist/summary.d.ts CHANGED
@@ -7,7 +7,7 @@ import { SummaryTree, ISummaryTree, ISequencedDocumentMessage, ISnapshotTree, IT
7
7
  import { IGarbageCollectionData, IGarbageCollectionDetailsBase } from "./garbageCollection";
8
8
  /**
9
9
  * Contains the aggregation data from a Tree/Subtree.
10
- * @alpha
10
+ * @public
11
11
  */
12
12
  export interface ISummaryStats {
13
13
  treeNodeCount: number;
@@ -22,7 +22,7 @@ export interface ISummaryStats {
22
22
  * each of its DDS.
23
23
  * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject
24
24
  * will be taking part of the summarization process.
25
- * @alpha
25
+ * @public
26
26
  */
27
27
  export interface ISummaryTreeWithStats {
28
28
  /**
@@ -69,7 +69,7 @@ export interface ISummarizeInternalResult extends ISummarizeResult {
69
69
  /**
70
70
  * @experimental - Can be deleted/changed at any time
71
71
  * Contains the necessary information to allow DDSes to do incremental summaries
72
- * @alpha
72
+ * @public
73
73
  */
74
74
  export interface IExperimentalIncrementalSummaryContext {
75
75
  /**
@@ -286,7 +286,7 @@ export declare const channelsTreeName = ".channels";
286
286
  /**
287
287
  * Contains telemetry data relevant to summarization workflows.
288
288
  * This object is expected to be modified directly by various summarize methods.
289
- * @alpha
289
+ * @public
290
290
  */
291
291
  export interface ITelemetryContext {
292
292
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmJH;;GAEG;AACH,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,yFAAW,CAAA;IACX,uFAAU,CAAA;IACV,6EAAK,CAAA;AACN,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC;AAuKD;;GAEG;AACU,QAAA,gBAAgB,GAAG,WAAW,CAAC;AA2C5C;;GAEG;AACU,QAAA,qBAAqB,GAAG,WAAW,CAAC;AAEjD;;GAEG;AACU,QAAA,yBAAyB,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TelemetryEventPropertyType } from \"@fluidframework/core-interfaces\";\nimport {\n\tSummaryTree,\n\tISummaryTree,\n\tISequencedDocumentMessage,\n\tISnapshotTree,\n\tITree,\n} from \"@fluidframework/protocol-definitions\";\nimport { IGarbageCollectionData, IGarbageCollectionDetailsBase } from \"./garbageCollection\";\n\n/**\n * Contains the aggregation data from a Tree/Subtree.\n * @alpha\n */\nexport interface ISummaryStats {\n\ttreeNodeCount: number;\n\tblobNodeCount: number;\n\thandleNodeCount: number;\n\ttotalBlobSize: number;\n\tunreferencedBlobSize: number;\n}\n\n/**\n * Represents the summary tree for a node along with the statistics for that tree.\n * For example, for a given data store, it contains the data for data store along with a subtree for\n * each of its DDS.\n * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject\n * will be taking part of the summarization process.\n * @alpha\n */\nexport interface ISummaryTreeWithStats {\n\t/**\n\t * Represents an aggregation of node counts and blob sizes associated to the current summary information\n\t */\n\tstats: ISummaryStats;\n\t/**\n\t * A recursive data structure that will be converted to a snapshot tree and uploaded\n\t * to the backend.\n\t */\n\tsummary: ISummaryTree;\n}\n\n/**\n * Represents a summary at a current sequence number.\n * @alpha\n */\nexport interface ISummarizeResult {\n\tstats: ISummaryStats;\n\tsummary: SummaryTree;\n}\n\n/**\n * Contains the same data as ISummaryResult but in order to avoid naming collisions,\n * the data store summaries are wrapped around an array of labels identified by pathPartsForChildren.\n *\n * @example\n *\n * ```typescript\n * id:\"\"\n * pathPartsForChildren: [\"path1\"]\n * stats: ...\n * summary:\n * ...\n * \"path1\":\n * ```\n * @alpha\n */\nexport interface ISummarizeInternalResult extends ISummarizeResult {\n\tid: string;\n\t/**\n\t * Additional path parts between this node's ID and its children's IDs.\n\t */\n\tpathPartsForChildren?: string[];\n}\n\n/**\n * @experimental - Can be deleted/changed at any time\n * Contains the necessary information to allow DDSes to do incremental summaries\n * @alpha\n */\nexport interface IExperimentalIncrementalSummaryContext {\n\t/**\n\t * The sequence number of the summary generated that will be sent to the server.\n\t */\n\tsummarySequenceNumber: number;\n\t/**\n\t * The sequence number of the most recent summary that was acknowledged by the server.\n\t */\n\tlatestSummarySequenceNumber: number;\n\t/**\n\t * The path to the runtime/datastore/dds that is used to generate summary handles\n\t * Note: Summary handles are nodes of the summary tree that point to previous parts of the last successful summary\n\t * instead of being a blob or tree node\n\t *\n\t * This path contains the id of the data store and dds which should not be leaked to layers below them. Ideally,\n\t * a layer should not know its own id. This is important for channel unification work and there has been a lot of\n\t * work to remove these kinds of leakages. Some still exist, which have to be fixed but we should not be adding\n\t * more dependencies.\n\t */\n\t// TODO: remove summaryPath\n\tsummaryPath: string;\n}\n\n/**\n * @alpha\n */\nexport type SummarizeInternalFn = (\n\tfullTree: boolean,\n\ttrackState: boolean,\n\ttelemetryContext?: ITelemetryContext,\n\tincrementalSummaryContext?: IExperimentalIncrementalSummaryContext,\n) => Promise<ISummarizeInternalResult>;\n\n/**\n * @alpha\n */\nexport interface ISummarizerNodeConfig {\n\t/**\n\t * True to reuse previous handle when unchanged since last acked summary.\n\t * Defaults to true.\n\t */\n\treadonly canReuseHandle?: boolean;\n\t/**\n\t * True to always stop execution on error during summarize, or false to\n\t * attempt creating a summary that is a pointer ot the last acked summary\n\t * plus outstanding ops in case of internal summarize failure.\n\t * Defaults to false.\n\t *\n\t * BUG BUG: Default to true while we investigate problem\n\t * with differential summaries\n\t */\n\treadonly throwOnFailure?: true;\n}\n\n/**\n * @alpha\n */\nexport interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {\n\t/**\n\t * True if GC is disabled. If so, don't track GC related state for a summary.\n\t * This is propagated to all child nodes.\n\t */\n\treadonly gcDisabled?: boolean;\n}\n\n/**\n * @alpha\n */\nexport enum CreateSummarizerNodeSource {\n\tFromSummary,\n\tFromAttach,\n\tLocal,\n}\n/**\n * @alpha\n */\nexport type CreateChildSummarizerNodeParam =\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromSummary;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromAttach;\n\t\t\tsequenceNumber: number;\n\t\t\tsnapshot: ITree;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.Local;\n\t };\n\n/**\n * @alpha\n */\nexport interface ISummarizerNode {\n\t/**\n\t * Latest successfully acked summary reference sequence number\n\t */\n\treadonly referenceSequenceNumber: number;\n\t/**\n\t * Marks the node as having a change with the given sequence number.\n\t * @param sequenceNumber - sequence number of change\n\t */\n\tinvalidate(sequenceNumber: number): void;\n\t/**\n\t * Calls the internal summarize function and handles internal state tracking.\n\t * If unchanged and fullTree is false, it will reuse previous summary subtree.\n\t * If an error is encountered and throwOnFailure is false, it will try to make\n\t * a summary with a pointer to the previous summary + a blob of outstanding ops.\n\t * @param fullTree - true to skip optimizations and always generate the full tree\n\t * @param trackState - indicates whether the summarizer node should track the state of the summary or not\n\t * @param telemetryContext - summary data passed through the layers for telemetry purposes\n\t */\n\tsummarize(\n\t\tfullTree: boolean,\n\t\ttrackState?: boolean,\n\t\ttelemetryContext?: ITelemetryContext,\n\t): Promise<ISummarizeResult>;\n\t/**\n\t * Checks if there are any additional path parts for children that need to\n\t * be loaded from the base summary. Additional path parts represent parts\n\t * of the path between this SummarizerNode and any child SummarizerNodes\n\t * that it might have. For example: if datastore \"a\" contains dds \"b\", but the\n\t * path is \"/a/.channels/b\", then the additional path part is \".channels\".\n\t * @param snapshot - the base summary to parse\n\t */\n\tupdateBaseSummaryState(snapshot: ISnapshotTree): void;\n\t/**\n\t * Records an op representing a change to this node/subtree.\n\t * @param op - op of change to record\n\t */\n\trecordChange(op: ISequencedDocumentMessage): void;\n\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\n\t\t/**\n\t\t * Initial id or path part of this node\n\t\t */\n\t\tid: string,\n\t\t/**\n\t\t * Information needed to create the node.\n\t\t * If it is from a base summary, it will assert that a summary has been seen.\n\t\t * Attach information if it is created from an attach op.\n\t\t * If it is local, it will throw unsupported errors on calls to summarize.\n\t\t */\n\t\tcreateParam: CreateChildSummarizerNodeParam,\n\t\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfig,\n\t): ISummarizerNode;\n\n\tgetChild(id: string): ISummarizerNode | undefined;\n\n\t/** True if a summary is currently in progress */\n\tisSummaryInProgress?(): boolean;\n}\n\n/**\n * Extends the functionality of ISummarizerNode to support garbage collection. It adds / updates the following APIs:\n *\n * `usedRoutes`: The routes in this node that are currently in use.\n *\n * `getGCData`: A new API that can be used to get the garbage collection data for this node.\n *\n * `summarize`: Added a trackState flag which indicates whether the summarizer node should track the state of the\n * summary or not.\n *\n * `createChild`: Added the following params:\n *\n * - `getGCDataFn`: This gets the GC data from the caller. This must be provided in order for getGCData to work.\n *\n * - `getInitialGCDetailsFn`: This gets the initial GC details from the caller.\n *\n * `deleteChild`: Deletes a child node.\n *\n * `isReferenced`: This tells whether this node is referenced in the document or not.\n *\n * `updateUsedRoutes`: Used to notify this node of routes that are currently in use in it.\n * @alpha\n */\nexport interface ISummarizerNodeWithGC extends ISummarizerNode {\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\n\t\t/**\n\t\t * Initial id or path part of this node\n\t\t */\n\t\tid: string,\n\t\t/**\n\t\t * Information needed to create the node.\n\t\t * If it is from a base summary, it will assert that a summary has been seen.\n\t\t * Attach information if it is created from an attach op.\n\t\t * If it is local, it will throw unsupported errors on calls to summarize.\n\t\t */\n\t\tcreateParam: CreateChildSummarizerNodeParam,\n\t\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfigWithGC,\n\t\tgetGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,\n\t\t/**\n\t\t * @deprecated The functionality to update child's base GC details is incorporated in the summarizer node.\n\t\t */\n\t\tgetBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,\n\t): ISummarizerNodeWithGC;\n\n\t/**\n\t * Delete the child with the given id..\n\t */\n\tdeleteChild(id: string): void;\n\n\tgetChild(id: string): ISummarizerNodeWithGC | undefined;\n\n\t/**\n\t * Returns this node's data that is used for garbage collection. This includes a list of GC nodes that represent\n\t * this node. Each node has a set of outbound routes to other GC nodes in the document.\n\t * @param fullGC - true to bypass optimizations and force full generation of GC data.\n\t */\n\tgetGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;\n\n\t/**\n\t * Tells whether this node is being referenced in this document or not. Unreferenced node will get GC'd\n\t */\n\tisReferenced(): boolean;\n\n\t/**\n\t * After GC has run, called to notify this node of routes that are used in it. These are used for the following:\n\t * 1. To identify if this node is being referenced in the document or not.\n\t * 2. To identify if this node or any of its children's used routes changed since last summary.\n\t *\n\t * @param usedRoutes - The routes that are used in this node.\n\t */\n\tupdateUsedRoutes(usedRoutes: string[]): void;\n}\n\n/**\n * @internal\n */\nexport const channelsTreeName = \".channels\";\n\n/**\n * Contains telemetry data relevant to summarization workflows.\n * This object is expected to be modified directly by various summarize methods.\n * @alpha\n */\nexport interface ITelemetryContext {\n\t/**\n\t * Sets value for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @param value - value to attribute to this summary telemetry data\n\t */\n\tset(prefix: string, property: string, value: TelemetryEventPropertyType): void;\n\n\t/**\n\t * Sets multiple values for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:summarize:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"Options\")\n\t * @param values - A set of values to attribute to this summary telemetry data.\n\t */\n\tsetMultiple(\n\t\tprefix: string,\n\t\tproperty: string,\n\t\tvalues: Record<string, TelemetryEventPropertyType>,\n\t): void;\n\n\t/**\n\t * Get the telemetry data being tracked\n\t * @param prefix - unique prefix for this data (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @returns undefined if item not found\n\t */\n\tget(prefix: string, property: string): TelemetryEventPropertyType;\n\n\t/**\n\t * Returns a serialized version of all the telemetry data.\n\t * Should be used when logging in telemetry events.\n\t */\n\tserialize(): string;\n}\n\n/**\n * @internal\n */\nexport const blobCountPropertyName = \"BlobCount\";\n\n/**\n * @internal\n */\nexport const totalBlobSizePropertyName = \"TotalBlobSize\";\n"]}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmJH;;GAEG;AACH,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,yFAAW,CAAA;IACX,uFAAU,CAAA;IACV,6EAAK,CAAA;AACN,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC;AAuKD;;GAEG;AACU,QAAA,gBAAgB,GAAG,WAAW,CAAC;AA2C5C;;GAEG;AACU,QAAA,qBAAqB,GAAG,WAAW,CAAC;AAEjD;;GAEG;AACU,QAAA,yBAAyB,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TelemetryEventPropertyType } from \"@fluidframework/core-interfaces\";\nimport {\n\tSummaryTree,\n\tISummaryTree,\n\tISequencedDocumentMessage,\n\tISnapshotTree,\n\tITree,\n} from \"@fluidframework/protocol-definitions\";\nimport { IGarbageCollectionData, IGarbageCollectionDetailsBase } from \"./garbageCollection\";\n\n/**\n * Contains the aggregation data from a Tree/Subtree.\n * @public\n */\nexport interface ISummaryStats {\n\ttreeNodeCount: number;\n\tblobNodeCount: number;\n\thandleNodeCount: number;\n\ttotalBlobSize: number;\n\tunreferencedBlobSize: number;\n}\n\n/**\n * Represents the summary tree for a node along with the statistics for that tree.\n * For example, for a given data store, it contains the data for data store along with a subtree for\n * each of its DDS.\n * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject\n * will be taking part of the summarization process.\n * @public\n */\nexport interface ISummaryTreeWithStats {\n\t/**\n\t * Represents an aggregation of node counts and blob sizes associated to the current summary information\n\t */\n\tstats: ISummaryStats;\n\t/**\n\t * A recursive data structure that will be converted to a snapshot tree and uploaded\n\t * to the backend.\n\t */\n\tsummary: ISummaryTree;\n}\n\n/**\n * Represents a summary at a current sequence number.\n * @alpha\n */\nexport interface ISummarizeResult {\n\tstats: ISummaryStats;\n\tsummary: SummaryTree;\n}\n\n/**\n * Contains the same data as ISummaryResult but in order to avoid naming collisions,\n * the data store summaries are wrapped around an array of labels identified by pathPartsForChildren.\n *\n * @example\n *\n * ```typescript\n * id:\"\"\n * pathPartsForChildren: [\"path1\"]\n * stats: ...\n * summary:\n * ...\n * \"path1\":\n * ```\n * @alpha\n */\nexport interface ISummarizeInternalResult extends ISummarizeResult {\n\tid: string;\n\t/**\n\t * Additional path parts between this node's ID and its children's IDs.\n\t */\n\tpathPartsForChildren?: string[];\n}\n\n/**\n * @experimental - Can be deleted/changed at any time\n * Contains the necessary information to allow DDSes to do incremental summaries\n * @public\n */\nexport interface IExperimentalIncrementalSummaryContext {\n\t/**\n\t * The sequence number of the summary generated that will be sent to the server.\n\t */\n\tsummarySequenceNumber: number;\n\t/**\n\t * The sequence number of the most recent summary that was acknowledged by the server.\n\t */\n\tlatestSummarySequenceNumber: number;\n\t/**\n\t * The path to the runtime/datastore/dds that is used to generate summary handles\n\t * Note: Summary handles are nodes of the summary tree that point to previous parts of the last successful summary\n\t * instead of being a blob or tree node\n\t *\n\t * This path contains the id of the data store and dds which should not be leaked to layers below them. Ideally,\n\t * a layer should not know its own id. This is important for channel unification work and there has been a lot of\n\t * work to remove these kinds of leakages. Some still exist, which have to be fixed but we should not be adding\n\t * more dependencies.\n\t */\n\t// TODO: remove summaryPath\n\tsummaryPath: string;\n}\n\n/**\n * @alpha\n */\nexport type SummarizeInternalFn = (\n\tfullTree: boolean,\n\ttrackState: boolean,\n\ttelemetryContext?: ITelemetryContext,\n\tincrementalSummaryContext?: IExperimentalIncrementalSummaryContext,\n) => Promise<ISummarizeInternalResult>;\n\n/**\n * @alpha\n */\nexport interface ISummarizerNodeConfig {\n\t/**\n\t * True to reuse previous handle when unchanged since last acked summary.\n\t * Defaults to true.\n\t */\n\treadonly canReuseHandle?: boolean;\n\t/**\n\t * True to always stop execution on error during summarize, or false to\n\t * attempt creating a summary that is a pointer ot the last acked summary\n\t * plus outstanding ops in case of internal summarize failure.\n\t * Defaults to false.\n\t *\n\t * BUG BUG: Default to true while we investigate problem\n\t * with differential summaries\n\t */\n\treadonly throwOnFailure?: true;\n}\n\n/**\n * @alpha\n */\nexport interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {\n\t/**\n\t * True if GC is disabled. If so, don't track GC related state for a summary.\n\t * This is propagated to all child nodes.\n\t */\n\treadonly gcDisabled?: boolean;\n}\n\n/**\n * @alpha\n */\nexport enum CreateSummarizerNodeSource {\n\tFromSummary,\n\tFromAttach,\n\tLocal,\n}\n/**\n * @alpha\n */\nexport type CreateChildSummarizerNodeParam =\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromSummary;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromAttach;\n\t\t\tsequenceNumber: number;\n\t\t\tsnapshot: ITree;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.Local;\n\t };\n\n/**\n * @alpha\n */\nexport interface ISummarizerNode {\n\t/**\n\t * Latest successfully acked summary reference sequence number\n\t */\n\treadonly referenceSequenceNumber: number;\n\t/**\n\t * Marks the node as having a change with the given sequence number.\n\t * @param sequenceNumber - sequence number of change\n\t */\n\tinvalidate(sequenceNumber: number): void;\n\t/**\n\t * Calls the internal summarize function and handles internal state tracking.\n\t * If unchanged and fullTree is false, it will reuse previous summary subtree.\n\t * If an error is encountered and throwOnFailure is false, it will try to make\n\t * a summary with a pointer to the previous summary + a blob of outstanding ops.\n\t * @param fullTree - true to skip optimizations and always generate the full tree\n\t * @param trackState - indicates whether the summarizer node should track the state of the summary or not\n\t * @param telemetryContext - summary data passed through the layers for telemetry purposes\n\t */\n\tsummarize(\n\t\tfullTree: boolean,\n\t\ttrackState?: boolean,\n\t\ttelemetryContext?: ITelemetryContext,\n\t): Promise<ISummarizeResult>;\n\t/**\n\t * Checks if there are any additional path parts for children that need to\n\t * be loaded from the base summary. Additional path parts represent parts\n\t * of the path between this SummarizerNode and any child SummarizerNodes\n\t * that it might have. For example: if datastore \"a\" contains dds \"b\", but the\n\t * path is \"/a/.channels/b\", then the additional path part is \".channels\".\n\t * @param snapshot - the base summary to parse\n\t */\n\tupdateBaseSummaryState(snapshot: ISnapshotTree): void;\n\t/**\n\t * Records an op representing a change to this node/subtree.\n\t * @param op - op of change to record\n\t */\n\trecordChange(op: ISequencedDocumentMessage): void;\n\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\n\t\t/**\n\t\t * Initial id or path part of this node\n\t\t */\n\t\tid: string,\n\t\t/**\n\t\t * Information needed to create the node.\n\t\t * If it is from a base summary, it will assert that a summary has been seen.\n\t\t * Attach information if it is created from an attach op.\n\t\t * If it is local, it will throw unsupported errors on calls to summarize.\n\t\t */\n\t\tcreateParam: CreateChildSummarizerNodeParam,\n\t\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfig,\n\t): ISummarizerNode;\n\n\tgetChild(id: string): ISummarizerNode | undefined;\n\n\t/** True if a summary is currently in progress */\n\tisSummaryInProgress?(): boolean;\n}\n\n/**\n * Extends the functionality of ISummarizerNode to support garbage collection. It adds / updates the following APIs:\n *\n * `usedRoutes`: The routes in this node that are currently in use.\n *\n * `getGCData`: A new API that can be used to get the garbage collection data for this node.\n *\n * `summarize`: Added a trackState flag which indicates whether the summarizer node should track the state of the\n * summary or not.\n *\n * `createChild`: Added the following params:\n *\n * - `getGCDataFn`: This gets the GC data from the caller. This must be provided in order for getGCData to work.\n *\n * - `getInitialGCDetailsFn`: This gets the initial GC details from the caller.\n *\n * `deleteChild`: Deletes a child node.\n *\n * `isReferenced`: This tells whether this node is referenced in the document or not.\n *\n * `updateUsedRoutes`: Used to notify this node of routes that are currently in use in it.\n * @alpha\n */\nexport interface ISummarizerNodeWithGC extends ISummarizerNode {\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\n\t\t/**\n\t\t * Initial id or path part of this node\n\t\t */\n\t\tid: string,\n\t\t/**\n\t\t * Information needed to create the node.\n\t\t * If it is from a base summary, it will assert that a summary has been seen.\n\t\t * Attach information if it is created from an attach op.\n\t\t * If it is local, it will throw unsupported errors on calls to summarize.\n\t\t */\n\t\tcreateParam: CreateChildSummarizerNodeParam,\n\t\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfigWithGC,\n\t\tgetGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,\n\t\t/**\n\t\t * @deprecated The functionality to update child's base GC details is incorporated in the summarizer node.\n\t\t */\n\t\tgetBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,\n\t): ISummarizerNodeWithGC;\n\n\t/**\n\t * Delete the child with the given id..\n\t */\n\tdeleteChild(id: string): void;\n\n\tgetChild(id: string): ISummarizerNodeWithGC | undefined;\n\n\t/**\n\t * Returns this node's data that is used for garbage collection. This includes a list of GC nodes that represent\n\t * this node. Each node has a set of outbound routes to other GC nodes in the document.\n\t * @param fullGC - true to bypass optimizations and force full generation of GC data.\n\t */\n\tgetGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;\n\n\t/**\n\t * Tells whether this node is being referenced in this document or not. Unreferenced node will get GC'd\n\t */\n\tisReferenced(): boolean;\n\n\t/**\n\t * After GC has run, called to notify this node of routes that are used in it. These are used for the following:\n\t * 1. To identify if this node is being referenced in the document or not.\n\t * 2. To identify if this node or any of its children's used routes changed since last summary.\n\t *\n\t * @param usedRoutes - The routes that are used in this node.\n\t */\n\tupdateUsedRoutes(usedRoutes: string[]): void;\n}\n\n/**\n * @internal\n */\nexport const channelsTreeName = \".channels\";\n\n/**\n * Contains telemetry data relevant to summarization workflows.\n * This object is expected to be modified directly by various summarize methods.\n * @public\n */\nexport interface ITelemetryContext {\n\t/**\n\t * Sets value for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @param value - value to attribute to this summary telemetry data\n\t */\n\tset(prefix: string, property: string, value: TelemetryEventPropertyType): void;\n\n\t/**\n\t * Sets multiple values for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:summarize:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"Options\")\n\t * @param values - A set of values to attribute to this summary telemetry data.\n\t */\n\tsetMultiple(\n\t\tprefix: string,\n\t\tproperty: string,\n\t\tvalues: Record<string, TelemetryEventPropertyType>,\n\t): void;\n\n\t/**\n\t * Get the telemetry data being tracked\n\t * @param prefix - unique prefix for this data (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @returns undefined if item not found\n\t */\n\tget(prefix: string, property: string): TelemetryEventPropertyType;\n\n\t/**\n\t * Returns a serialized version of all the telemetry data.\n\t * Should be used when logging in telemetry events.\n\t */\n\tserialize(): string;\n}\n\n/**\n * @internal\n */\nexport const blobCountPropertyName = \"BlobCount\";\n\n/**\n * @internal\n */\nexport const totalBlobSizePropertyName = \"TotalBlobSize\";\n"]}