@fluidframework/runtime-definitions 2.0.0-rc.1.0.4 → 2.0.0-rc.2.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.
Files changed (84) hide show
  1. package/.eslintrc.cjs +1 -1
  2. package/CHANGELOG.md +75 -0
  3. package/api-extractor-cjs.json +8 -0
  4. package/api-extractor-lint.json +1 -1
  5. package/api-extractor.json +1 -1
  6. package/api-report/runtime-definitions.api.md +103 -112
  7. package/dist/dataStoreContext.d.ts +124 -62
  8. package/dist/dataStoreContext.d.ts.map +1 -1
  9. package/dist/dataStoreContext.js +3 -0
  10. package/dist/dataStoreContext.js.map +1 -1
  11. package/dist/dataStoreFactory.d.ts +1 -1
  12. package/dist/dataStoreFactory.d.ts.map +1 -1
  13. package/dist/dataStoreFactory.js.map +1 -1
  14. package/dist/dataStoreRegistry.d.ts +1 -1
  15. package/dist/dataStoreRegistry.d.ts.map +1 -1
  16. package/dist/dataStoreRegistry.js.map +1 -1
  17. package/dist/{garbageCollection.d.ts → garbageCollectionDefinitions.d.ts} +8 -2
  18. package/dist/garbageCollectionDefinitions.d.ts.map +1 -0
  19. package/dist/{garbageCollection.js → garbageCollectionDefinitions.js} +9 -3
  20. package/dist/garbageCollectionDefinitions.js.map +1 -0
  21. package/dist/index.d.ts +12 -52
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +20 -26
  24. package/dist/index.js.map +1 -1
  25. package/dist/package.json +3 -0
  26. package/dist/protocol.d.ts +2 -1
  27. package/dist/protocol.d.ts.map +1 -1
  28. package/dist/protocol.js.map +1 -1
  29. package/dist/runtime-definitions-alpha.d.ts +193 -166
  30. package/dist/runtime-definitions-beta.d.ts +37 -57
  31. package/dist/runtime-definitions-public.d.ts +37 -57
  32. package/dist/runtime-definitions-untrimmed.d.ts +200 -167
  33. package/dist/summary.d.ts +15 -20
  34. package/dist/summary.d.ts.map +1 -1
  35. package/dist/summary.js.map +1 -1
  36. package/dist/tsdoc-metadata.json +1 -1
  37. package/lib/attribution.d.ts +71 -0
  38. package/lib/attribution.d.ts.map +1 -0
  39. package/lib/attribution.js +6 -0
  40. package/lib/attribution.js.map +1 -0
  41. package/lib/dataStoreContext.d.ts +469 -0
  42. package/lib/dataStoreContext.d.ts.map +1 -0
  43. package/lib/dataStoreContext.js +67 -0
  44. package/lib/dataStoreContext.js.map +1 -0
  45. package/lib/dataStoreFactory.d.ts +33 -0
  46. package/lib/dataStoreFactory.d.ts.map +1 -0
  47. package/lib/dataStoreFactory.js +9 -0
  48. package/lib/dataStoreFactory.js.map +1 -0
  49. package/lib/dataStoreRegistry.d.ts +41 -0
  50. package/lib/dataStoreRegistry.d.ts.map +1 -0
  51. package/lib/dataStoreRegistry.js +9 -0
  52. package/lib/dataStoreRegistry.js.map +1 -0
  53. package/lib/garbageCollectionDefinitions.d.ts +62 -0
  54. package/lib/garbageCollectionDefinitions.d.ts.map +1 -0
  55. package/lib/garbageCollectionDefinitions.js +35 -0
  56. package/lib/garbageCollectionDefinitions.js.map +1 -0
  57. package/lib/index.d.ts +17 -0
  58. package/lib/index.d.ts.map +1 -0
  59. package/lib/index.js +10 -0
  60. package/lib/index.js.map +1 -0
  61. package/lib/protocol.d.ts +77 -0
  62. package/lib/protocol.d.ts.map +1 -0
  63. package/lib/protocol.js +6 -0
  64. package/lib/protocol.js.map +1 -0
  65. package/lib/runtime-definitions-alpha.d.ts +1025 -0
  66. package/lib/runtime-definitions-beta.d.ts +244 -0
  67. package/lib/runtime-definitions-public.d.ts +244 -0
  68. package/lib/runtime-definitions-untrimmed.d.ts +1106 -0
  69. package/lib/summary.d.ts +322 -0
  70. package/lib/summary.d.ts.map +1 -0
  71. package/lib/summary.js +26 -0
  72. package/lib/summary.js.map +1 -0
  73. package/package.json +111 -34
  74. package/src/dataStoreContext.ts +148 -77
  75. package/src/dataStoreFactory.ts +1 -1
  76. package/src/dataStoreRegistry.ts +1 -1
  77. package/src/{garbageCollection.ts → garbageCollectionDefinitions.ts} +7 -1
  78. package/src/index.ts +26 -70
  79. package/src/protocol.ts +2 -1
  80. package/src/summary.ts +18 -20
  81. package/tsconfig.cjs.json +7 -0
  82. package/tsconfig.json +2 -5
  83. package/dist/garbageCollection.d.ts.map +0 -1
  84. package/dist/garbageCollection.js.map +0 -1
@@ -1,39 +1,28 @@
1
- import { AttachState } from '@fluidframework/container-definitions';
2
- import { FluidObject } from '@fluidframework/core-interfaces';
3
- import { IAudience } from '@fluidframework/container-definitions';
4
- import { IClientDetails } from '@fluidframework/protocol-definitions';
5
- import { IdCompressor } from '@fluidframework/id-compressor';
6
- import { IdCreationRange } from '@fluidframework/id-compressor';
7
- import { IDeltaManager } from '@fluidframework/container-definitions';
8
- import { IDisposable } from '@fluidframework/core-interfaces';
9
- import { IDocumentMessage } from '@fluidframework/protocol-definitions';
10
- import { IDocumentStorageService } from '@fluidframework/driver-definitions';
11
- import { IEvent } from '@fluidframework/core-interfaces';
12
- import { IEventProvider } from '@fluidframework/core-interfaces';
13
- import { IFluidHandle } from '@fluidframework/core-interfaces';
14
- import { IIdCompressor } from '@fluidframework/id-compressor';
15
- import { IIdCompressorCore } from '@fluidframework/id-compressor';
16
- import { ILoaderOptions } from '@fluidframework/container-definitions';
17
- import { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
18
- import { IQuorumClients } from '@fluidframework/protocol-definitions';
19
- import { IRequest } from '@fluidframework/core-interfaces';
20
- import { IResponse } from '@fluidframework/core-interfaces';
21
- import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
22
- import { ISignalMessage } from '@fluidframework/protocol-definitions';
23
- import { ISnapshotTree } from '@fluidframework/protocol-definitions';
24
- import { ISummaryTree } from '@fluidframework/protocol-definitions';
25
- import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
26
- import { ITree } from '@fluidframework/protocol-definitions';
1
+ import type { AttachState } from '@fluidframework/container-definitions';
2
+ import type { FluidObject } from '@fluidframework/core-interfaces';
3
+ import type { IAudience } from '@fluidframework/container-definitions';
4
+ import type { IClientDetails } from '@fluidframework/protocol-definitions';
5
+ import type { IDeltaManager } from '@fluidframework/container-definitions';
6
+ import type { IDisposable } from '@fluidframework/core-interfaces';
7
+ import type { IDocumentMessage } from '@fluidframework/protocol-definitions';
8
+ import type { IDocumentStorageService } from '@fluidframework/driver-definitions';
9
+ import type { IEvent } from '@fluidframework/core-interfaces';
10
+ import type { IEventProvider } from '@fluidframework/core-interfaces';
11
+ import type { IFluidHandle } from '@fluidframework/core-interfaces';
12
+ import type { IIdCompressor } from '@fluidframework/id-compressor';
13
+ import type { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
14
+ import type { IQuorumClients } from '@fluidframework/protocol-definitions';
15
+ import type { IRequest } from '@fluidframework/core-interfaces';
16
+ import type { IResponse } from '@fluidframework/core-interfaces';
17
+ import type { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
18
+ import type { ISignalMessage } from '@fluidframework/protocol-definitions';
19
+ import type { ISnapshotTree } from '@fluidframework/protocol-definitions';
20
+ import type { ISummaryTree } from '@fluidframework/protocol-definitions';
21
+ import type { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
22
+ import type { ITree } from '@fluidframework/protocol-definitions';
27
23
  import type { IUser } from '@fluidframework/protocol-definitions';
28
- import { OpSpaceCompressedId } from '@fluidframework/id-compressor';
29
- import { SerializedIdCompressor } from '@fluidframework/id-compressor';
30
- import { SerializedIdCompressorWithNoSession } from '@fluidframework/id-compressor';
31
- import { SerializedIdCompressorWithOngoingSession } from '@fluidframework/id-compressor';
32
- import { SessionId } from '@fluidframework/id-compressor';
33
- import { SessionSpaceCompressedId } from '@fluidframework/id-compressor';
34
- import { StableId } from '@fluidframework/id-compressor';
35
- import { SummaryTree } from '@fluidframework/protocol-definitions';
36
- import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
24
+ import type { SummaryTree } from '@fluidframework/protocol-definitions';
25
+ import type { TelemetryBaseEventPropertyType } from '@fluidframework/core-interfaces';
37
26
 
38
27
  /**
39
28
  * Encapsulates the return codes of the aliasing API.
@@ -126,6 +115,9 @@ export declare type FluidDataStoreRegistryEntry = Readonly<Partial<IProvideFluid
126
115
  export declare enum FlushMode {
127
116
  /**
128
117
  * In Immediate flush mode the runtime will immediately send all operations to the driver layer.
118
+ *
119
+ * @deprecated This option will be removed in the next major version and should not be used. Use {@link FlushMode.TurnBased} instead, which is the default.
120
+ * See https://github.com/microsoft/FluidFramework/tree/main/packages/runtime/container-runtime/src/opLifecycle#how-batching-works
129
121
  */
130
122
  Immediate = 0,
131
123
  /**
@@ -139,6 +131,8 @@ export declare enum FlushMode {
139
131
 
140
132
  /* Excluded from this release type: gcBlobPrefix */
141
133
 
134
+ /* Excluded from this release type: gcDataBlobKey */
135
+
142
136
  /* Excluded from this release type: gcDeletedBlobKey */
143
137
 
144
138
  /* Excluded from this release type: gcTombstoneBlobKey */
@@ -173,6 +167,7 @@ export declare interface IAttachMessage {
173
167
  export declare interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {
174
168
  readonly logger: ITelemetryBaseLogger;
175
169
  readonly clientDetails: IClientDetails;
170
+ readonly disposed: boolean;
176
171
  /**
177
172
  * Invokes the given callback and guarantees that all operations generated within the callback will be ordered
178
173
  * sequentially.
@@ -184,12 +179,13 @@ export declare interface IContainerRuntimeBase extends IEventProvider<IContainer
184
179
  * Submits a container runtime level signal to be sent to other clients.
185
180
  * @param type - Type of the signal.
186
181
  * @param content - Content of the signal.
182
+ * @param targetClientId - When specified, the signal is only sent to the provided client id.
187
183
  */
188
- submitSignal(type: string, content: any): void;
184
+ submitSignal(type: string, content: any, targetClientId?: string): void;
189
185
  /**
190
186
  * @deprecated 0.16 Issue #1537, #3631
191
187
  */
192
- _createDataStoreWithProps(pkg: string | string[], props?: any, id?: string): Promise<IDataStore>;
188
+ _createDataStoreWithProps(pkg: Readonly<string | string[]>, props?: any, id?: string): Promise<IDataStore>;
193
189
  /**
194
190
  * Creates a data store and returns an object that exposes a handle to the data store's entryPoint, and also serves
195
191
  * as the data store's router. The data store is not bound to a container, and in such state is not persisted to
@@ -197,13 +193,20 @@ export declare interface IContainerRuntimeBase extends IEventProvider<IContainer
197
193
  * already attached DDS (or non-attached DDS that will eventually get attached to storage) will result in this
198
194
  * store being attached to storage.
199
195
  * @param pkg - Package name of the data store factory
196
+ * @param loadingGroupId - This represents the group of the datastore within a container or its snapshot.
197
+ * When not specified the datastore will belong to a `default` group. Read more about it in this
198
+ * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}
200
199
  */
201
- createDataStore(pkg: string | string[]): Promise<IDataStore>;
200
+ createDataStore(pkg: Readonly<string | string[]>, loadingGroupId?: string): Promise<IDataStore>;
202
201
  /**
203
202
  * Creates detached data store context. Only after context.attachRuntime() is called,
204
203
  * data store initialization is considered complete.
204
+ * @param pkg - Package name of the data store factory
205
+ * @param loadingGroupId - This represents the group of the datastore within a container or its snapshot.
206
+ * When not specified the datastore will belong to a `default` group. Read more about it in this
207
+ * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}.
205
208
  */
206
- createDetachedDataStore(pkg: Readonly<string[]>): IFluidDataStoreContextDetached;
209
+ createDetachedDataStore(pkg: Readonly<string[]>, loadingGroupId?: string): IFluidDataStoreContextDetached;
207
210
  /**
208
211
  * Get an absolute url for a provided container-relative request.
209
212
  * Returns undefined if the container or data store isn't attached to storage.
@@ -219,6 +222,28 @@ export declare interface IContainerRuntimeBase extends IEventProvider<IContainer
219
222
  * Returns the current audience.
220
223
  */
221
224
  getAudience(): IAudience;
225
+ /**
226
+ * Generates a new ID that is guaranteed to be unique across all sessions for this container.
227
+ * It could be in compact form (non-negative integer, oppotunistic), but it could also be UUID string.
228
+ * UUIDs generated will have low entropy in groups and will compress well.
229
+ * It can be leveraged anywhere in container where container unique IDs are required, i.e. any place
230
+ * that uses uuid() and stores result in container is likely candidate to start leveraging this API.
231
+ * If you always want to convert to string, instead of doing String(generateDocumentUniqueId()), consider
232
+ * doing encodeCompactIdToString(generateDocumentUniqueId()).
233
+ *
234
+ * For more details, please see IIdCompressor.generateDocumentUniqueId()
235
+ */
236
+ generateDocumentUniqueId(): number | string;
237
+ /**
238
+ * Api to fetch the snapshot from the service for a loadingGroupIds.
239
+ * @param loadingGroupIds - LoadingGroupId for which the snapshot is asked for.
240
+ * @param pathParts - Parts of the path, which we want to extract from the snapshot tree.
241
+ * @returns - snapshotTree and the sequence number of the snapshot.
242
+ */
243
+ getSnapshotForLoadingGroupId(loadingGroupIds: string[], pathParts: string[]): Promise<{
244
+ snapshotTree: ISnapshotTree;
245
+ sequenceNumber: number;
246
+ }>;
222
247
  }
223
248
 
224
249
  /**
@@ -233,6 +258,7 @@ export declare interface IContainerRuntimeBaseEvents extends IEvent {
233
258
  (event: "op", listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void): any;
234
259
  (event: "batchEnd", listener: (error: any, op: ISequencedDocumentMessage) => void): any;
235
260
  (event: "signal", listener: (message: IInboundSignalMessage, local: boolean) => void): any;
261
+ (event: "dispose", listener: () => void): any;
236
262
  }
237
263
 
238
264
  /**
@@ -259,10 +285,6 @@ export declare interface IDataStore {
259
285
  readonly entryPoint: IFluidHandle<FluidObject>;
260
286
  }
261
287
 
262
- export { IdCompressor }
263
-
264
- export { IdCreationRange }
265
-
266
288
  /**
267
289
  * An envelope wraps the contents with the intended target
268
290
  * @alpha
@@ -313,34 +335,27 @@ export declare interface IExperimentalIncrementalSummaryContext {
313
335
  * @alpha
314
336
  */
315
337
  export declare interface IFluidDataStoreChannel extends IDisposable {
316
- readonly id: string;
317
- /**
318
- * Indicates the attachment state of the channel to a host service.
319
- */
320
- readonly attachState: AttachState;
321
- readonly visibilityState: VisibilityState;
322
- /**
323
- * Runs through the graph and attaches the bound handles. Then binds this runtime to the container.
324
- * @deprecated This will be removed in favor of {@link IFluidDataStoreChannel.makeVisibleAndAttachGraph}.
325
- */
326
- attachGraph(): void;
327
338
  /**
328
339
  * Makes the data store channel visible in the container. Also, runs through its graph and attaches all
329
340
  * bound handles that represent its dependencies in the container's graph.
330
341
  */
331
342
  makeVisibleAndAttachGraph(): void;
332
343
  /**
333
- * Retrieves the summary used as part of the initial summary message
344
+ * Synchronously retrieves the summary used as part of the initial summary message
334
345
  */
335
346
  getAttachSummary(telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
347
+ /**
348
+ * Synchronously retrieves GC Data (representing the outbound routes present) for the initial state of the DataStore
349
+ */
350
+ getAttachGCData?(telemetryContext?: ITelemetryContext): IGarbageCollectionData;
336
351
  /**
337
352
  * Processes the op.
338
353
  */
339
- process(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
354
+ process(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown, addedOutboundReference?: (fromNodePath: string, toNodePath: string) => void): void;
340
355
  /**
341
356
  * Processes the signal.
342
357
  */
343
- processSignal(message: any, local: boolean): void;
358
+ processSignal(message: IInboundSignalMessage, local: boolean): void;
344
359
  /**
345
360
  * Generates a summary for the channel.
346
361
  * Introduced with summarizerNode - will be required in a future release.
@@ -395,7 +410,7 @@ export declare interface IFluidDataStoreChannel extends IDisposable {
395
410
  * get information and call functionality to the container.
396
411
  * @alpha
397
412
  */
398
- export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreContextEvents>, Partial<IProvideFluidDataStoreRegistry>, IProvideFluidHandleContext {
413
+ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreContextEvents>, IFluidParentContext {
399
414
  readonly id: string;
400
415
  /**
401
416
  * A data store created by a client, is a local data store for that client. Also, when a detached container loads
@@ -410,28 +425,122 @@ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDat
410
425
  * The package path of the data store as per the package factory.
411
426
  */
412
427
  readonly packagePath: readonly string[];
413
- readonly options: ILoaderOptions;
428
+ readonly baseSnapshot: ISnapshotTree | undefined;
429
+ /**
430
+ * @deprecated 0.16 Issue #1635, #3631
431
+ */
432
+ readonly createProps?: any;
433
+ /**
434
+ * Call by IFluidDataStoreChannel, indicates that a channel is dirty and needs to be part of the summary.
435
+ * @param address - The address of the channel that is dirty.
436
+ */
437
+ setChannelDirty(address: string): void;
438
+ /**
439
+ * @deprecated The functionality to get base GC details has been moved to summarizer node.
440
+ *
441
+ * Returns the GC details in the initial summary of this data store. This is used to initialize the data store
442
+ * and its children with the GC details from the previous summary.
443
+ */
444
+ getBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;
445
+ /**
446
+ * (Same as @see addedGCOutboundReference, but with string paths instead of handles)
447
+ *
448
+ * Called when a new outbound reference is added to another node. This is used by garbage collection to identify
449
+ * all references added in the system.
450
+ *
451
+ * @param fromPath - The absolute path of the node that added the reference.
452
+ * @param toPath - The absolute path of the outbound node that is referenced.
453
+ */
454
+ addedGCOutboundRoute?(fromPath: string, toPath: string): void;
455
+ }
456
+
457
+ /**
458
+ * @alpha
459
+ */
460
+ export declare interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
461
+ /**
462
+ * Binds a runtime to the context.
463
+ */
464
+ attachRuntime(factory: IProvideFluidDataStoreFactory, dataStoreRuntime: IFluidDataStoreChannel): Promise<IDataStore>;
465
+ }
466
+
467
+ /**
468
+ * @alpha
469
+ */
470
+ export declare interface IFluidDataStoreContextEvents extends IEvent {
471
+ (event: "attaching" | "attached", listener: () => void): any;
472
+ }
473
+
474
+ /**
475
+ * @alpha
476
+ */
477
+ export declare const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory;
478
+
479
+ /**
480
+ * IFluidDataStoreFactory create data stores. It is associated with an identifier (its `type` member)
481
+ * and usually provided to consumers using this mapping through a data store registry.
482
+ * @alpha
483
+ */
484
+ export declare interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
485
+ /**
486
+ * String that uniquely identifies the type of data store created by this factory.
487
+ */
488
+ type: string;
489
+ /**
490
+ * Generates runtime for the data store from the data store context. Once created should be bound to the context.
491
+ * @param context - Context for the data store.
492
+ * @param existing - If instantiating from an existing file.
493
+ */
494
+ instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<IFluidDataStoreChannel>;
495
+ }
496
+
497
+ /**
498
+ * @alpha
499
+ */
500
+ export declare const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry;
501
+
502
+ /**
503
+ * An association of identifiers to data store registry entries, where the
504
+ * entries can be used to create data stores.
505
+ * @alpha
506
+ */
507
+ export declare interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
508
+ get(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;
509
+ }
510
+
511
+ /**
512
+ * Represents the context for the data store like objects. It is used by the data store runtime to
513
+ * get information and call functionality to its parent.
514
+ *
515
+ * This layout is temporary, as {@link IFluidParentContext} and {@link IFluidDataStoreContext} will converge.
516
+ *
517
+ * @alpha
518
+ */
519
+ export declare interface IFluidParentContext extends IProvideFluidHandleContext, Partial<IProvideFluidDataStoreRegistry> {
520
+ readonly options: Record<string | number, any>;
414
521
  readonly clientId: string | undefined;
415
522
  readonly connected: boolean;
416
523
  readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
417
524
  readonly storage: IDocumentStorageService;
418
- readonly baseSnapshot: ISnapshotTree | undefined;
419
525
  readonly logger: ITelemetryBaseLogger;
420
526
  readonly clientDetails: IClientDetails;
421
527
  readonly idCompressor?: IIdCompressor;
528
+ /**
529
+ * Represents the loading group to which the data store belongs to. Please refer to this readme for more context.
530
+ * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}
531
+ */
532
+ readonly loadingGroupId?: string;
422
533
  /**
423
534
  * Indicates the attachment state of the data store to a host service.
424
535
  */
425
536
  readonly attachState: AttachState;
426
537
  readonly containerRuntime: IContainerRuntimeBase;
427
- /**
428
- * @deprecated 0.16 Issue #1635, #3631
429
- */
430
- readonly createProps?: any;
431
538
  /**
432
539
  * Ambient services provided with the context
433
540
  */
434
541
  readonly scope: FluidObject;
542
+ readonly gcThrowOnTombstoneUsage: boolean;
543
+ readonly gcTombstoneEnforcementAllowed: boolean;
435
544
  /**
436
545
  * Returns the current quorum.
437
546
  */
@@ -470,11 +579,6 @@ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDat
470
579
  * when they are marked as root. For non-root data stores, this happens when their handle is added to a visible DDS.
471
580
  */
472
581
  makeLocallyVisible(): void;
473
- /**
474
- * Call by IFluidDataStoreChannel, indicates that a channel is dirty and needs to be part of the summary.
475
- * @param address - The address of the channel that is dirty.
476
- */
477
- setChannelDirty(address: string): void;
478
582
  /**
479
583
  * Get an absolute url to the container based on the provided relativeUrl.
480
584
  * Returns undefined if the container or data store isn't attached to storage.
@@ -493,78 +597,24 @@ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDat
493
597
  * If it is local, it will throw unsupported errors on calls to summarize.
494
598
  */
495
599
  createParam: CreateChildSummarizerNodeParam): CreateChildSummarizerNodeFn;
600
+ deleteChildSummarizerNode?(id: string): void;
496
601
  uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;
497
- /**
498
- * @deprecated The functionality to get base GC details has been moved to summarizer node.
499
- *
500
- * Returns the GC details in the initial summary of this data store. This is used to initialize the data store
501
- * and its children with the GC details from the previous summary.
502
- */
503
- getBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;
504
602
  /**
505
603
  * @deprecated There is no replacement for this, its functionality is no longer needed at this layer.
506
604
  * It will be removed in a future release, sometime after 2.0.0-internal.8.0.0
507
605
  *
606
+ * Similar capability is exposed with from/to string paths instead of handles via @see addedGCOutboundRoute
607
+ *
508
608
  * Called when a new outbound reference is added to another node. This is used by garbage collection to identify
509
609
  * all references added in the system.
510
610
  * @param srcHandle - The handle of the node that added the reference.
511
611
  * @param outboundHandle - The handle of the outbound node that is referenced.
512
612
  */
513
- addedGCOutboundReference?(srcHandle: IFluidHandle, outboundHandle: IFluidHandle): void;
514
- }
515
-
516
- /**
517
- * @alpha
518
- */
519
- export declare interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
520
- /**
521
- * Binds a runtime to the context.
522
- */
523
- attachRuntime(factory: IProvideFluidDataStoreFactory, dataStoreRuntime: IFluidDataStoreChannel): Promise<void>;
524
- }
525
-
526
- /**
527
- * @alpha
528
- */
529
- export declare interface IFluidDataStoreContextEvents extends IEvent {
530
- (event: "attaching" | "attached", listener: () => void): any;
531
- }
532
-
533
- /**
534
- * @alpha
535
- */
536
- export declare const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory;
537
-
538
- /**
539
- * IFluidDataStoreFactory create data stores. It is associated with an identifier (its `type` member)
540
- * and usually provided to consumers using this mapping through a data store registry.
541
- * @alpha
542
- */
543
- export declare interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
544
- /**
545
- * String that uniquely identifies the type of data store created by this factory.
546
- */
547
- type: string;
548
- /**
549
- * Generates runtime for the data store from the data store context. Once created should be bound to the context.
550
- * @param context - Context for the data store.
551
- * @param existing - If instantiating from an existing file.
552
- */
553
- instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<IFluidDataStoreChannel>;
554
- }
555
-
556
- /**
557
- * @alpha
558
- */
559
- export declare const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry;
560
-
561
- /**
562
- * An association of identifiers to data store registry entries, where the
563
- * entries can be used to create data stores.
564
- * @alpha
565
- */
566
- export declare interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
567
- get(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;
613
+ addedGCOutboundReference?(srcHandle: {
614
+ absolutePath: string;
615
+ }, outboundHandle: {
616
+ absolutePath: string;
617
+ }): void;
568
618
  }
569
619
 
570
620
  /**
@@ -596,10 +646,6 @@ export declare interface IGarbageCollectionDetailsBase {
596
646
  gcData?: IGarbageCollectionData;
597
647
  }
598
648
 
599
- export { IIdCompressor }
600
-
601
- export { IIdCompressorCore }
602
-
603
649
  /**
604
650
  * Represents ISignalMessage with its type.
605
651
  * @public
@@ -683,9 +729,6 @@ export declare interface ISummarizerNode {
683
729
  invalidate(sequenceNumber: number): void;
684
730
  /**
685
731
  * Calls the internal summarize function and handles internal state tracking.
686
- * If unchanged and fullTree is false, it will reuse previous summary subtree.
687
- * If an error is encountered and throwOnFailure is false, it will try to make
688
- * a summary with a pointer to the previous summary + a blob of outstanding ops.
689
732
  * @param fullTree - true to skip optimizations and always generate the full tree
690
733
  * @param trackState - indicates whether the summarizer node should track the state of the summary or not
691
734
  * @param telemetryContext - summary data passed through the layers for telemetry purposes
@@ -726,7 +769,9 @@ export declare interface ISummarizerNode {
726
769
  */
727
770
  config?: ISummarizerNodeConfig): ISummarizerNode;
728
771
  getChild(id: string): ISummarizerNode | undefined;
729
- /** True if a summary is currently in progress */
772
+ /**
773
+ * True if a summary is currently in progress
774
+ */
730
775
  isSummaryInProgress?(): boolean;
731
776
  }
732
777
 
@@ -739,16 +784,6 @@ export declare interface ISummarizerNodeConfig {
739
784
  * Defaults to true.
740
785
  */
741
786
  readonly canReuseHandle?: boolean;
742
- /**
743
- * True to always stop execution on error during summarize, or false to
744
- * attempt creating a summary that is a pointer ot the last acked summary
745
- * plus outstanding ops in case of internal summarize failure.
746
- * Defaults to false.
747
- *
748
- * BUG BUG: Default to true while we investigate problem
749
- * with differential summaries
750
- */
751
- readonly throwOnFailure?: true;
752
787
  }
753
788
 
754
789
  /**
@@ -879,24 +914,30 @@ export declare interface ITelemetryContext {
879
914
  * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
880
915
  * @param value - value to attribute to this summary telemetry data
881
916
  */
882
- set(prefix: string, property: string, value: TelemetryEventPropertyType): void;
917
+ set(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;
883
918
  /**
884
919
  * Sets multiple values for telemetry data being tracked.
885
920
  * @param prefix - unique prefix to tag this data with (ex: "fluid:summarize:")
886
921
  * @param property - property name of the telemetry data being tracked (ex: "Options")
887
922
  * @param values - A set of values to attribute to this summary telemetry data.
888
923
  */
889
- setMultiple(prefix: string, property: string, values: Record<string, TelemetryEventPropertyType>): void;
924
+ setMultiple(prefix: string, property: string, values: Record<string, TelemetryBaseEventPropertyType>): void;
890
925
  /**
891
926
  * Get the telemetry data being tracked
927
+ *
928
+ * @deprecated This interface should only be used for instrumenting, not for attempting to read already-set telemetry data.
929
+ *
892
930
  * @param prefix - unique prefix for this data (ex: "fluid:map:")
893
931
  * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
894
932
  * @returns undefined if item not found
895
933
  */
896
- get(prefix: string, property: string): TelemetryEventPropertyType;
934
+ get(prefix: string, property: string): TelemetryBaseEventPropertyType;
897
935
  /**
898
936
  * Returns a serialized version of all the telemetry data.
899
937
  * Should be used when logging in telemetry events.
938
+ *
939
+ * @deprecated This interface should only be used for instrumenting. A concrete implementation will likely have a serialize function
940
+ * but this functionality should not be used by other code being given an ITelemetryContext.
900
941
  */
901
942
  serialize(): string;
902
943
  }
@@ -941,20 +982,6 @@ export declare interface OpAttributionKey {
941
982
  seq: number;
942
983
  }
943
984
 
944
- export { OpSpaceCompressedId }
945
-
946
- export { SerializedIdCompressor }
947
-
948
- export { SerializedIdCompressorWithNoSession }
949
-
950
- export { SerializedIdCompressorWithOngoingSession }
951
-
952
- export { SessionId }
953
-
954
- export { SessionSpaceCompressedId }
955
-
956
- export { StableId }
957
-
958
985
  /**
959
986
  * @alpha
960
987
  */