@fluidframework/core-interfaces 2.0.0-internal.7.2.2 → 2.0.0-internal.7.4.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 (111) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/api-extractor-lint.json +13 -0
  3. package/api-extractor.json +3 -3
  4. package/api-report/core-interfaces.api.md +69 -61
  5. package/dist/config.d.ts +35 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +7 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/core-interfaces-alpha.d.ts +782 -0
  10. package/dist/core-interfaces-beta.d.ts +111 -0
  11. package/dist/core-interfaces-public.d.ts +111 -0
  12. package/dist/core-interfaces-untrimmed.d.ts +1024 -0
  13. package/dist/disposable.d.ts +1 -0
  14. package/dist/disposable.d.ts.map +1 -1
  15. package/dist/disposable.js.map +1 -1
  16. package/dist/error.d.ts +9 -0
  17. package/dist/error.d.ts.map +1 -1
  18. package/dist/error.js +1 -0
  19. package/dist/error.js.map +1 -1
  20. package/dist/events.d.ts +8 -1
  21. package/dist/events.d.ts.map +1 -1
  22. package/dist/events.js.map +1 -1
  23. package/dist/fluidLoadable.d.ts +16 -0
  24. package/dist/fluidLoadable.d.ts.map +1 -1
  25. package/dist/fluidLoadable.js +6 -0
  26. package/dist/fluidLoadable.js.map +1 -1
  27. package/dist/fluidPackage.d.ts +9 -0
  28. package/dist/fluidPackage.d.ts.map +1 -1
  29. package/dist/fluidPackage.js +3 -0
  30. package/dist/fluidPackage.js.map +1 -1
  31. package/dist/fluidRouter.d.ts +12 -0
  32. package/dist/fluidRouter.d.ts.map +1 -1
  33. package/dist/fluidRouter.js +1 -0
  34. package/dist/fluidRouter.js.map +1 -1
  35. package/dist/handles.d.ts +14 -0
  36. package/dist/handles.d.ts.map +1 -1
  37. package/dist/handles.js +6 -0
  38. package/dist/handles.js.map +1 -1
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/logger.d.ts +16 -0
  43. package/dist/logger.d.ts.map +1 -1
  44. package/dist/logger.js +1 -0
  45. package/dist/logger.js.map +1 -1
  46. package/dist/provider.d.ts +3 -2
  47. package/dist/provider.d.ts.map +1 -1
  48. package/dist/provider.js.map +1 -1
  49. package/dist/tsdoc-metadata.json +1 -1
  50. package/lib/config.d.ts +35 -0
  51. package/lib/config.d.ts.map +1 -0
  52. package/lib/config.js +7 -0
  53. package/lib/config.js.map +1 -0
  54. package/lib/core-interfaces-alpha.d.ts +782 -0
  55. package/lib/core-interfaces-beta.d.ts +111 -0
  56. package/lib/core-interfaces-public.d.ts +111 -0
  57. package/lib/core-interfaces-untrimmed.d.ts +1024 -0
  58. package/lib/disposable.d.ts +1 -0
  59. package/lib/disposable.d.ts.map +1 -1
  60. package/lib/disposable.js +2 -1
  61. package/lib/disposable.js.map +1 -1
  62. package/lib/error.d.ts +9 -0
  63. package/lib/error.d.ts.map +1 -1
  64. package/lib/error.js +5 -1
  65. package/lib/error.js.map +1 -1
  66. package/lib/events.d.ts +8 -1
  67. package/lib/events.d.ts.map +1 -1
  68. package/lib/events.js +2 -1
  69. package/lib/events.js.map +1 -1
  70. package/lib/fluidLoadable.d.ts +16 -0
  71. package/lib/fluidLoadable.d.ts.map +1 -1
  72. package/lib/fluidLoadable.js +11 -2
  73. package/lib/fluidLoadable.js.map +1 -1
  74. package/lib/fluidPackage.d.ts +9 -0
  75. package/lib/fluidPackage.d.ts.map +1 -1
  76. package/lib/fluidPackage.js +12 -4
  77. package/lib/fluidPackage.js.map +1 -1
  78. package/lib/fluidRouter.d.ts +12 -0
  79. package/lib/fluidRouter.d.ts.map +1 -1
  80. package/lib/fluidRouter.js +5 -1
  81. package/lib/fluidRouter.js.map +1 -1
  82. package/lib/handles.d.ts +14 -0
  83. package/lib/handles.d.ts.map +1 -1
  84. package/lib/handles.js +11 -2
  85. package/lib/handles.js.map +1 -1
  86. package/lib/index.d.ts +1 -0
  87. package/lib/index.d.ts.map +1 -1
  88. package/lib/index.js +19 -6
  89. package/lib/index.js.map +1 -1
  90. package/lib/logger.d.ts +16 -0
  91. package/lib/logger.d.ts.map +1 -1
  92. package/lib/logger.js +5 -1
  93. package/lib/logger.js.map +1 -1
  94. package/lib/provider.d.ts +3 -2
  95. package/lib/provider.d.ts.map +1 -1
  96. package/lib/provider.js +2 -1
  97. package/lib/provider.js.map +1 -1
  98. package/package.json +30 -12
  99. package/src/config.ts +36 -0
  100. package/src/disposable.ts +1 -0
  101. package/src/error.ts +9 -0
  102. package/src/events.ts +8 -1
  103. package/src/fluidLoadable.ts +16 -0
  104. package/src/fluidPackage.ts +9 -0
  105. package/src/fluidRouter.ts +12 -0
  106. package/src/handles.ts +14 -0
  107. package/src/index.ts +1 -0
  108. package/src/logger.ts +16 -0
  109. package/src/provider.ts +3 -2
  110. package/tsconfig.esnext.json +1 -2
  111. package/tsconfig.json +5 -3
@@ -0,0 +1,1024 @@
1
+ /**
2
+ * Types supported by {@link IConfigProviderBase}.
3
+ * @alpha
4
+ */
5
+ export declare type ConfigTypes = string | number | boolean | number[] | string[] | boolean[] | undefined;
6
+
7
+ /**
8
+ * Allows an interface to extend interfaces that already extend an {@link IEventProvider}.
9
+ *
10
+ * @example
11
+ *
12
+ * ``` typescript
13
+ * interface AEvents extends IEvent{
14
+ * (event: "a-event",listener: (a: number)=>void);
15
+ * }
16
+ * interface A extends IEventProvider<AEvents>{
17
+ * a: object;
18
+ * }
19
+ *
20
+ * interface BEvents extends IEvent{
21
+ * (event: "b-event",listener: (b: string)=>void);
22
+ * }
23
+ * interface B extends ExtendEventProvider<AEvents, A, BEvents>{
24
+ * b: boolean;
25
+ * };
26
+ * ```
27
+ *
28
+ * interface B will now extend interface A and its events
29
+ * @alpha
30
+ */
31
+ export declare type ExtendEventProvider<TBaseEvent extends IEvent, TBase extends IEventProvider<TBaseEvent>, TEvent extends TBaseEvent> = Omit<Omit<Omit<TBase, "on">, "once">, "off"> & IEventProvider<TBaseEvent> & IEventProvider<TEvent>;
32
+
33
+ /**
34
+ * Error types the Fluid Framework may report.
35
+ * @internal
36
+ */
37
+ export declare const FluidErrorTypes: {
38
+ /**
39
+ * Some error, most likely an exception caught by runtime and propagated to container as critical error
40
+ */
41
+ readonly genericError: "genericError";
42
+ /**
43
+ * Throttling error from server. Server is busy and is asking not to reconnect for some time
44
+ */
45
+ readonly throttlingError: "throttlingError";
46
+ /**
47
+ * Data loss error detected by Container / DeltaManager. Likely points to storage issue.
48
+ */
49
+ readonly dataCorruptionError: "dataCorruptionError";
50
+ /**
51
+ * Error encountered when processing an operation. May correlate with data corruption.
52
+ */
53
+ readonly dataProcessingError: "dataProcessingError";
54
+ /**
55
+ * Error indicating an API is being used improperly resulting in an invalid operation.
56
+ */
57
+ readonly usageError: "usageError";
58
+ };
59
+
60
+ /**
61
+ * @internal
62
+ */
63
+ export declare type FluidErrorTypes = (typeof FluidErrorTypes)[keyof typeof FluidErrorTypes];
64
+
65
+ /**
66
+ * This utility type take interface(s) that follow the FluidObject pattern, and produces
67
+ * a new type that can be used for inspection and discovery of those interfaces.
68
+ *
69
+ * It is meant to be used with types that are known to implement the FluidObject pattern.
70
+ * A common way to specify a type implements the FluidObject pattern is to expose it as a
71
+ * FluidObject without a generic argument.
72
+ *
73
+ * @example
74
+ *
75
+ * For example, if we have an interface like the following:
76
+ *
77
+ * ```typescript
78
+ * interface IProvideFoo{
79
+ * IFoo: IFoo
80
+ * }
81
+ * interface IFoo extends IProvideFoo{
82
+ * foobar();
83
+ * }
84
+ * ```
85
+ *
86
+ * and a function that returns a FluidObject. You would do the following
87
+ *
88
+ * `const maybeFoo: FluidObject<IFoo> = getFluidObject()`;
89
+ *
90
+ * Either IFoo or IProvideFoo are valid generic arguments. In both case
91
+ * maybeFoo will be of type `{IFoo?: IFoo}`. If IFoo is not undefined,
92
+ * then the FluidObject provides IFoo, and it can be used.
93
+ *
94
+ * You can inspect multiple types via a intersection. For example:
95
+ * `FluidObject<IFoo & IBar>`
96
+ * @alpha
97
+ */
98
+ export declare type FluidObject<T = unknown> = {
99
+ [P in FluidObjectProviderKeys<T>]?: T[P];
100
+ };
101
+
102
+ /**
103
+ * This utility type creates a type that is the union of all keys on the generic type
104
+ * which implement the FluidObject pattern.
105
+ *
106
+ * See {@link FluidObject}
107
+ *
108
+ * For example `FluidObjectKeys<IFoo & IBar>` would result in `"IFoo" | "IBar"`
109
+ * @alpha
110
+ */
111
+ export declare type FluidObjectKeys<T> = keyof FluidObject<T>;
112
+
113
+ /**
114
+ * Produces a valid FluidObject key given a type and a property.
115
+ *
116
+ * @remarks
117
+ *
118
+ * A valid FluidObject key is a property that exists on the incoming type
119
+ * as well as on the type of the property itself. For example: `IProvideFoo.IFoo.IFoo`
120
+ * This aligns with the FluidObject pattern expected to be used with all FluidObjects.
121
+ *
122
+ * This utility type is meant for internal use by {@link FluidObject}
123
+ *
124
+ * @example
125
+ *
126
+ * ```typescript
127
+ * interface IProvideFoo{
128
+ * IFoo: IFoo
129
+ * }
130
+ * interface IFoo extends IProvideFoo{
131
+ * foobar();
132
+ * }
133
+ * ```
134
+ *
135
+ * This pattern enables discovery, and delegation in a standard way which is central
136
+ * to FluidObject pattern.
137
+ * @alpha
138
+ */
139
+ export declare 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;
140
+
141
+ /**
142
+ * Base interface for providing configurations to enable/disable/control features.
143
+ * @alpha
144
+ */
145
+ export declare interface IConfigProviderBase {
146
+ /**
147
+ * For the specified config name this function gets the value.
148
+ *
149
+ * This type is meant be easy to implement by Fluid Framework consumers
150
+ * so the returned valued needs minimal type coercion, and allows consumers to
151
+ * return values in a natural way from whatever source they retrieve them.
152
+ *
153
+ * For instance a value of 1 maybe be returned as a string or a number.
154
+ * For array types a json string or an object are allowable.
155
+ *
156
+ * It should return undefined if there is no value available for the config name.
157
+ *
158
+ * @param name - The name of the config to get the value for.
159
+ *
160
+ * @privateRemarks Generally, this type should only be taken as input, and be wrapped by an
161
+ * internal monitoring context from the fluidframework/telemetry-utils package. That will provide
162
+ * a wrapper with provides strongly typed access to values via consistent type coercion.
163
+ */
164
+ getRawConfig(name: string): ConfigTypes;
165
+ }
166
+
167
+ /**
168
+ * Base interface for objects that require lifetime management via explicit disposal.
169
+ * @alpha
170
+ */
171
+ export declare interface IDisposable {
172
+ /**
173
+ * Whether or not the object has been disposed.
174
+ * If true, the object should be considered invalid, and its other state should be disregarded.
175
+ */
176
+ readonly disposed: boolean;
177
+ /**
178
+ * Dispose of the object and its resources.
179
+ * @param error - Optional error indicating the reason for the disposal, if the object was
180
+ * disposed as the result of an error.
181
+ */
182
+ dispose(error?: Error): void;
183
+ }
184
+
185
+ /**
186
+ * Base interface for all errors and warnings emitted the container.
187
+ *
188
+ * @remarks
189
+ *
190
+ * We are in the process of unifying error types across layers of the Framework. For now we have only migrated
191
+ * those from container-definitions. Once fully migrated, this will be a base interface for all errors and
192
+ * warnings emitted by the Fluid Framework. Currently only the container layer is using IErrorBase.
193
+ * Runtime and others will follow soon.
194
+ *
195
+ * @alpha
196
+ */
197
+ export declare interface IErrorBase extends Partial<Error> {
198
+ /**
199
+ * A type tag differentiating kinds of errors emitted by the container.
200
+ *
201
+ * @see See {@link FluidErrorTypes#genericError} for some common examples.
202
+ * - container
203
+ * - runtime
204
+ * - drivers
205
+ */
206
+ readonly errorType: string;
207
+ /**
208
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error | Error.message}
209
+ *
210
+ * @remarks
211
+ *
212
+ * Privacy Note - This is a freeform string that we may not control in all cases (e.g. a dependency throws an error)
213
+ * If there are known cases where this contains privacy-sensitive data it will be tagged and included in the result
214
+ * of getTelemetryProperties. When logging, consider fetching it that way rather than straight from this field.
215
+ */
216
+ readonly message: string;
217
+ /**
218
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name | Error.name}
219
+ */
220
+ readonly name?: string;
221
+ /**
222
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/stack | Error.stack}
223
+ */
224
+ readonly stack?: string;
225
+ /**
226
+ * Returns all properties of this error object that are fit for logging.
227
+ * Some may be tagged to indicate they contain some kind of sensitive data.
228
+ */
229
+ getTelemetryProperties?(): ITelemetryBaseProperties;
230
+ }
231
+
232
+ /**
233
+ * Base interface for error event emitters.
234
+ * @alpha
235
+ */
236
+ export declare interface IErrorEvent extends IEvent {
237
+ /**
238
+ * Base error event emitter signature.
239
+ *
240
+ * @eventProperty
241
+ */
242
+ (event: "error", listener: (message: any) => void): any;
243
+ }
244
+
245
+ /**
246
+ * Base interface for event emitters.
247
+ * @alpha
248
+ */
249
+ export declare interface IEvent {
250
+ /**
251
+ * Base event emitter signature.
252
+ *
253
+ * @remarks The event emitter polyfill and the node event emitter have different event types:
254
+ * `string | symbol` vs. `string | number`.
255
+ *
256
+ * So for our typing we'll contrain to string, that way we work with both.
257
+ *
258
+ * @eventProperty
259
+ */
260
+ (event: string, listener: (...args: any[]) => void): any;
261
+ }
262
+
263
+ /**
264
+ * Base interface for event providers.
265
+ * @alpha
266
+ */
267
+ export declare interface IEventProvider<TEvent extends IEvent> {
268
+ /**
269
+ * Registers a callback to be invoked when the corresponding event is triggered.
270
+ */
271
+ readonly on: IEventTransformer<this, TEvent>;
272
+ /**
273
+ * Registers a callback to be invoked the first time (after registration) the corresponding event is triggered.
274
+ */
275
+ readonly once: IEventTransformer<this, TEvent>;
276
+ /**
277
+ * Removes the corresponding event if it has been registered.
278
+ */
279
+ readonly off: IEventTransformer<this, TEvent>;
280
+ }
281
+
282
+ /**
283
+ * The placeholder type that should be used instead of `this` in events.
284
+ * @alpha
285
+ */
286
+ export declare type IEventThisPlaceHolder = {
287
+ thisPlaceHolder: "thisPlaceHolder";
288
+ };
289
+
290
+ /**
291
+ * This type is a conditional type for transforming all the overloads provided in `TEvent`.
292
+ *
293
+ * @remarks
294
+ * Due to limitations of the TypeScript typing system, we need to handle each number of overload individually.
295
+ * It currently supports the max of 15 event overloads which is more than we use anywhere.
296
+ * At more than 15 overloads we start to hit {@link https://github.com/microsoft/TypeScript/issues/37209 | TS2589}.
297
+ * If we need to move beyond 15 we should evaluate using a mapped type pattern like `{"event":(listenerArgs)=>void}`
298
+ * @alpha
299
+ */
300
+ export declare type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
301
+ (event: infer E0, listener: (...args: infer A0) => void): any;
302
+ (event: infer E1, listener: (...args: infer A1) => void): any;
303
+ (event: infer E2, listener: (...args: infer A2) => void): any;
304
+ (event: infer E3, listener: (...args: infer A3) => void): any;
305
+ (event: infer E4, listener: (...args: infer A4) => void): any;
306
+ (event: infer E5, listener: (...args: infer A5) => void): any;
307
+ (event: infer E6, listener: (...args: infer A6) => void): any;
308
+ (event: infer E7, listener: (...args: infer A7) => void): any;
309
+ (event: infer E8, listener: (...args: infer A8) => void): any;
310
+ (event: infer E9, listener: (...args: infer A9) => void): any;
311
+ (event: infer E10, listener: (...args: infer A10) => void): any;
312
+ (event: infer E11, listener: (...args: infer A11) => void): any;
313
+ (event: infer E12, listener: (...args: infer A12) => void): any;
314
+ (event: infer E13, listener: (...args: infer A13) => void): any;
315
+ (event: infer E14, listener: (...args: infer A14) => 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> & 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 {
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: infer E7, listener: (...args: infer A7) => void): any;
326
+ (event: infer E8, listener: (...args: infer A8) => void): any;
327
+ (event: infer E9, listener: (...args: infer A9) => void): any;
328
+ (event: infer E10, listener: (...args: infer A10) => void): any;
329
+ (event: infer E11, listener: (...args: infer A11) => void): any;
330
+ (event: infer E12, listener: (...args: infer A12) => void): any;
331
+ (event: infer E13, listener: (...args: infer A13) => void): any;
332
+ (event: string, listener: (...args: any[]) => void): any;
333
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> & TransformedEvent<TThis, E12, A12> & TransformedEvent<TThis, E13, A13> : TEvent extends {
334
+ (event: infer E0, listener: (...args: infer A0) => void): any;
335
+ (event: infer E1, listener: (...args: infer A1) => void): any;
336
+ (event: infer E2, listener: (...args: infer A2) => void): any;
337
+ (event: infer E3, listener: (...args: infer A3) => void): any;
338
+ (event: infer E4, listener: (...args: infer A4) => void): any;
339
+ (event: infer E5, listener: (...args: infer A5) => void): any;
340
+ (event: infer E6, listener: (...args: infer A6) => void): any;
341
+ (event: infer E7, listener: (...args: infer A7) => void): any;
342
+ (event: infer E8, listener: (...args: infer A8) => void): any;
343
+ (event: infer E9, listener: (...args: infer A9) => void): any;
344
+ (event: infer E10, listener: (...args: infer A10) => void): any;
345
+ (event: infer E11, listener: (...args: infer A11) => void): any;
346
+ (event: infer E12, listener: (...args: infer A12) => void): any;
347
+ (event: string, listener: (...args: any[]) => void): any;
348
+ } ? 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 {
349
+ (event: infer E0, listener: (...args: infer A0) => void): any;
350
+ (event: infer E1, listener: (...args: infer A1) => void): any;
351
+ (event: infer E2, listener: (...args: infer A2) => void): any;
352
+ (event: infer E3, listener: (...args: infer A3) => void): any;
353
+ (event: infer E4, listener: (...args: infer A4) => void): any;
354
+ (event: infer E5, listener: (...args: infer A5) => void): any;
355
+ (event: infer E6, listener: (...args: infer A6) => void): any;
356
+ (event: infer E7, listener: (...args: infer A7) => void): any;
357
+ (event: infer E8, listener: (...args: infer A8) => void): any;
358
+ (event: infer E9, listener: (...args: infer A9) => void): any;
359
+ (event: infer E10, listener: (...args: infer A10) => void): any;
360
+ (event: infer E11, listener: (...args: infer A11) => void): any;
361
+ (event: string, listener: (...args: any[]) => void): any;
362
+ } ? 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 {
363
+ (event: infer E0, listener: (...args: infer A0) => void): any;
364
+ (event: infer E1, listener: (...args: infer A1) => void): any;
365
+ (event: infer E2, listener: (...args: infer A2) => void): any;
366
+ (event: infer E3, listener: (...args: infer A3) => void): any;
367
+ (event: infer E4, listener: (...args: infer A4) => void): any;
368
+ (event: infer E5, listener: (...args: infer A5) => void): any;
369
+ (event: infer E6, listener: (...args: infer A6) => void): any;
370
+ (event: infer E7, listener: (...args: infer A7) => void): any;
371
+ (event: infer E8, listener: (...args: infer A8) => void): any;
372
+ (event: infer E9, listener: (...args: infer A9) => void): any;
373
+ (event: infer E10, listener: (...args: infer A10) => void): any;
374
+ (event: string, listener: (...args: any[]) => void): any;
375
+ } ? 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 {
376
+ (event: infer E0, listener: (...args: infer A0) => void): any;
377
+ (event: infer E1, listener: (...args: infer A1) => void): any;
378
+ (event: infer E2, listener: (...args: infer A2) => void): any;
379
+ (event: infer E3, listener: (...args: infer A3) => void): any;
380
+ (event: infer E4, listener: (...args: infer A4) => void): any;
381
+ (event: infer E5, listener: (...args: infer A5) => void): any;
382
+ (event: infer E6, listener: (...args: infer A6) => void): any;
383
+ (event: infer E7, listener: (...args: infer A7) => void): any;
384
+ (event: infer E8, listener: (...args: infer A8) => void): any;
385
+ (event: infer E9, listener: (...args: infer A9) => void): any;
386
+ (event: string, listener: (...args: any[]) => void): any;
387
+ } ? 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 {
388
+ (event: infer E0, listener: (...args: infer A0) => void): any;
389
+ (event: infer E1, listener: (...args: infer A1) => void): any;
390
+ (event: infer E2, listener: (...args: infer A2) => void): any;
391
+ (event: infer E3, listener: (...args: infer A3) => void): any;
392
+ (event: infer E4, listener: (...args: infer A4) => void): any;
393
+ (event: infer E5, listener: (...args: infer A5) => void): any;
394
+ (event: infer E6, listener: (...args: infer A6) => void): any;
395
+ (event: infer E7, listener: (...args: infer A7) => void): any;
396
+ (event: infer E8, listener: (...args: infer A8) => void): any;
397
+ (event: string, listener: (...args: any[]) => void): any;
398
+ } ? 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 {
399
+ (event: infer E0, listener: (...args: infer A0) => void): any;
400
+ (event: infer E1, listener: (...args: infer A1) => void): any;
401
+ (event: infer E2, listener: (...args: infer A2) => void): any;
402
+ (event: infer E3, listener: (...args: infer A3) => void): any;
403
+ (event: infer E4, listener: (...args: infer A4) => void): any;
404
+ (event: infer E5, listener: (...args: infer A5) => void): any;
405
+ (event: infer E6, listener: (...args: infer A6) => void): any;
406
+ (event: infer E7, listener: (...args: infer A7) => void): any;
407
+ (event: string, listener: (...args: any[]) => void): any;
408
+ } ? 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 {
409
+ (event: infer E0, listener: (...args: infer A0) => void): any;
410
+ (event: infer E1, listener: (...args: infer A1) => void): any;
411
+ (event: infer E2, listener: (...args: infer A2) => void): any;
412
+ (event: infer E3, listener: (...args: infer A3) => void): any;
413
+ (event: infer E4, listener: (...args: infer A4) => void): any;
414
+ (event: infer E5, listener: (...args: infer A5) => void): any;
415
+ (event: infer E6, listener: (...args: infer A6) => void): any;
416
+ (event: string, listener: (...args: any[]) => void): any;
417
+ } ? 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 {
418
+ (event: infer E0, listener: (...args: infer A0) => void): any;
419
+ (event: infer E1, listener: (...args: infer A1) => void): any;
420
+ (event: infer E2, listener: (...args: infer A2) => void): any;
421
+ (event: infer E3, listener: (...args: infer A3) => void): any;
422
+ (event: infer E4, listener: (...args: infer A4) => void): any;
423
+ (event: infer E5, listener: (...args: infer A5) => void): any;
424
+ (event: string, listener: (...args: any[]) => void): any;
425
+ } ? 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 {
426
+ (event: infer E0, listener: (...args: infer A0) => void): any;
427
+ (event: infer E1, listener: (...args: infer A1) => void): any;
428
+ (event: infer E2, listener: (...args: infer A2) => void): any;
429
+ (event: infer E3, listener: (...args: infer A3) => void): any;
430
+ (event: infer E4, listener: (...args: infer A4) => void): any;
431
+ (event: string, listener: (...args: any[]) => void): any;
432
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> : TEvent extends {
433
+ (event: infer E0, listener: (...args: infer A0) => void): any;
434
+ (event: infer E1, listener: (...args: infer A1) => void): any;
435
+ (event: infer E2, listener: (...args: infer A2) => void): any;
436
+ (event: infer E3, listener: (...args: infer A3) => void): any;
437
+ (event: string, listener: (...args: any[]) => void): any;
438
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> : TEvent extends {
439
+ (event: infer E0, listener: (...args: infer A0) => void): any;
440
+ (event: infer E1, listener: (...args: infer A1) => void): any;
441
+ (event: infer E2, listener: (...args: infer A2) => void): any;
442
+ (event: string, listener: (...args: any[]) => void): any;
443
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> : TEvent extends {
444
+ (event: infer E0, listener: (...args: infer A0) => void): any;
445
+ (event: infer E1, listener: (...args: infer A1) => void): any;
446
+ (event: string, listener: (...args: any[]) => void): any;
447
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> : TEvent extends {
448
+ (event: infer E0, listener: (...args: infer A0) => void): any;
449
+ (event: string, listener: (...args: any[]) => void): any;
450
+ } ? TransformedEvent<TThis, E0, A0> : TransformedEvent<TThis, string, any[]>;
451
+
452
+ /**
453
+ * Data structure used to describe the code to load on the Fluid document.
454
+ *
455
+ * @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetails}
456
+ * to have code loading modules in same package.
457
+ * @internal
458
+ */
459
+ export declare interface IFluidCodeDetails {
460
+ /**
461
+ * The code package to be used on the Fluid document. This is either the package name which will be loaded
462
+ * from a package manager. Or the expanded Fluid package.
463
+ */
464
+ readonly package: string | Readonly<IFluidPackage>;
465
+ /**
466
+ * Configuration details. This includes links to the package manager and base CDNs.
467
+ */
468
+ readonly config?: IFluidCodeDetailsConfig;
469
+ }
470
+
471
+ /**
472
+ * @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetailsComparer}
473
+ * to have code loading modules in same package.
474
+ * @internal
475
+ */
476
+ export declare const IFluidCodeDetailsComparer: keyof IProvideFluidCodeDetailsComparer;
477
+
478
+ /**
479
+ * Provides capability to compare Fluid code details.
480
+ *
481
+ * @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetailsComparer}
482
+ * to have code loading modules in same package.
483
+ * @internal
484
+ */
485
+ export declare interface IFluidCodeDetailsComparer extends IProvideFluidCodeDetailsComparer {
486
+ /**
487
+ * Determines if the `candidate` code details satisfy the constraints specified in `constraint` code details.
488
+ *
489
+ * Similar semantics to:
490
+ * {@link https://github.com/npm/node-semver#usage}
491
+ */
492
+ satisfies(candidate: IFluidCodeDetails, constraint: IFluidCodeDetails): Promise<boolean>;
493
+ /**
494
+ * Returns a number representing the ascending sort order of the `a` and `b` code details:
495
+ *
496
+ * - `< 0` if `a < b`.
497
+ *
498
+ * - `= 0` if `a === b`.
499
+ *
500
+ * - `> 0` if `a > b`.
501
+ *
502
+ * - `undefined` if `a` is not comparable to `b`.
503
+ *
504
+ * Similar semantics to:
505
+ * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description | Array.sort}
506
+ */
507
+ compare(a: IFluidCodeDetails, b: IFluidCodeDetails): Promise<number | undefined>;
508
+ }
509
+
510
+ /**
511
+ * Package manager configuration. Provides a key value mapping of config values.
512
+ *
513
+ * @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetailsConfig}
514
+ * to have code loading modules in same package.
515
+ * @internal
516
+ */
517
+ export declare interface IFluidCodeDetailsConfig {
518
+ readonly [key: string]: string;
519
+ }
520
+
521
+ /**
522
+ * @alpha
523
+ */
524
+ export declare const IFluidHandle: keyof IProvideFluidHandle;
525
+
526
+ /**
527
+ * Handle to a shared {@link FluidObject}.
528
+ * @alpha
529
+ */
530
+ export declare interface IFluidHandle<T = FluidObject & IFluidLoadable> extends IProvideFluidHandle {
531
+ /**
532
+ * @deprecated Do not use handle's path for routing. Use `get` to get the underlying object.
533
+ *
534
+ * The absolute path to the handle context from the root.
535
+ */
536
+ readonly absolutePath: string;
537
+ /**
538
+ * Flag indicating whether or not the entity has services attached.
539
+ */
540
+ readonly isAttached: boolean;
541
+ /**
542
+ * @deprecated To be removed. This is part of an internal API surface and should not be called.
543
+ *
544
+ * Runs through the graph and attach the bounded handles.
545
+ */
546
+ attachGraph(): void;
547
+ /**
548
+ * Returns a promise to the Fluid Object referenced by the handle.
549
+ */
550
+ get(): Promise<T>;
551
+ /**
552
+ * @deprecated To be removed. This is part of an internal API surface and should not be called.
553
+ *
554
+ * Binds the given handle to this one or attach the given handle if this handle is attached.
555
+ * A bound handle will also be attached once this handle is attached.
556
+ */
557
+ bind(handle: IFluidHandle): void;
558
+ }
559
+
560
+ /**
561
+ * @alpha
562
+ */
563
+ export declare const IFluidHandleContext: keyof IProvideFluidHandleContext;
564
+
565
+ /**
566
+ * Describes a routing context from which other `IFluidHandleContext`s are defined.
567
+ * @alpha
568
+ */
569
+ export declare interface IFluidHandleContext extends IProvideFluidHandleContext {
570
+ /**
571
+ * The absolute path to the handle context from the root.
572
+ */
573
+ readonly absolutePath: string;
574
+ /**
575
+ * The parent IFluidHandleContext that has provided a route path to this IFluidHandleContext or undefined
576
+ * at the root.
577
+ */
578
+ readonly routeContext?: IFluidHandleContext;
579
+ /**
580
+ * Flag indicating whether or not the entity has services attached.
581
+ */
582
+ readonly isAttached: boolean;
583
+ /**
584
+ * Runs through the graph and attach the bounded handles.
585
+ */
586
+ attachGraph(): void;
587
+ resolveHandle(request: IRequest): Promise<IResponse>;
588
+ }
589
+
590
+ /**
591
+ * @alpha
592
+ */
593
+ export declare const IFluidLoadable: keyof IProvideFluidLoadable;
594
+
595
+ /**
596
+ * A shared FluidObject has a URL from which it can be referenced
597
+ * @alpha
598
+ */
599
+ export declare interface IFluidLoadable extends IProvideFluidLoadable {
600
+ handle: IFluidHandle;
601
+ }
602
+
603
+ /**
604
+ * Fluid-specific properties expected on a package to be loaded by the code loader.
605
+ * While compatible with the npm package format it is not necessary that that package is an
606
+ * npm package:
607
+ * {@link https://stackoverflow.com/questions/10065564/add-custom-metadata-or-config-to-package-json-is-it-valid}
608
+ *
609
+ * @deprecated In favor of {@link @fluidframework/container-definitions#IFluidPackage}
610
+ * to have code loading modules in same package.
611
+ * @internal
612
+ */
613
+ export declare interface IFluidPackage {
614
+ /**
615
+ * The name of the package that this code represnets
616
+ */
617
+ name: string;
618
+ /**
619
+ * This object represents the Fluid specific properties of the package
620
+ */
621
+ fluid: {
622
+ /**
623
+ * The name of the of the environment. This should be something like browser, or node
624
+ * and contain the necessary targets for loading this code in that environment.
625
+ */
626
+ [environment: string]: undefined | IFluidPackageEnvironment;
627
+ };
628
+ /**
629
+ * General access for extended fields as specific usages will
630
+ * likely have additional infornamation like a definition of
631
+ * compatible versions, or deployment information like rings or rollouts.
632
+ */
633
+ [key: string]: unknown;
634
+ }
635
+
636
+ /**
637
+ * Specifies an environment on Fluid property of an {@link IFluidPackage}.
638
+ *
639
+ * @deprecated In favor of {@link @fluidframework/container-definitions#IFluidPackageEnvironment}
640
+ * to have code loading modules in same package.
641
+ * @internal
642
+ */
643
+ export declare interface IFluidPackageEnvironment {
644
+ /**
645
+ * The name of the target. For a browser environment, this could be umd for scripts
646
+ * or css for styles.
647
+ */
648
+ [target: string]: undefined | {
649
+ /**
650
+ * List of files for the target. These can be relative or absolute.
651
+ * The code loader should resolve relative paths, and validate all
652
+ * full urls.
653
+ */
654
+ files: string[];
655
+ /**
656
+ * General access for extended fields as specific usages will
657
+ * likely have additional infornamation like a definition
658
+ * of Library, the entrypoint for umd packages
659
+ */
660
+ [key: string]: unknown;
661
+ };
662
+ }
663
+
664
+ /**
665
+ * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
666
+ * @alpha
667
+ */
668
+ export declare const IFluidRouter: keyof IProvideFluidRouter;
669
+
670
+ /**
671
+ * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
672
+ * @alpha
673
+ */
674
+ export declare interface IFluidRouter extends IProvideFluidRouter {
675
+ request(request: IRequest): Promise<IResponse>;
676
+ }
677
+
678
+ /**
679
+ * @internal
680
+ */
681
+ export declare const IFluidRunnable: keyof IProvideFluidRunnable;
682
+
683
+ /**
684
+ * @internal
685
+ */
686
+ export declare interface IFluidRunnable {
687
+ run(...args: any[]): Promise<void>;
688
+ stop(reason?: string): void;
689
+ }
690
+
691
+ /**
692
+ * Generic wrapper for an unrecognized/uncategorized error object
693
+ * @internal
694
+ */
695
+ export declare interface IGenericError extends IErrorBase {
696
+ /**
697
+ * {@inheritDoc IErrorBase.errorType}
698
+ */
699
+ readonly errorType: typeof FluidErrorTypes.genericError;
700
+ error?: any;
701
+ }
702
+
703
+ /**
704
+ * An error object that supports exporting its properties to be logged to telemetry
705
+ * @internal
706
+ */
707
+ export declare interface ILoggingError extends Error {
708
+ /**
709
+ * Return all properties from this object that should be logged to telemetry
710
+ */
711
+ getTelemetryProperties(): ITelemetryBaseProperties;
712
+ }
713
+
714
+ /**
715
+ * @deprecated in favor of {@link @fluidframework/container-definitions#IProvideFluidCodeDetailsComparer}
716
+ * to have code loading modules in same package.
717
+ * @internal
718
+ */
719
+ export declare interface IProvideFluidCodeDetailsComparer {
720
+ readonly IFluidCodeDetailsComparer: IFluidCodeDetailsComparer;
721
+ }
722
+
723
+ /**
724
+ * @alpha
725
+ */
726
+ export declare interface IProvideFluidHandle {
727
+ readonly IFluidHandle: IFluidHandle;
728
+ }
729
+
730
+ /**
731
+ * @alpha
732
+ */
733
+ export declare interface IProvideFluidHandleContext {
734
+ readonly IFluidHandleContext: IFluidHandleContext;
735
+ }
736
+
737
+ /**
738
+ * @alpha
739
+ */
740
+ export declare interface IProvideFluidLoadable {
741
+ readonly IFluidLoadable: IFluidLoadable;
742
+ }
743
+
744
+ /**
745
+ * Request routing
746
+ * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
747
+ * @alpha
748
+ */
749
+ export declare interface IProvideFluidRouter {
750
+ readonly IFluidRouter: IFluidRouter;
751
+ }
752
+
753
+ /**
754
+ * @internal
755
+ */
756
+ export declare interface IProvideFluidRunnable {
757
+ readonly IFluidRunnable: IFluidRunnable;
758
+ }
759
+
760
+ /**
761
+ * @alpha
762
+ */
763
+ export declare interface IRequest {
764
+ url: string;
765
+ headers?: IRequestHeader;
766
+ }
767
+
768
+ /**
769
+ * @alpha
770
+ */
771
+ export declare interface IRequestHeader {
772
+ [index: string]: any;
773
+ }
774
+
775
+ /**
776
+ * @alpha
777
+ */
778
+ export declare interface IResponse {
779
+ mimeType: string;
780
+ status: number;
781
+ value: any;
782
+ headers?: {
783
+ [key: string]: any;
784
+ };
785
+ stack?: string;
786
+ }
787
+
788
+ /**
789
+ * @deprecated in favor of {@link @fluidframework/container-definitions#isFluidCodeDetails}
790
+ * to have code loading modules in same package.
791
+ * @internal
792
+ */
793
+ export declare const isFluidCodeDetails: (details: unknown) => details is Readonly<IFluidCodeDetails>;
794
+
795
+ /**
796
+ * Check if the package.json defines a Fluid package.
797
+ *
798
+ * @deprecated in favor of {@link @fluidframework/container-definitions#isFluidPackage}
799
+ * to have code loading modules in same package.
800
+ *
801
+ * @param pkg - The package json data to check if it is a Fluid package.
802
+ * @internal
803
+ */
804
+ export declare const isFluidPackage: (pkg: unknown) => pkg is Readonly<IFluidPackage>;
805
+
806
+ /**
807
+ * @see {@link Tagged} for info on tagging
808
+ *
809
+ * @deprecated Use Tagged\<TelemetryBaseEventPropertyType\>
810
+ * @internal
811
+ */
812
+ export declare interface ITaggedTelemetryPropertyType {
813
+ value: TelemetryEventPropertyType;
814
+ tag: string;
815
+ }
816
+
817
+ /**
818
+ * Base interface for logging telemetry statements.
819
+ * Can contain any number of properties that get serialized as json payload.
820
+ * @param category - category of the event, like "error", "performance", "generic", etc.
821
+ * @param eventName - name of the event.
822
+ * @alpha
823
+ */
824
+ export declare interface ITelemetryBaseEvent extends ITelemetryBaseProperties {
825
+ category: string;
826
+ eventName: string;
827
+ }
828
+
829
+ /**
830
+ * Interface to output telemetry events.
831
+ * Implemented by hosting app / loader
832
+ * @alpha
833
+ */
834
+ export declare interface ITelemetryBaseLogger {
835
+ send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
836
+ minLogLevel?: LogLevel;
837
+ }
838
+
839
+ /**
840
+ * JSON-serializable properties, which will be logged with telemetry.
841
+ * @alpha
842
+ */
843
+ export declare type ITelemetryBaseProperties = ITelemetryProperties;
844
+
845
+ /**
846
+ * Error telemetry event.
847
+ * Maps to category = "error"
848
+ *
849
+ * @deprecated For internal use within FluidFramework, use ITelemetryErrorEventExt in \@fluidframework/telemetry-utils.
850
+ * No replacement intended for FluidFramework consumers.
851
+ * @alpha
852
+ */
853
+ export declare interface ITelemetryErrorEvent extends ITelemetryProperties {
854
+ eventName: string;
855
+ }
856
+
857
+ /**
858
+ * Informational (non-error) telemetry event
859
+ * Maps to category = "generic"
860
+ *
861
+ * @deprecated For internal use within FluidFramework, use ITelemetryGenericEventExt in \@fluidframework/telemetry-utils.
862
+ * No replacement intended for FluidFramework consumers.
863
+ * @alpha
864
+ */
865
+ export declare interface ITelemetryGenericEvent extends ITelemetryProperties {
866
+ eventName: string;
867
+ category?: TelemetryEventCategory;
868
+ }
869
+
870
+ /**
871
+ * ITelemetryLogger interface contains various helper telemetry methods,
872
+ * encoding in one place schemas for various types of Fluid telemetry events.
873
+ * Creates sub-logger that appends properties to all events
874
+ *
875
+ * @deprecated For internal use within FluidFramework, use ITelemetryLoggerExt in \@fluidframework/telemetry-utils.
876
+ * No replacement intended for FluidFramework consumers.
877
+ * @alpha
878
+ */
879
+ export declare interface ITelemetryLogger extends ITelemetryBaseLogger {
880
+ /**
881
+ * Actual implementation that sends telemetry event
882
+ * Implemented by derived classes
883
+ * @param event - Telemetry event to send over
884
+ * @param logLevel - optional level of the log.
885
+ */
886
+ send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
887
+ /**
888
+ * Send information telemetry event
889
+ * @param event - Event to send
890
+ * @param error - optional error object to log
891
+ * @param logLevel - optional level of the log.
892
+ */
893
+ sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
894
+ /**
895
+ * Send error telemetry event
896
+ * @param event - Event to send
897
+ * @param error - optional error object to log
898
+ */
899
+ sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;
900
+ /**
901
+ * Send performance telemetry event
902
+ * @param event - Event to send
903
+ * @param error - optional error object to log
904
+ * @param logLevel - optional level of the log.
905
+ */
906
+ sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
907
+ }
908
+
909
+ /**
910
+ * Performance telemetry event.
911
+ * Maps to category = "performance"
912
+ *
913
+ * @deprecated For internal use within FluidFramework, use ITelemetryPerformanceEventExt in \@fluidframework/telemetry-utils.
914
+ * No replacement intended for FluidFramework consumers.
915
+ * @alpha
916
+ */
917
+ export declare interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {
918
+ duration?: number;
919
+ }
920
+
921
+ /**
922
+ * {@inheritDoc ITelemetryBaseProperties}
923
+ *
924
+ * @deprecated Renamed to {@link ITelemetryBaseProperties}
925
+ * @alpha
926
+ */
927
+ export declare interface ITelemetryProperties {
928
+ [index: string]: TelemetryEventPropertyType | Tagged<TelemetryEventPropertyType>;
929
+ }
930
+
931
+ /**
932
+ * Warning emitted when requests to storage are being throttled
933
+ * @internal
934
+ */
935
+ export declare interface IThrottlingWarning extends IErrorBase {
936
+ /**
937
+ * {@inheritDoc IErrorBase.errorType}
938
+ */
939
+ readonly errorType: typeof FluidErrorTypes.throttlingError;
940
+ readonly retryAfterSeconds: number;
941
+ }
942
+
943
+ /**
944
+ * Error indicating an API is being used improperly resulting in an invalid operation.
945
+ * @internal
946
+ */
947
+ export declare interface IUsageError extends IErrorBase {
948
+ /**
949
+ * {@inheritDoc IErrorBase.errorType}
950
+ */
951
+ readonly errorType: typeof FluidErrorTypes.usageError;
952
+ }
953
+
954
+ /**
955
+ * Specify levels of the logs.
956
+ * @alpha
957
+ */
958
+ export declare const LogLevel: {
959
+ readonly verbose: 10;
960
+ readonly default: 20;
961
+ readonly error: 30;
962
+ };
963
+
964
+ /**
965
+ * Specify a level to the log to filter out logs based on the level.
966
+ * @alpha
967
+ */
968
+ export declare type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
969
+
970
+ /**
971
+ * Does the type replacement by changing types of {@link IEventThisPlaceHolder} to `TThis`
972
+ * @alpha
973
+ */
974
+ export declare type ReplaceIEventThisPlaceHolder<L extends any[], TThis> = L extends any[] ? {
975
+ [K in keyof L]: L[K] extends IEventThisPlaceHolder ? TThis : L[K];
976
+ } : L;
977
+
978
+ /**
979
+ * A property to be logged to telemetry may require a tag indicating the value may contain sensitive data.
980
+ * This type wraps a value of the given type V in an object along with a string tag (type can be further specified as T).
981
+ *
982
+ * This indicates that the value should be organized or handled differently by loggers in various first or third
983
+ * party scenarios. For example, tags are used to mark data that should not be stored in logs for privacy reasons.
984
+ * @alpha
985
+ */
986
+ export declare interface Tagged<V, T extends string = string> {
987
+ value: V;
988
+ tag: T;
989
+ }
990
+
991
+ /**
992
+ * Property types that can be logged.
993
+ *
994
+ * @remarks Logging entire objects is considered extremely dangerous from a telemetry point of view because people can
995
+ * easily add fields to objects that shouldn't be logged and not realize it's going to be logged.
996
+ * General best practice is to explicitly log the fields you care about from objects.
997
+ * @internal
998
+ */
999
+ export declare type TelemetryBaseEventPropertyType = TelemetryEventPropertyType;
1000
+
1001
+ /**
1002
+ * Examples of known categories, however category can be any string for extensibility.
1003
+ *
1004
+ * @deprecated Moved to \@fluidframework/telemetry-utils package
1005
+ * @alpha
1006
+ */
1007
+ export declare type TelemetryEventCategory = "generic" | "error" | "performance";
1008
+
1009
+ /**
1010
+ * {@inheritDoc TelemetryBaseEventPropertyType}
1011
+ *
1012
+ * @deprecated Renamed to {@link TelemetryBaseEventPropertyType}
1013
+ * @alpha
1014
+ */
1015
+ export declare type TelemetryEventPropertyType = string | number | boolean | undefined;
1016
+
1017
+ /**
1018
+ * Transforms the event overload by replacing {@link IEventThisPlaceHolder} with `TThis` in the event listener
1019
+ * arguments and having the overload return `TTHis` as well
1020
+ * @alpha
1021
+ */
1022
+ export declare type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
1023
+
1024
+ export { }