@fluidframework/core-interfaces 2.0.0-dev.7.4.0.216897 → 2.0.0-dev.7.4.0.217212

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 (62) hide show
  1. package/api-report/core-interfaces.api.md +32 -24
  2. package/dist/config.d.ts +35 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +7 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/core-interfaces-alpha.d.ts +511 -38
  7. package/dist/core-interfaces-beta.d.ts +4 -0
  8. package/dist/core-interfaces-public.d.ts +4 -0
  9. package/dist/core-interfaces-untrimmed.d.ts +59 -26
  10. package/dist/disposable.d.ts +1 -1
  11. package/dist/disposable.js.map +1 -1
  12. package/dist/error.d.ts +2 -1
  13. package/dist/error.d.ts.map +1 -1
  14. package/dist/error.js.map +1 -1
  15. package/dist/events.d.ts +8 -8
  16. package/dist/events.js.map +1 -1
  17. package/dist/fluidRouter.d.ts +6 -6
  18. package/dist/fluidRouter.js +1 -1
  19. package/dist/fluidRouter.js.map +1 -1
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/logger.d.ts +8 -8
  24. package/dist/logger.js +1 -1
  25. package/dist/logger.js.map +1 -1
  26. package/dist/provider.d.ts +2 -2
  27. package/dist/provider.js.map +1 -1
  28. package/lib/config.d.ts +35 -0
  29. package/lib/config.d.ts.map +1 -0
  30. package/lib/config.js +6 -0
  31. package/lib/config.js.map +1 -0
  32. package/lib/core-interfaces-alpha.d.ts +511 -38
  33. package/lib/core-interfaces-beta.d.ts +4 -0
  34. package/lib/core-interfaces-public.d.ts +4 -0
  35. package/lib/core-interfaces-untrimmed.d.ts +59 -26
  36. package/lib/disposable.d.ts +1 -1
  37. package/lib/disposable.js.map +1 -1
  38. package/lib/error.d.ts +2 -1
  39. package/lib/error.d.ts.map +1 -1
  40. package/lib/error.js.map +1 -1
  41. package/lib/events.d.ts +8 -8
  42. package/lib/events.js.map +1 -1
  43. package/lib/fluidRouter.d.ts +6 -6
  44. package/lib/fluidRouter.js +1 -1
  45. package/lib/fluidRouter.js.map +1 -1
  46. package/lib/index.d.ts +1 -0
  47. package/lib/index.d.ts.map +1 -1
  48. package/lib/index.js.map +1 -1
  49. package/lib/logger.d.ts +8 -8
  50. package/lib/logger.js +1 -1
  51. package/lib/logger.js.map +1 -1
  52. package/lib/provider.d.ts +2 -2
  53. package/lib/provider.js.map +1 -1
  54. package/package.json +1 -1
  55. package/src/config.ts +36 -0
  56. package/src/disposable.ts +1 -1
  57. package/src/error.ts +2 -1
  58. package/src/events.ts +8 -8
  59. package/src/fluidRouter.ts +6 -6
  60. package/src/index.ts +1 -0
  61. package/src/logger.ts +8 -8
  62. package/src/provider.ts +2 -2
@@ -1,26 +1,386 @@
1
- /* Excluded from this release type: ExtendEventProvider */
1
+ /* Excluded from this release type: ConfigTypes */
2
+
3
+ /**
4
+ * Allows an interface to extend interfaces that already extend an {@link IEventProvider}.
5
+ *
6
+ * @example
7
+ *
8
+ * ``` typescript
9
+ * interface AEvents extends IEvent{
10
+ * (event: "a-event",listener: (a: number)=>void);
11
+ * }
12
+ * interface A extends IEventProvider<AEvents>{
13
+ * a: object;
14
+ * }
15
+ *
16
+ * interface BEvents extends IEvent{
17
+ * (event: "b-event",listener: (b: string)=>void);
18
+ * }
19
+ * interface B extends ExtendEventProvider<AEvents, A, BEvents>{
20
+ * b: boolean;
21
+ * };
22
+ * ```
23
+ *
24
+ * interface B will now extend interface A and its events
25
+ * @alpha
26
+ */
27
+ 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>;
2
28
 
3
29
  /* Excluded from this release type: FluidErrorTypes */
4
30
 
5
- /* Excluded from this release type: FluidObject */
31
+ /**
32
+ * This utility type take interface(s) that follow the FluidObject pattern, and produces
33
+ * a new type that can be used for inspection and discovery of those interfaces.
34
+ *
35
+ * It is meant to be used with types that are known to implement the FluidObject pattern.
36
+ * A common way to specify a type implements the FluidObject pattern is to expose it as a
37
+ * FluidObject without a generic argument.
38
+ *
39
+ * @example
40
+ *
41
+ * For example, if we have an interface like the following:
42
+ *
43
+ * ```typescript
44
+ * interface IProvideFoo{
45
+ * IFoo: IFoo
46
+ * }
47
+ * interface IFoo extends IProvideFoo{
48
+ * foobar();
49
+ * }
50
+ * ```
51
+ *
52
+ * and a function that returns a FluidObject. You would do the following
53
+ *
54
+ * `const maybeFoo: FluidObject<IFoo> = getFluidObject()`;
55
+ *
56
+ * Either IFoo or IProvideFoo are valid generic arguments. In both case
57
+ * maybeFoo will be of type `{IFoo?: IFoo}`. If IFoo is not undefined,
58
+ * then the FluidObject provides IFoo, and it can be used.
59
+ *
60
+ * You can inspect multiple types via a intersection. For example:
61
+ * `FluidObject<IFoo & IBar>`
62
+ * @alpha
63
+ */
64
+ export declare type FluidObject<T = unknown> = {
65
+ [P in FluidObjectProviderKeys<T>]?: T[P];
66
+ };
6
67
 
7
68
  /* Excluded from this release type: FluidObjectKeys */
8
69
 
9
- /* Excluded from this release type: FluidObjectProviderKeys */
10
-
11
- /* Excluded from this release type: IDisposable */
12
-
13
- /* Excluded from this release type: IErrorBase */
14
-
15
- /* Excluded from this release type: IErrorEvent */
16
-
17
- /* Excluded from this release type: IEvent */
18
-
19
- /* Excluded from this release type: IEventProvider */
20
-
21
- /* Excluded from this release type: IEventThisPlaceHolder */
22
-
23
- /* Excluded from this release type: IEventTransformer */
70
+ /**
71
+ * Produces a valid FluidObject key given a type and a property.
72
+ *
73
+ * @remarks
74
+ *
75
+ * A valid FluidObject key is a property that exists on the incoming type
76
+ * as well as on the type of the property itself. For example: `IProvideFoo.IFoo.IFoo`
77
+ * This aligns with the FluidObject pattern expected to be used with all FluidObjects.
78
+ *
79
+ * This utility type is meant for internal use by {@link FluidObject}
80
+ *
81
+ * @example
82
+ *
83
+ * ```typescript
84
+ * interface IProvideFoo{
85
+ * IFoo: IFoo
86
+ * }
87
+ * interface IFoo extends IProvideFoo{
88
+ * foobar();
89
+ * }
90
+ * ```
91
+ *
92
+ * This pattern enables discovery, and delegation in a standard way which is central
93
+ * to FluidObject pattern.
94
+ * @alpha
95
+ */
96
+ 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;
97
+
98
+ /* Excluded from this release type: IConfigProviderBase */
99
+
100
+ /**
101
+ * Base interface for objects that require lifetime management via explicit disposal.
102
+ * @alpha
103
+ */
104
+ export declare interface IDisposable {
105
+ /**
106
+ * Whether or not the object has been disposed.
107
+ * If true, the object should be considered invalid, and its other state should be disregarded.
108
+ */
109
+ readonly disposed: boolean;
110
+ /**
111
+ * Dispose of the object and its resources.
112
+ * @param error - Optional error indicating the reason for the disposal, if the object was
113
+ * disposed as the result of an error.
114
+ */
115
+ dispose(error?: Error): void;
116
+ }
117
+
118
+ /**
119
+ * Base interface for all errors and warnings emitted the container.
120
+ *
121
+ * @remarks
122
+ *
123
+ * We are in the process of unifying error types across layers of the Framework. For now we have only migrated
124
+ * those from container-definitions. Once fully migrated, this will be a base interface for all errors and
125
+ * warnings emitted by the Fluid Framework. Currently only the container layer is using IErrorBase.
126
+ * Runtime and others will follow soon.
127
+ *
128
+ * @alpha
129
+ */
130
+ export declare interface IErrorBase extends Partial<Error> {
131
+ /**
132
+ * A type tag differentiating kinds of errors emitted by the container.
133
+ *
134
+ * @see See {@link FluidErrorTypes#genericError} for some common examples.
135
+ * - container
136
+ * - runtime
137
+ * - drivers
138
+ */
139
+ readonly errorType: string;
140
+ /**
141
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error | Error.message}
142
+ *
143
+ * @remarks
144
+ *
145
+ * Privacy Note - This is a freeform string that we may not control in all cases (e.g. a dependency throws an error)
146
+ * If there are known cases where this contains privacy-sensitive data it will be tagged and included in the result
147
+ * of getTelemetryProperties. When logging, consider fetching it that way rather than straight from this field.
148
+ */
149
+ readonly message: string;
150
+ /**
151
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name | Error.name}
152
+ */
153
+ readonly name?: string;
154
+ /**
155
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/stack | Error.stack}
156
+ */
157
+ readonly stack?: string;
158
+ /**
159
+ * Returns all properties of this error object that are fit for logging.
160
+ * Some may be tagged to indicate they contain some kind of sensitive data.
161
+ */
162
+ getTelemetryProperties?(): ITelemetryBaseProperties;
163
+ }
164
+
165
+ /**
166
+ * Base interface for error event emitters.
167
+ * @alpha
168
+ */
169
+ export declare interface IErrorEvent extends IEvent {
170
+ /**
171
+ * Base error event emitter signature.
172
+ *
173
+ * @eventProperty
174
+ */
175
+ (event: "error", listener: (message: any) => void): any;
176
+ }
177
+
178
+ /**
179
+ * Base interface for event emitters.
180
+ * @alpha
181
+ */
182
+ export declare interface IEvent {
183
+ /**
184
+ * Base event emitter signature.
185
+ *
186
+ * @remarks The event emitter polyfill and the node event emitter have different event types:
187
+ * `string | symbol` vs. `string | number`.
188
+ *
189
+ * So for our typing we'll contrain to string, that way we work with both.
190
+ *
191
+ * @eventProperty
192
+ */
193
+ (event: string, listener: (...args: any[]) => void): any;
194
+ }
195
+
196
+ /**
197
+ * Base interface for event providers.
198
+ * @alpha
199
+ */
200
+ export declare interface IEventProvider<TEvent extends IEvent> {
201
+ /**
202
+ * Registers a callback to be invoked when the corresponding event is triggered.
203
+ */
204
+ readonly on: IEventTransformer<this, TEvent>;
205
+ /**
206
+ * Registers a callback to be invoked the first time (after registration) the corresponding event is triggered.
207
+ */
208
+ readonly once: IEventTransformer<this, TEvent>;
209
+ /**
210
+ * Removes the corresponding event if it has been registered.
211
+ */
212
+ readonly off: IEventTransformer<this, TEvent>;
213
+ }
214
+
215
+ /**
216
+ * The placeholder type that should be used instead of `this` in events.
217
+ * @alpha
218
+ */
219
+ export declare type IEventThisPlaceHolder = {
220
+ thisPlaceHolder: "thisPlaceHolder";
221
+ };
222
+
223
+ /**
224
+ * This type is a conditional type for transforming all the overloads provided in `TEvent`.
225
+ *
226
+ * @remarks
227
+ * Due to limitations of the TypeScript typing system, we need to handle each number of overload individually.
228
+ * It currently supports the max of 15 event overloads which is more than we use anywhere.
229
+ * At more than 15 overloads we start to hit {@link https://github.com/microsoft/TypeScript/issues/37209 | TS2589}.
230
+ * If we need to move beyond 15 we should evaluate using a mapped type pattern like `{"event":(listenerArgs)=>void}`
231
+ * @alpha
232
+ */
233
+ export declare type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
234
+ (event: infer E0, listener: (...args: infer A0) => void): any;
235
+ (event: infer E1, listener: (...args: infer A1) => void): any;
236
+ (event: infer E2, listener: (...args: infer A2) => void): any;
237
+ (event: infer E3, listener: (...args: infer A3) => void): any;
238
+ (event: infer E4, listener: (...args: infer A4) => void): any;
239
+ (event: infer E5, listener: (...args: infer A5) => void): any;
240
+ (event: infer E6, listener: (...args: infer A6) => void): any;
241
+ (event: infer E7, listener: (...args: infer A7) => void): any;
242
+ (event: infer E8, listener: (...args: infer A8) => void): any;
243
+ (event: infer E9, listener: (...args: infer A9) => void): any;
244
+ (event: infer E10, listener: (...args: infer A10) => void): any;
245
+ (event: infer E11, listener: (...args: infer A11) => void): any;
246
+ (event: infer E12, listener: (...args: infer A12) => void): any;
247
+ (event: infer E13, listener: (...args: infer A13) => void): any;
248
+ (event: infer E14, listener: (...args: infer A14) => void): any;
249
+ (event: string, listener: (...args: any[]) => void): any;
250
+ } ? 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 {
251
+ (event: infer E0, listener: (...args: infer A0) => void): any;
252
+ (event: infer E1, listener: (...args: infer A1) => void): any;
253
+ (event: infer E2, listener: (...args: infer A2) => void): any;
254
+ (event: infer E3, listener: (...args: infer A3) => void): any;
255
+ (event: infer E4, listener: (...args: infer A4) => void): any;
256
+ (event: infer E5, listener: (...args: infer A5) => void): any;
257
+ (event: infer E6, listener: (...args: infer A6) => void): any;
258
+ (event: infer E7, listener: (...args: infer A7) => void): any;
259
+ (event: infer E8, listener: (...args: infer A8) => void): any;
260
+ (event: infer E9, listener: (...args: infer A9) => void): any;
261
+ (event: infer E10, listener: (...args: infer A10) => void): any;
262
+ (event: infer E11, listener: (...args: infer A11) => void): any;
263
+ (event: infer E12, listener: (...args: infer A12) => void): any;
264
+ (event: infer E13, listener: (...args: infer A13) => void): any;
265
+ (event: string, listener: (...args: any[]) => void): any;
266
+ } ? 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 {
267
+ (event: infer E0, listener: (...args: infer A0) => void): any;
268
+ (event: infer E1, listener: (...args: infer A1) => void): any;
269
+ (event: infer E2, listener: (...args: infer A2) => void): any;
270
+ (event: infer E3, listener: (...args: infer A3) => void): any;
271
+ (event: infer E4, listener: (...args: infer A4) => void): any;
272
+ (event: infer E5, listener: (...args: infer A5) => void): any;
273
+ (event: infer E6, listener: (...args: infer A6) => void): any;
274
+ (event: infer E7, listener: (...args: infer A7) => void): any;
275
+ (event: infer E8, listener: (...args: infer A8) => void): any;
276
+ (event: infer E9, listener: (...args: infer A9) => void): any;
277
+ (event: infer E10, listener: (...args: infer A10) => void): any;
278
+ (event: infer E11, listener: (...args: infer A11) => void): any;
279
+ (event: infer E12, listener: (...args: infer A12) => void): any;
280
+ (event: string, listener: (...args: any[]) => void): any;
281
+ } ? 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 {
282
+ (event: infer E0, listener: (...args: infer A0) => void): any;
283
+ (event: infer E1, listener: (...args: infer A1) => void): any;
284
+ (event: infer E2, listener: (...args: infer A2) => void): any;
285
+ (event: infer E3, listener: (...args: infer A3) => void): any;
286
+ (event: infer E4, listener: (...args: infer A4) => void): any;
287
+ (event: infer E5, listener: (...args: infer A5) => void): any;
288
+ (event: infer E6, listener: (...args: infer A6) => void): any;
289
+ (event: infer E7, listener: (...args: infer A7) => void): any;
290
+ (event: infer E8, listener: (...args: infer A8) => void): any;
291
+ (event: infer E9, listener: (...args: infer A9) => void): any;
292
+ (event: infer E10, listener: (...args: infer A10) => void): any;
293
+ (event: infer E11, listener: (...args: infer A11) => void): any;
294
+ (event: string, listener: (...args: any[]) => void): any;
295
+ } ? 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 {
296
+ (event: infer E0, listener: (...args: infer A0) => void): any;
297
+ (event: infer E1, listener: (...args: infer A1) => void): any;
298
+ (event: infer E2, listener: (...args: infer A2) => void): any;
299
+ (event: infer E3, listener: (...args: infer A3) => void): any;
300
+ (event: infer E4, listener: (...args: infer A4) => void): any;
301
+ (event: infer E5, listener: (...args: infer A5) => void): any;
302
+ (event: infer E6, listener: (...args: infer A6) => void): any;
303
+ (event: infer E7, listener: (...args: infer A7) => void): any;
304
+ (event: infer E8, listener: (...args: infer A8) => void): any;
305
+ (event: infer E9, listener: (...args: infer A9) => void): any;
306
+ (event: infer E10, listener: (...args: infer A10) => void): any;
307
+ (event: string, listener: (...args: any[]) => void): any;
308
+ } ? 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 {
309
+ (event: infer E0, listener: (...args: infer A0) => void): any;
310
+ (event: infer E1, listener: (...args: infer A1) => void): any;
311
+ (event: infer E2, listener: (...args: infer A2) => void): any;
312
+ (event: infer E3, listener: (...args: infer A3) => void): any;
313
+ (event: infer E4, listener: (...args: infer A4) => void): any;
314
+ (event: infer E5, listener: (...args: infer A5) => void): any;
315
+ (event: infer E6, listener: (...args: infer A6) => void): any;
316
+ (event: infer E7, listener: (...args: infer A7) => void): any;
317
+ (event: infer E8, listener: (...args: infer A8) => void): any;
318
+ (event: infer E9, listener: (...args: infer A9) => void): any;
319
+ (event: string, listener: (...args: any[]) => void): any;
320
+ } ? 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 {
321
+ (event: infer E0, listener: (...args: infer A0) => void): any;
322
+ (event: infer E1, listener: (...args: infer A1) => void): any;
323
+ (event: infer E2, listener: (...args: infer A2) => void): any;
324
+ (event: infer E3, listener: (...args: infer A3) => void): any;
325
+ (event: infer E4, listener: (...args: infer A4) => void): any;
326
+ (event: infer E5, listener: (...args: infer A5) => void): any;
327
+ (event: infer E6, listener: (...args: infer A6) => void): any;
328
+ (event: infer E7, listener: (...args: infer A7) => void): any;
329
+ (event: infer E8, listener: (...args: infer A8) => void): any;
330
+ (event: string, listener: (...args: any[]) => void): any;
331
+ } ? 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 {
332
+ (event: infer E0, listener: (...args: infer A0) => void): any;
333
+ (event: infer E1, listener: (...args: infer A1) => void): any;
334
+ (event: infer E2, listener: (...args: infer A2) => void): any;
335
+ (event: infer E3, listener: (...args: infer A3) => void): any;
336
+ (event: infer E4, listener: (...args: infer A4) => void): any;
337
+ (event: infer E5, listener: (...args: infer A5) => void): any;
338
+ (event: infer E6, listener: (...args: infer A6) => void): any;
339
+ (event: infer E7, listener: (...args: infer A7) => void): any;
340
+ (event: string, listener: (...args: any[]) => void): any;
341
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> : TEvent extends {
342
+ (event: infer E0, listener: (...args: infer A0) => void): any;
343
+ (event: infer E1, listener: (...args: infer A1) => void): any;
344
+ (event: infer E2, listener: (...args: infer A2) => void): any;
345
+ (event: infer E3, listener: (...args: infer A3) => void): any;
346
+ (event: infer E4, listener: (...args: infer A4) => void): any;
347
+ (event: infer E5, listener: (...args: infer A5) => void): any;
348
+ (event: infer E6, listener: (...args: infer A6) => void): any;
349
+ (event: string, listener: (...args: any[]) => void): any;
350
+ } ? 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 {
351
+ (event: infer E0, listener: (...args: infer A0) => void): any;
352
+ (event: infer E1, listener: (...args: infer A1) => void): any;
353
+ (event: infer E2, listener: (...args: infer A2) => void): any;
354
+ (event: infer E3, listener: (...args: infer A3) => void): any;
355
+ (event: infer E4, listener: (...args: infer A4) => void): any;
356
+ (event: infer E5, listener: (...args: infer A5) => void): any;
357
+ (event: string, listener: (...args: any[]) => void): any;
358
+ } ? 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 {
359
+ (event: infer E0, listener: (...args: infer A0) => void): any;
360
+ (event: infer E1, listener: (...args: infer A1) => void): any;
361
+ (event: infer E2, listener: (...args: infer A2) => void): any;
362
+ (event: infer E3, listener: (...args: infer A3) => void): any;
363
+ (event: infer E4, listener: (...args: infer A4) => void): any;
364
+ (event: string, listener: (...args: any[]) => void): any;
365
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> : TEvent extends {
366
+ (event: infer E0, listener: (...args: infer A0) => void): any;
367
+ (event: infer E1, listener: (...args: infer A1) => void): any;
368
+ (event: infer E2, listener: (...args: infer A2) => void): any;
369
+ (event: infer E3, listener: (...args: infer A3) => void): any;
370
+ (event: string, listener: (...args: any[]) => void): any;
371
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> : TEvent extends {
372
+ (event: infer E0, listener: (...args: infer A0) => void): any;
373
+ (event: infer E1, listener: (...args: infer A1) => void): any;
374
+ (event: infer E2, listener: (...args: infer A2) => void): any;
375
+ (event: string, listener: (...args: any[]) => void): any;
376
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> : TEvent extends {
377
+ (event: infer E0, listener: (...args: infer A0) => void): any;
378
+ (event: infer E1, listener: (...args: infer A1) => void): any;
379
+ (event: string, listener: (...args: any[]) => void): any;
380
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> : TEvent extends {
381
+ (event: infer E0, listener: (...args: infer A0) => void): any;
382
+ (event: string, listener: (...args: any[]) => void): any;
383
+ } ? TransformedEvent<TThis, E0, A0> : TransformedEvent<TThis, string, any[]>;
24
384
 
25
385
  /* Excluded from this release type: IFluidCodeDetails */
26
386
 
@@ -38,7 +398,19 @@
38
398
 
39
399
  /* Excluded from this release type: IFluidPackageEnvironment */
40
400
 
41
- /* Excluded from this release type: IFluidRouter */
401
+ /**
402
+ * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
403
+ * @alpha
404
+ */
405
+ export declare const IFluidRouter: keyof IProvideFluidRouter;
406
+
407
+ /**
408
+ * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
409
+ * @alpha
410
+ */
411
+ export declare interface IFluidRouter extends IProvideFluidRouter {
412
+ request(request: IRequest): Promise<IResponse>;
413
+ }
42
414
 
43
415
  /* Excluded from this release type: IFluidRunnable */
44
416
 
@@ -54,15 +426,44 @@
54
426
 
55
427
  /* Excluded from this release type: IProvideFluidLoadable */
56
428
 
57
- /* Excluded from this release type: IProvideFluidRouter */
429
+ /**
430
+ * Request routing
431
+ * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
432
+ * @alpha
433
+ */
434
+ export declare interface IProvideFluidRouter {
435
+ readonly IFluidRouter: IFluidRouter;
436
+ }
58
437
 
59
438
  /* Excluded from this release type: IProvideFluidRunnable */
60
439
 
61
- /* Excluded from this release type: IRequest */
62
-
63
- /* Excluded from this release type: IRequestHeader */
64
-
65
- /* Excluded from this release type: IResponse */
440
+ /**
441
+ * @alpha
442
+ */
443
+ export declare interface IRequest {
444
+ url: string;
445
+ headers?: IRequestHeader;
446
+ }
447
+
448
+ /**
449
+ * @alpha
450
+ */
451
+ export declare interface IRequestHeader {
452
+ [index: string]: any;
453
+ }
454
+
455
+ /**
456
+ * @alpha
457
+ */
458
+ export declare interface IResponse {
459
+ mimeType: string;
460
+ status: number;
461
+ value: any;
462
+ headers?: {
463
+ [key: string]: any;
464
+ };
465
+ stack?: string;
466
+ }
66
467
 
67
468
  /* Excluded from this release type: isFluidCodeDetails */
68
469
 
@@ -70,11 +471,33 @@
70
471
 
71
472
  /* Excluded from this release type: ITaggedTelemetryPropertyType */
72
473
 
73
- /* Excluded from this release type: ITelemetryBaseEvent */
74
-
75
- /* Excluded from this release type: ITelemetryBaseLogger */
76
-
77
- /* Excluded from this release type: ITelemetryBaseProperties */
474
+ /**
475
+ * Base interface for logging telemetry statements.
476
+ * Can contain any number of properties that get serialized as json payload.
477
+ * @param category - category of the event, like "error", "performance", "generic", etc.
478
+ * @param eventName - name of the event.
479
+ * @alpha
480
+ */
481
+ export declare interface ITelemetryBaseEvent extends ITelemetryBaseProperties {
482
+ category: string;
483
+ eventName: string;
484
+ }
485
+
486
+ /**
487
+ * Interface to output telemetry events.
488
+ * Implemented by hosting app / loader
489
+ * @alpha
490
+ */
491
+ export declare interface ITelemetryBaseLogger {
492
+ send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
493
+ minLogLevel?: LogLevel;
494
+ }
495
+
496
+ /**
497
+ * JSON-serializable properties, which will be logged with telemetry.
498
+ * @alpha
499
+ */
500
+ export declare type ITelemetryBaseProperties = ITelemetryProperties;
78
501
 
79
502
  /* Excluded from this release type: ITelemetryErrorEvent */
80
503
 
@@ -84,24 +507,74 @@
84
507
 
85
508
  /* Excluded from this release type: ITelemetryPerformanceEvent */
86
509
 
87
- /* Excluded from this release type: ITelemetryProperties */
510
+ /**
511
+ * {@inheritDoc ITelemetryBaseProperties}
512
+ *
513
+ * @deprecated Renamed to {@link ITelemetryBaseProperties}
514
+ * @alpha
515
+ */
516
+ export declare interface ITelemetryProperties {
517
+ [index: string]: TelemetryEventPropertyType | Tagged<TelemetryEventPropertyType>;
518
+ }
88
519
 
89
520
  /* Excluded from this release type: IThrottlingWarning */
90
521
 
91
522
  /* Excluded from this release type: IUsageError */
92
523
 
93
- /* Excluded from this release type: LogLevel */
94
-
95
- /* Excluded from this release type: ReplaceIEventThisPlaceHolder */
96
-
97
- /* Excluded from this release type: Tagged */
524
+ /**
525
+ * Specify levels of the logs.
526
+ * @alpha
527
+ */
528
+ export declare const LogLevel: {
529
+ readonly verbose: 10;
530
+ readonly default: 20;
531
+ readonly error: 30;
532
+ };
533
+
534
+ /**
535
+ * Specify a level to the log to filter out logs based on the level.
536
+ * @alpha
537
+ */
538
+ export declare type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
539
+
540
+ /**
541
+ * Does the type replacement by changing types of {@link IEventThisPlaceHolder} to `TThis`
542
+ * @alpha
543
+ */
544
+ export declare type ReplaceIEventThisPlaceHolder<L extends any[], TThis> = L extends any[] ? {
545
+ [K in keyof L]: L[K] extends IEventThisPlaceHolder ? TThis : L[K];
546
+ } : L;
547
+
548
+ /**
549
+ * A property to be logged to telemetry may require a tag indicating the value may contain sensitive data.
550
+ * 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).
551
+ *
552
+ * This indicates that the value should be organized or handled differently by loggers in various first or third
553
+ * party scenarios. For example, tags are used to mark data that should not be stored in logs for privacy reasons.
554
+ * @alpha
555
+ */
556
+ export declare interface Tagged<V, T extends string = string> {
557
+ value: V;
558
+ tag: T;
559
+ }
98
560
 
99
561
  /* Excluded from this release type: TelemetryBaseEventPropertyType */
100
562
 
101
563
  /* Excluded from this release type: TelemetryEventCategory */
102
564
 
103
- /* Excluded from this release type: TelemetryEventPropertyType */
104
-
105
- /* Excluded from this release type: TransformedEvent */
565
+ /**
566
+ * {@inheritDoc TelemetryBaseEventPropertyType}
567
+ *
568
+ * @deprecated Renamed to {@link TelemetryBaseEventPropertyType}
569
+ * @alpha
570
+ */
571
+ export declare type TelemetryEventPropertyType = string | number | boolean | undefined;
572
+
573
+ /**
574
+ * Transforms the event overload by replacing {@link IEventThisPlaceHolder} with `TThis` in the event listener
575
+ * arguments and having the overload return `TTHis` as well
576
+ * @alpha
577
+ */
578
+ export declare type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
106
579
 
107
580
  export { }
@@ -1,3 +1,5 @@
1
+ /* Excluded from this release type: ConfigTypes */
2
+
1
3
  /* Excluded from this release type: ExtendEventProvider */
2
4
 
3
5
  /* Excluded from this release type: FluidErrorTypes */
@@ -8,6 +10,8 @@
8
10
 
9
11
  /* Excluded from this release type: FluidObjectProviderKeys */
10
12
 
13
+ /* Excluded from this release type: IConfigProviderBase */
14
+
11
15
  /* Excluded from this release type: IDisposable */
12
16
 
13
17
  /* Excluded from this release type: IErrorBase */
@@ -1,3 +1,5 @@
1
+ /* Excluded from this release type: ConfigTypes */
2
+
1
3
  /* Excluded from this release type: ExtendEventProvider */
2
4
 
3
5
  /* Excluded from this release type: FluidErrorTypes */
@@ -8,6 +10,8 @@
8
10
 
9
11
  /* Excluded from this release type: FluidObjectProviderKeys */
10
12
 
13
+ /* Excluded from this release type: IConfigProviderBase */
14
+
11
15
  /* Excluded from this release type: IDisposable */
12
16
 
13
17
  /* Excluded from this release type: IErrorBase */