@microsoft/teams.apps 0.2.7

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 (132) hide show
  1. package/README.md +35 -0
  2. package/dist/api.d.ts +21 -0
  3. package/dist/api.js +66 -0
  4. package/dist/app.d.ts +1137 -0
  5. package/dist/app.embed.d.ts +24 -0
  6. package/dist/app.embed.js +83 -0
  7. package/dist/app.events.d.ts +14 -0
  8. package/dist/app.events.js +51 -0
  9. package/dist/app.js +411 -0
  10. package/dist/app.oauth.d.ts +13 -0
  11. package/dist/app.oauth.js +106 -0
  12. package/dist/app.plugins.d.ts +24 -0
  13. package/dist/app.plugins.js +96 -0
  14. package/dist/app.process.d.ts +11 -0
  15. package/dist/app.process.js +141 -0
  16. package/dist/app.routing.d.ts +22 -0
  17. package/dist/app.routing.js +40 -0
  18. package/dist/container/container.d.ts +37 -0
  19. package/dist/container/container.js +46 -0
  20. package/dist/container/index.d.ts +2 -0
  21. package/dist/container/index.js +19 -0
  22. package/dist/container/provider.d.ts +9 -0
  23. package/dist/container/provider.js +11 -0
  24. package/dist/contexts/activity-error.d.ts +8 -0
  25. package/dist/contexts/activity-error.js +3 -0
  26. package/dist/contexts/activity-signin.d.ts +8 -0
  27. package/dist/contexts/activity-signin.js +3 -0
  28. package/dist/contexts/activity.d.ts +117 -0
  29. package/dist/contexts/activity.js +133 -0
  30. package/dist/contexts/client.d.ts +53 -0
  31. package/dist/contexts/client.js +3 -0
  32. package/dist/contexts/function.d.ts +17 -0
  33. package/dist/contexts/function.js +3 -0
  34. package/dist/contexts/index.d.ts +5 -0
  35. package/dist/contexts/index.js +22 -0
  36. package/dist/events/activity-response.d.ts +16 -0
  37. package/dist/events/activity-response.js +3 -0
  38. package/dist/events/activity-sent.d.ts +16 -0
  39. package/dist/events/activity-sent.js +3 -0
  40. package/dist/events/activity.d.ts +20 -0
  41. package/dist/events/activity.js +3 -0
  42. package/dist/events/error.d.ts +16 -0
  43. package/dist/events/error.js +3 -0
  44. package/dist/events/index.d.ts +18 -0
  45. package/dist/events/index.js +21 -0
  46. package/dist/index.d.ts +7 -0
  47. package/dist/index.js +47 -0
  48. package/dist/manifest.d.ts +1241 -0
  49. package/dist/manifest.js +3 -0
  50. package/dist/middleware/entra-token-validator.d.ts +75 -0
  51. package/dist/middleware/entra-token-validator.js +169 -0
  52. package/dist/middleware/index.d.ts +3 -0
  53. package/dist/middleware/index.js +22 -0
  54. package/dist/middleware/strip-mentions-text.d.ts +3 -0
  55. package/dist/middleware/strip-mentions-text.js +48 -0
  56. package/dist/middleware/with-client-auth.d.ts +13 -0
  57. package/dist/middleware/with-client-auth.js +40 -0
  58. package/dist/oauth.d.ts +9 -0
  59. package/dist/oauth.js +7 -0
  60. package/dist/plugins/http/index.d.ts +2 -0
  61. package/dist/plugins/http/index.js +19 -0
  62. package/dist/plugins/http/plugin.d.ts +986 -0
  63. package/dist/plugins/http/plugin.js +238 -0
  64. package/dist/plugins/http/stream.d.ts +956 -0
  65. package/dist/plugins/http/stream.js +128 -0
  66. package/dist/plugins/index.d.ts +1 -0
  67. package/dist/plugins/index.js +18 -0
  68. package/dist/router.d.ts +34 -0
  69. package/dist/router.js +91 -0
  70. package/dist/routes/activity.d.ts +8 -0
  71. package/dist/routes/activity.js +3 -0
  72. package/dist/routes/conversation-update.d.ts +6 -0
  73. package/dist/routes/conversation-update.js +3 -0
  74. package/dist/routes/event.d.ts +17 -0
  75. package/dist/routes/event.js +11 -0
  76. package/dist/routes/index.d.ts +20 -0
  77. package/dist/routes/index.js +24 -0
  78. package/dist/routes/install.d.ts +8 -0
  79. package/dist/routes/install.js +3 -0
  80. package/dist/routes/invoke/file-consent.d.ts +6 -0
  81. package/dist/routes/invoke/file-consent.js +3 -0
  82. package/dist/routes/invoke/index.d.ts +39 -0
  83. package/dist/routes/invoke/index.js +45 -0
  84. package/dist/routes/invoke/message-extension-submit.d.ts +6 -0
  85. package/dist/routes/invoke/message-extension-submit.js +3 -0
  86. package/dist/routes/invoke/message-submit.d.ts +10 -0
  87. package/dist/routes/invoke/message-submit.js +3 -0
  88. package/dist/routes/message-delete.d.ts +6 -0
  89. package/dist/routes/message-delete.js +3 -0
  90. package/dist/routes/message-update.d.ts +6 -0
  91. package/dist/routes/message-update.js +3 -0
  92. package/dist/types/constructor.d.ts +7 -0
  93. package/dist/types/constructor.js +3 -0
  94. package/dist/types/event-handler.d.ts +1 -0
  95. package/dist/types/event-handler.js +3 -0
  96. package/dist/types/event.d.ts +11 -0
  97. package/dist/types/event.js +3 -0
  98. package/dist/types/index.d.ts +7 -0
  99. package/dist/types/index.js +24 -0
  100. package/dist/types/plugin/decorators/dependency.d.ts +135 -0
  101. package/dist/types/plugin/decorators/dependency.js +49 -0
  102. package/dist/types/plugin/decorators/event.d.ts +18 -0
  103. package/dist/types/plugin/decorators/event.js +24 -0
  104. package/dist/types/plugin/decorators/index.d.ts +3 -0
  105. package/dist/types/plugin/decorators/index.js +12 -0
  106. package/dist/types/plugin/decorators/plugin.d.ts +25 -0
  107. package/dist/types/plugin/decorators/plugin.js +23 -0
  108. package/dist/types/plugin/index.d.ts +8 -0
  109. package/dist/types/plugin/index.js +25 -0
  110. package/dist/types/plugin/plugin-activity-event.d.ts +20 -0
  111. package/dist/types/plugin/plugin-activity-event.js +3 -0
  112. package/dist/types/plugin/plugin-activity-response-event.d.ts +20 -0
  113. package/dist/types/plugin/plugin-activity-response-event.js +3 -0
  114. package/dist/types/plugin/plugin-activity-sent-event.d.ts +16 -0
  115. package/dist/types/plugin/plugin-activity-sent-event.js +3 -0
  116. package/dist/types/plugin/plugin-error-event.d.ts +20 -0
  117. package/dist/types/plugin/plugin-error-event.js +3 -0
  118. package/dist/types/plugin/plugin-start-event.d.ts +11 -0
  119. package/dist/types/plugin/plugin-start-event.js +3 -0
  120. package/dist/types/plugin/plugin.d.ts +74 -0
  121. package/dist/types/plugin/plugin.js +3 -0
  122. package/dist/types/plugin/sender.d.ts +18 -0
  123. package/dist/types/plugin/sender.js +3 -0
  124. package/dist/types/prefixed.d.ts +3 -0
  125. package/dist/types/prefixed.js +3 -0
  126. package/dist/types/route-handler.d.ts +2 -0
  127. package/dist/types/route-handler.js +3 -0
  128. package/dist/types/streamer.d.ts +31 -0
  129. package/dist/types/streamer.js +3 -0
  130. package/dist/types/suffixed.d.ts +3 -0
  131. package/dist/types/suffixed.js +3 -0
  132. package/package.json +70 -0
@@ -0,0 +1,1241 @@
1
+ export type Manifest = {
2
+ $schema?: string;
3
+ /**
4
+ * A color to use in conjunction with the icon. The value must be a valid HTML color code
5
+ * starting with '#', for example `#4464ee`.
6
+ */
7
+ accentColor: string;
8
+ activities?: Activities;
9
+ /**
10
+ * Specify and consolidates authorization related information for the App.
11
+ */
12
+ authorization?: ManifestAuthorization;
13
+ /**
14
+ * The set of bots for this app. Currently only one bot per app is supported.
15
+ */
16
+ bots?: Bot[];
17
+ /**
18
+ * The set of compose extensions for this app. Currently only one compose extension per app
19
+ * is supported.
20
+ */
21
+ composeExtensions?: ComposeExtension[];
22
+ /**
23
+ * A list of tenant configured properties for an app
24
+ */
25
+ configurableProperties?: ConfigurableProperty[];
26
+ /**
27
+ * These are tabs users can optionally add to their channels and 1:1 or group chats and
28
+ * require extra configuration before they are added. Configurable tabs are not supported in
29
+ * the personal scope. Currently only one configurable tab per app is supported.
30
+ */
31
+ configurableTabs?: ConfigurableTab[];
32
+ /**
33
+ * The set of Office365 connectors for this app. Currently only one connector per app is
34
+ * supported.
35
+ */
36
+ connectors?: Connector[];
37
+ copilotAgents?: CopilotAgents;
38
+ /**
39
+ * Defines the list of cards which could be pinned to dashboards that can provide summarized
40
+ * view of information relevant to user.
41
+ */
42
+ dashboardCards?: DashboardCard[];
43
+ /**
44
+ * A value indicating whether an app is blocked by default until admin allows it
45
+ */
46
+ defaultBlockUntilAdminAction?: boolean;
47
+ /**
48
+ * When a group install scope is selected, this will define the default capability when the
49
+ * user installs the app
50
+ */
51
+ defaultGroupCapability?: DefaultGroupCapability;
52
+ /**
53
+ * The install scope defined for this app by default. This will be the option displayed on
54
+ * the button when a user tries to add the app
55
+ */
56
+ defaultInstallScope?: DefaultInstallScope;
57
+ description: Description;
58
+ developer: Developer;
59
+ /**
60
+ * Specify the native features on a user's device that your app may request access to.
61
+ */
62
+ devicePermissions?: DevicePermission[];
63
+ extensions?: ElementExtension[];
64
+ /**
65
+ * Specify the app's Graph connector configuration. If this is present then
66
+ * webApplicationInfo.id must also be specified.
67
+ */
68
+ graphConnector?: GraphConnector;
69
+ icons: Icons;
70
+ /**
71
+ * A unique identifier for this app. This id must be a GUID.
72
+ */
73
+ id: string;
74
+ /**
75
+ * A value indicating whether a personal app is rendered without a tab header-bar
76
+ */
77
+ isFullScreen?: boolean;
78
+ localizationInfo?: LocalizationInfo;
79
+ /**
80
+ * The version of the schema this manifest is using. This schema version supports extending
81
+ * Teams apps to other parts of the Microsoft 365 ecosystem. More info at
82
+ * https://aka.ms/extendteamsapps.
83
+ */
84
+ manifestVersion: ManifestVersion;
85
+ /**
86
+ * Specify meeting extension definition.
87
+ */
88
+ meetingExtensionDefinition?: MeetingExtensionDefinition;
89
+ name: Name;
90
+ /**
91
+ * Specifies the permissions the app requests from users.
92
+ */
93
+ permissions?: Permission[];
94
+ /**
95
+ * The url to the page that provides additional app information for the admins
96
+ */
97
+ publisherDocsUrl?: string;
98
+ /**
99
+ * A value indicating whether or not show loading indicator when app/tab is loading
100
+ */
101
+ showLoadingIndicator?: boolean;
102
+ /**
103
+ * A set of tabs that may be 'pinned' by default, without the user adding them manually.
104
+ * Static tabs declared in personal scope are always pinned to the app's personal
105
+ * experience. Static tabs do not currently support the 'teams' scope.
106
+ */
107
+ staticTabs?: StaticTab[];
108
+ /**
109
+ * Subscription offer associated with this app.
110
+ */
111
+ subscriptionOffer?: SubscriptionOffer;
112
+ /**
113
+ * List of 'non-standard' channel types that the app supports. Note: Channels of standard
114
+ * type are supported by default if the app supports team scope.
115
+ */
116
+ supportedChannelTypes?: SupportedChannelType[];
117
+ /**
118
+ * A list of valid domains from which the tabs expect to load any content. Domain listings
119
+ * can include wildcards, for example `*.example.com`. If your tab configuration or content
120
+ * UI needs to navigate to any other domain besides the one use for tab configuration, that
121
+ * domain must be specified here.
122
+ */
123
+ validDomains?: string[];
124
+ /**
125
+ * The version of the app. Changes to your manifest should cause a version change. This
126
+ * version string must follow the semver standard (http://semver.org).
127
+ */
128
+ version: string;
129
+ /**
130
+ * Specify your AAD App ID and Graph information to help users seamlessly sign into your AAD
131
+ * app.
132
+ */
133
+ webApplicationInfo?: WebApplicationInfo;
134
+ };
135
+ export type Activities = {
136
+ /**
137
+ * Specify the types of activites that your app can post to a users activity feed
138
+ */
139
+ activityTypes?: ActivityType[];
140
+ };
141
+ export type ActivityType = {
142
+ description: string;
143
+ templateText: string;
144
+ type: string;
145
+ };
146
+ /**
147
+ * Specify and consolidates authorization related information for the App.
148
+ */
149
+ export type ManifestAuthorization = {
150
+ /**
151
+ * List of permissions that the app needs to function.
152
+ */
153
+ permissions?: Permissions;
154
+ };
155
+ /**
156
+ * List of permissions that the app needs to function.
157
+ */
158
+ export type Permissions = {
159
+ /**
160
+ * Permissions that must be granted on a per resource instance basis.
161
+ */
162
+ resourceSpecific?: ResourceSpecific[];
163
+ };
164
+ export type ResourceSpecific = {
165
+ /**
166
+ * The name of the resource-specific permission.
167
+ */
168
+ name: string;
169
+ /**
170
+ * The type of the resource-specific permission: delegated vs application.
171
+ */
172
+ type: ResourceSpecificType;
173
+ };
174
+ /**
175
+ * The type of the resource-specific permission: delegated vs application.
176
+ */
177
+ export type ResourceSpecificType = 'Application' | 'Delegated';
178
+ export type Bot = {
179
+ /**
180
+ * The Microsoft App ID specified for the bot in the Bot Framework portal
181
+ * (https://dev.botframework.com/bots)
182
+ */
183
+ botId: string;
184
+ /**
185
+ * The list of commands that the bot supplies, including their usage, description, and the
186
+ * scope for which the commands are valid. A separate command list should be used for each
187
+ * scope.
188
+ */
189
+ commandLists?: CommandList[];
190
+ configuration?: Configuration;
191
+ /**
192
+ * A value indicating whether or not the bot is a one-way notification only bot, as opposed
193
+ * to a conversational bot.
194
+ */
195
+ isNotificationOnly?: boolean;
196
+ /**
197
+ * This value describes whether or not the bot utilizes a user hint to add the bot to a
198
+ * specific channel.
199
+ */
200
+ needsChannelSelector?: boolean;
201
+ /**
202
+ * Specifies whether the bot offers an experience in the context of a channel in a team, in
203
+ * a 1:1 or group chat, or in an experience scoped to an individual user alone. These
204
+ * options are non-exclusive.
205
+ */
206
+ scopes: CommandListScope[];
207
+ /**
208
+ * A value indicating whether the bot supports audio calling.
209
+ */
210
+ supportsCalling?: boolean;
211
+ /**
212
+ * A value indicating whether the bot supports uploading/downloading of files.
213
+ */
214
+ supportsFiles?: boolean;
215
+ /**
216
+ * A value indicating whether the bot supports video calling.
217
+ */
218
+ supportsVideo?: boolean;
219
+ };
220
+ export type CommandList = {
221
+ commands: CommandListCommand[];
222
+ /**
223
+ * Specifies the scopes for which the command list is valid
224
+ */
225
+ scopes: CommandListScope[];
226
+ };
227
+ export type CommandListCommand = {
228
+ /**
229
+ * A simple text description or an example of the command syntax and its arguments.
230
+ */
231
+ description: string;
232
+ /**
233
+ * The bot command name
234
+ */
235
+ title: string;
236
+ };
237
+ export type CommandListScope = 'team' | 'personal' | 'groupChat';
238
+ export type Configuration = {
239
+ groupChat?: GroupChat;
240
+ team?: GroupChat;
241
+ };
242
+ export type GroupChat = {
243
+ fetchTask?: boolean;
244
+ taskInfo?: TaskInfo;
245
+ };
246
+ export type TaskInfo = {
247
+ /**
248
+ * Dialog height - either a number in pixels or default layout such as 'large', 'medium', or
249
+ * 'small'
250
+ */
251
+ height?: string;
252
+ /**
253
+ * Initial dialog title
254
+ */
255
+ title?: string;
256
+ /**
257
+ * Initial webview URL
258
+ */
259
+ url?: string;
260
+ /**
261
+ * Dialog width - either a number in pixels or default layout such as 'large', 'medium', or
262
+ * 'small'
263
+ */
264
+ width?: string;
265
+ };
266
+ export type ComposeExtension = {
267
+ /**
268
+ * A relative file path to the api specification file in the manifest package.
269
+ */
270
+ apiSpecificationFile?: string;
271
+ /**
272
+ * Object capturing authorization information.
273
+ */
274
+ authorization?: ComposeExtensionAuthorization;
275
+ /**
276
+ * The Microsoft App ID specified for the bot powering the compose extension in the Bot
277
+ * Framework portal (https://dev.botframework.com/bots)
278
+ */
279
+ botId?: string;
280
+ /**
281
+ * A value indicating whether the configuration of a compose extension can be updated by the
282
+ * user.
283
+ */
284
+ canUpdateConfiguration?: boolean | null;
285
+ commands?: ComposeExtensionCommand[];
286
+ /**
287
+ * Type of the compose extension.
288
+ */
289
+ composeExtensionType?: ComposeExtensionType;
290
+ /**
291
+ * A list of handlers that allow apps to be invoked when certain conditions are met
292
+ */
293
+ messageHandlers?: MessageHandler[];
294
+ };
295
+ /**
296
+ * Object capturing authorization information.
297
+ */
298
+ export type ComposeExtensionAuthorization = {
299
+ /**
300
+ * Object capturing details needed to do service auth. It will be only present when auth
301
+ * type is apiSecretServiceAuth.
302
+ */
303
+ apiSecretServiceAuthConfiguration?: APISecretServiceAuthConfiguration;
304
+ /**
305
+ * Enum of possible authentication types.
306
+ */
307
+ authType?: AuthType;
308
+ /**
309
+ * Object capturing details needed to do single aad auth flow. It will be only present when
310
+ * auth type is entraId.
311
+ */
312
+ microsoftEntraConfiguration?: MicrosoftEntraConfiguration;
313
+ };
314
+ /**
315
+ * Object capturing details needed to do service auth. It will be only present when auth
316
+ * type is apiSecretServiceAuth.
317
+ */
318
+ export type APISecretServiceAuthConfiguration = {
319
+ /**
320
+ * Registration id returned when developer submits the api key through Developer Portal.
321
+ */
322
+ apiSecretRegistrationId?: string;
323
+ };
324
+ /**
325
+ * Enum of possible authentication types.
326
+ */
327
+ export type AuthType = 'none' | 'apiSecretServiceAuth' | 'microsoftEntra';
328
+ /**
329
+ * Object capturing details needed to do single aad auth flow. It will be only present when
330
+ * auth type is entraId.
331
+ */
332
+ export type MicrosoftEntraConfiguration = {
333
+ /**
334
+ * Boolean indicating whether single sign on is configured for the app.
335
+ */
336
+ supportsSingleSignOn?: boolean;
337
+ };
338
+ export type ComposeExtensionCommand = {
339
+ /**
340
+ * A relative file path for api response rendering template file.
341
+ */
342
+ apiResponseRenderingTemplateFile?: string;
343
+ /**
344
+ * Context where the command would apply
345
+ */
346
+ context?: CommandContext[];
347
+ /**
348
+ * Description of the command.
349
+ */
350
+ description?: string;
351
+ /**
352
+ * A boolean value that indicates if it should fetch task module dynamically
353
+ */
354
+ fetchTask?: boolean;
355
+ /**
356
+ * Id of the command.
357
+ */
358
+ id: string;
359
+ /**
360
+ * A boolean value that indicates if the command should be run once initially with no
361
+ * parameter.
362
+ */
363
+ initialRun?: boolean;
364
+ parameters?: Parameter[];
365
+ samplePrompts?: SamplePrompt[];
366
+ /**
367
+ * Semantic description for the command.
368
+ */
369
+ semanticDescription?: string;
370
+ taskInfo?: TaskInfo;
371
+ /**
372
+ * Title of the command.
373
+ */
374
+ title: string;
375
+ /**
376
+ * Type of the command
377
+ */
378
+ type?: CommandType;
379
+ };
380
+ export type CommandContext = 'compose' | 'commandBox' | 'message';
381
+ export type Parameter = {
382
+ /**
383
+ * The choice options for the parameter
384
+ */
385
+ choices?: Choice[];
386
+ /**
387
+ * Description of the parameter.
388
+ */
389
+ description?: string;
390
+ /**
391
+ * Type of the parameter
392
+ */
393
+ inputType?: InputType;
394
+ /**
395
+ * The value indicates if this parameter is a required field.
396
+ */
397
+ isRequired?: boolean;
398
+ /**
399
+ * Name of the parameter.
400
+ */
401
+ name: string;
402
+ /**
403
+ * Semantic description for the parameter.
404
+ */
405
+ semanticDescription?: string;
406
+ /**
407
+ * Title of the parameter.
408
+ */
409
+ title: string;
410
+ /**
411
+ * Initial value for the parameter
412
+ */
413
+ value?: string;
414
+ };
415
+ export type Choice = {
416
+ /**
417
+ * Title of the choice
418
+ */
419
+ title: string;
420
+ /**
421
+ * Value of the choice
422
+ */
423
+ value: string;
424
+ };
425
+ /**
426
+ * Type of the parameter
427
+ */
428
+ export type InputType = 'text' | 'textarea' | 'number' | 'date' | 'time' | 'toggle' | 'choiceset';
429
+ export type SamplePrompt = {
430
+ /**
431
+ * This string will hold the sample prompt
432
+ */
433
+ text: string;
434
+ };
435
+ /**
436
+ * Type of the command
437
+ */
438
+ export type CommandType = 'query' | 'action';
439
+ /**
440
+ * Type of the compose extension.
441
+ */
442
+ export type ComposeExtensionType = 'botBased' | 'apiBased';
443
+ export type MessageHandler = {
444
+ /**
445
+ * Type of the message handler
446
+ */
447
+ type: MessageHandlerType;
448
+ value: Value;
449
+ };
450
+ /**
451
+ * Type of the message handler
452
+ */
453
+ export type MessageHandlerType = 'link';
454
+ export type Value = {
455
+ /**
456
+ * A list of domains that the link message handler can register for, and when they are
457
+ * matched the app will be invoked
458
+ */
459
+ domains?: string[];
460
+ /**
461
+ * A boolean that indicates whether the app's link message handler supports anonymous invoke
462
+ * flow.
463
+ */
464
+ supportsAnonymizedPayloads?: boolean;
465
+ [property: string]: any;
466
+ };
467
+ export type ConfigurableProperty = 'name' | 'shortDescription' | 'longDescription' | 'smallImageUrl' | 'largeImageUrl' | 'accentColor' | 'developerUrl' | 'privacyUrl' | 'termsOfUseUrl';
468
+ export type ConfigurableTab = {
469
+ /**
470
+ * A value indicating whether an instance of the tab's configuration can be updated by the
471
+ * user after creation.
472
+ */
473
+ canUpdateConfiguration?: boolean;
474
+ /**
475
+ * The url to use when configuring the tab.
476
+ */
477
+ configurationUrl: string;
478
+ /**
479
+ * The set of contextItem scopes that a tab belong to
480
+ */
481
+ context?: ConfigurableTabContext[];
482
+ /**
483
+ * The set of meetingSurfaceItem scopes that a tab belong to
484
+ */
485
+ meetingSurfaces?: MeetingSurface[];
486
+ /**
487
+ * Specifies whether the tab offers an experience in the context of a channel in a team, in
488
+ * a 1:1 or group chat, or in an experience scoped to an individual user alone. These
489
+ * options are non-exclusive. Currently, configurable tabs are only supported in the teams
490
+ * and groupchats scopes.
491
+ */
492
+ scopes: ConfigurableTabScope[];
493
+ /**
494
+ * A relative file path to a tab preview image for use in SharePoint. Size 1024x768.
495
+ */
496
+ sharePointPreviewImage?: string;
497
+ /**
498
+ * Defines how your tab will be made available in SharePoint.
499
+ */
500
+ supportedSharePointHosts?: SupportedSharePointHost[];
501
+ };
502
+ export type ConfigurableTabContext = 'personalTab' | 'channelTab' | 'privateChatTab' | 'meetingChatTab' | 'meetingDetailsTab' | 'meetingSidePanel' | 'meetingStage';
503
+ export type MeetingSurface = 'sidePanel' | 'stage';
504
+ export type ConfigurableTabScope = 'team' | 'groupChat';
505
+ export type SupportedSharePointHost = 'sharePointFullPage' | 'sharePointWebPart';
506
+ export type Connector = {
507
+ /**
508
+ * The url to use for configuring the connector using the inline configuration experience.
509
+ */
510
+ configurationUrl?: string;
511
+ /**
512
+ * A unique identifier for the connector which matches its ID in the Connectors Developer
513
+ * Portal.
514
+ */
515
+ connectorId: string;
516
+ /**
517
+ * Specifies whether the connector offers an experience in the context of a channel in a
518
+ * team, or an experience scoped to an individual user alone. Currently, only the team scope
519
+ * is supported.
520
+ */
521
+ scopes: ConnectorScope[];
522
+ };
523
+ export type ConnectorScope = 'team';
524
+ export type CopilotAgents = {
525
+ /**
526
+ * An array of declarative agent elements references. Currently, only one declarative agent
527
+ * per application is supported.
528
+ */
529
+ declarativeAgents: DeclarativeAgentRef[];
530
+ };
531
+ /**
532
+ * A reference to a declarative agent element. The element's definition is in a separate
533
+ * file.
534
+ */
535
+ export type DeclarativeAgentRef = {
536
+ /**
537
+ * Relative file path to this declarative agent element file in the application package.
538
+ */
539
+ file: string;
540
+ /**
541
+ * A unique identifier for this declarative agent element.
542
+ */
543
+ id: string;
544
+ };
545
+ /**
546
+ * Cards wich could be pinned to dashboard providing summarized view of information relevant
547
+ * to user.
548
+ */
549
+ export type DashboardCard = {
550
+ contentSource: DashboardCardContentSource;
551
+ /**
552
+ * Rendering Size for dashboard card.
553
+ */
554
+ defaultSize: DefaultSize;
555
+ /**
556
+ * Description of the card.Maximum length is 255 characters.
557
+ */
558
+ description: string;
559
+ /**
560
+ * Represents the name of the card. Maximum length is 255 characters.
561
+ */
562
+ displayName: string;
563
+ icon?: DashboardCardIcon;
564
+ /**
565
+ * Unique Id for the card. Must be unique inside the app.
566
+ */
567
+ id: string;
568
+ /**
569
+ * Id of the group in the card picker. This must be guid.
570
+ */
571
+ pickerGroupId: string;
572
+ };
573
+ /**
574
+ * Represents a configuration for the source of the card’s content.
575
+ */
576
+ export type DashboardCardContentSource = {
577
+ /**
578
+ * The configuration for the bot source. Required if sourceType is set to bot.
579
+ */
580
+ botConfiguration?: BotConfiguration;
581
+ /**
582
+ * The content of the dashboard card is sourced from a bot.
583
+ */
584
+ sourceType?: SourceType;
585
+ };
586
+ /**
587
+ * The configuration for the bot source. Required if sourceType is set to bot.
588
+ */
589
+ export type BotConfiguration = {
590
+ /**
591
+ * The unique Microsoft app ID for the bot as registered with the Bot Framework.
592
+ */
593
+ botId?: string;
594
+ };
595
+ /**
596
+ * The content of the dashboard card is sourced from a bot.
597
+ */
598
+ export type SourceType = 'bot';
599
+ /**
600
+ * Rendering Size for dashboard card.
601
+ */
602
+ export type DefaultSize = 'medium' | 'large';
603
+ /**
604
+ * Represents a configuration for the source of the card’s content
605
+ */
606
+ export type DashboardCardIcon = {
607
+ /**
608
+ * The icon for the card, to be displayed in the toolbox and card bar, represented as URL.
609
+ */
610
+ iconUrl?: string;
611
+ /**
612
+ * Office UI Fabric/Fluent UI icon friendly name for the card. This value will be used if
613
+ * ‘iconUrl’ is not specified.
614
+ */
615
+ officeUIFabricIconName?: string;
616
+ };
617
+ /**
618
+ * When a group install scope is selected, this will define the default capability when the
619
+ * user installs the app
620
+ */
621
+ export type DefaultGroupCapability = {
622
+ /**
623
+ * When the install scope selected is GroupChat, this field specifies the default capability
624
+ * available
625
+ */
626
+ groupchat?: Groupchat;
627
+ /**
628
+ * When the install scope selected is Meetings, this field specifies the default capability
629
+ * available
630
+ */
631
+ meetings?: Groupchat;
632
+ /**
633
+ * When the install scope selected is Team, this field specifies the default capability
634
+ * available
635
+ */
636
+ team?: Groupchat;
637
+ };
638
+ /**
639
+ * When the install scope selected is GroupChat, this field specifies the default capability
640
+ * available
641
+ *
642
+ * When the install scope selected is Meetings, this field specifies the default capability
643
+ * available
644
+ *
645
+ * When the install scope selected is Team, this field specifies the default capability
646
+ * available
647
+ */
648
+ export type Groupchat = 'tab' | 'bot' | 'connector';
649
+ /**
650
+ * The install scope defined for this app by default. This will be the option displayed on
651
+ * the button when a user tries to add the app
652
+ */
653
+ export type DefaultInstallScope = 'personal' | 'team' | 'groupChat' | 'meetings';
654
+ export type Description = {
655
+ /**
656
+ * The full description of the app. Maximum length is 4000 characters.
657
+ */
658
+ full: string;
659
+ /**
660
+ * A short description of the app used when space is limited. Maximum length is 80
661
+ * characters.
662
+ */
663
+ short: string;
664
+ };
665
+ export type Developer = {
666
+ /**
667
+ * The Microsoft Partner Network ID that identifies the partner organization building the
668
+ * app. This field is not required, and should only be used if you are already part of the
669
+ * Microsoft Partner Network. More info at https://aka.ms/partner
670
+ */
671
+ mpnId?: string;
672
+ /**
673
+ * The display name for the developer.
674
+ */
675
+ name: string;
676
+ /**
677
+ * The url to the page that provides privacy information for the app.
678
+ */
679
+ privacyUrl: string;
680
+ /**
681
+ * The url to the page that provides the terms of use for the app.
682
+ */
683
+ termsOfUseUrl: string;
684
+ /**
685
+ * The url to the page that provides support information for the app.
686
+ */
687
+ websiteUrl: string;
688
+ };
689
+ export type DevicePermission = 'geolocation' | 'media' | 'notifications' | 'midi' | 'openExternal';
690
+ /**
691
+ * The set of extensions for this app. Currently only one extensions per app is supported.
692
+ */
693
+ export type ElementExtension = {
694
+ alternates?: ExtensionAlternateVersionsArray[];
695
+ /**
696
+ * The url for your extension, used to validate Exchange user identity tokens.
697
+ */
698
+ audienceClaimUrl?: string;
699
+ autoRunEvents?: ExtensionAutoRunEventsArray[];
700
+ requirements?: RequirementsExtensionElement;
701
+ ribbons?: ExtensionRibbonsArray[];
702
+ runtimes?: ExtensionRuntimesArray[];
703
+ };
704
+ export type ExtensionAlternateVersionsArray = {
705
+ alternateIcons?: AlternateIcons;
706
+ hide?: Hide;
707
+ prefer?: Prefer;
708
+ requirements?: RequirementsExtensionElement;
709
+ };
710
+ export type AlternateIcons = {
711
+ highResolutionIcon: ExtensionCommonIcon;
712
+ icon: ExtensionCommonIcon;
713
+ };
714
+ export type ExtensionCommonIcon = {
715
+ /**
716
+ * Size in pixels of the icon. Three image sizes are required (16, 32, and 80 pixels)
717
+ */
718
+ size: number;
719
+ /**
720
+ * Absolute Url to the icon.
721
+ */
722
+ url: string;
723
+ };
724
+ export type Hide = {
725
+ customOfficeAddin?: CustomOfficeAddin;
726
+ storeOfficeAddin?: StoreOfficeAddin;
727
+ [property: string]: any;
728
+ };
729
+ export type CustomOfficeAddin = {
730
+ /**
731
+ * Solution ID of the in-market add-in to hide. Maximum length is 64 characters.
732
+ */
733
+ officeAddinId: string;
734
+ };
735
+ export type StoreOfficeAddin = {
736
+ /**
737
+ * Asset ID of the in-market add-in to hide. Maximum length is 64 characters.
738
+ */
739
+ assetId: string;
740
+ /**
741
+ * Solution ID of an in-market add-in to hide. Maximum length is 64 characters.
742
+ */
743
+ officeAddinId: string;
744
+ };
745
+ export type Prefer = {
746
+ comAddin?: COMAddin;
747
+ [property: string]: any;
748
+ };
749
+ export type COMAddin = {
750
+ /**
751
+ * Program ID of the alternate com extension. Maximum length is 64 characters.
752
+ */
753
+ progId: string;
754
+ };
755
+ export type RequirementsExtensionElement = {
756
+ capabilities?: Capability[];
757
+ /**
758
+ * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
759
+ */
760
+ formFactors?: FormFactor[];
761
+ /**
762
+ * Identifies the scopes in which the add-in can run.
763
+ */
764
+ scopes?: RequirementsScope[];
765
+ };
766
+ export type Capability = {
767
+ /**
768
+ * Identifies the maximum version for the requirement sets that the add-in needs to run.
769
+ */
770
+ maxVersion?: string;
771
+ /**
772
+ * Identifies the minimum version for the requirement sets that the add-in needs to run.
773
+ */
774
+ minVersion?: string;
775
+ /**
776
+ * Identifies the name of the requirement sets that the add-in needs to run.
777
+ */
778
+ name: string;
779
+ };
780
+ export type FormFactor = 'desktop' | 'mobile';
781
+ export type RequirementsScope = 'mail' | 'workbook' | 'document' | 'presentation';
782
+ export type ExtensionAutoRunEventsArray = {
783
+ /**
784
+ * Specifies the type of event. For supported types, please see:
785
+ * https://review.learn.microsoft.com/en-us/office/dev/add-ins/outlook/autolaunch?tabs=xmlmanifest#supported-events.
786
+ */
787
+ events: Event[];
788
+ requirements?: RequirementsExtensionElement;
789
+ };
790
+ export type Event = {
791
+ /**
792
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
793
+ */
794
+ actionId: string;
795
+ /**
796
+ * Configures how Outlook responds to the event.
797
+ */
798
+ options?: Options;
799
+ type: string;
800
+ };
801
+ /**
802
+ * Configures how Outlook responds to the event.
803
+ */
804
+ export type Options = {
805
+ sendMode: SendMode;
806
+ };
807
+ export type SendMode = 'promptUser' | 'softBlock' | 'block';
808
+ export type ExtensionRibbonsArray = {
809
+ contexts?: ExtensionContext[];
810
+ requirements?: RequirementsExtensionElement;
811
+ tabs: ExtensionRibbonsArrayTabsItem[];
812
+ };
813
+ /**
814
+ * Specifies the Office application windows in which the ribbon customization is available
815
+ * to the user. Each item in the array is a member of a string array. Possible values are:
816
+ * mailRead, mailCompose, meetingDetailsOrganizer, meetingDetailsAttendee.
817
+ */
818
+ export type ExtensionContext = 'mailRead' | 'mailCompose' | 'meetingDetailsOrganizer' | 'meetingDetailsAttendee' | 'onlineMeetingDetailsOrganizer' | 'logEventMeetingDetailsAttendee' | 'default';
819
+ export type ExtensionRibbonsArrayTabsItem = {
820
+ /**
821
+ * Id of the existing office Tab. Maximum length is 64 characters.
822
+ */
823
+ builtInTabId?: string;
824
+ /**
825
+ * Defines mobile group item.
826
+ */
827
+ customMobileRibbonGroups?: ExtensionRibbonsCustomMobileGroupItem[];
828
+ /**
829
+ * Defines tab groups.
830
+ */
831
+ groups?: ExtensionRibbonsCustomTabGroupsItem[];
832
+ /**
833
+ * A unique identifier for this tab within the app. Maximum length is 64 characters.
834
+ */
835
+ id?: string;
836
+ /**
837
+ * Displayed text for the tab. Maximum length is 64 characters.
838
+ */
839
+ label?: string;
840
+ position?: Position;
841
+ };
842
+ export type ExtensionRibbonsCustomMobileGroupItem = {
843
+ controls: ExtensionRibbonsCustomMobileControlButtonItem[];
844
+ /**
845
+ * Specify the Id of the group. Used for mobileMessageRead ext point.
846
+ */
847
+ id: string;
848
+ /**
849
+ * Short label of the control. Maximum length is 32 characters.
850
+ */
851
+ label: string;
852
+ [property: string]: any;
853
+ };
854
+ export type ExtensionRibbonsCustomMobileControlButtonItem = {
855
+ /**
856
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
857
+ */
858
+ actionId: string;
859
+ icons: ExtensionCustomMobileIcon[];
860
+ /**
861
+ * Specify the Id of the button like msgReadFunctionButton.
862
+ */
863
+ id: string;
864
+ /**
865
+ * Short label of the control. Maximum length is 32 characters.
866
+ */
867
+ label: string;
868
+ type: PurpleType;
869
+ [property: string]: any;
870
+ };
871
+ export type ExtensionCustomMobileIcon = {
872
+ /**
873
+ * How to scale - 1,2,3 for each image. This attribute specifies the UIScreen.scale property
874
+ * for iOS devices.
875
+ */
876
+ scale: number;
877
+ /**
878
+ * Size in pixels of the icon. Three image sizes are required (25, 32, and 48 pixels).
879
+ */
880
+ size: number;
881
+ /**
882
+ * Url to the icon.
883
+ */
884
+ url: string;
885
+ };
886
+ export type PurpleType = 'mobileButton';
887
+ export type ExtensionRibbonsCustomTabGroupsItem = {
888
+ /**
889
+ * Id of a built-in Group. Maximum length is 64 characters.
890
+ */
891
+ builtInGroupId?: string;
892
+ controls?: ExtensionCommonCustomGroupControlsItem[];
893
+ icons?: ExtensionCommonIcon[];
894
+ /**
895
+ * A unique identifier for this group within the app. Maximum length is 64 characters.
896
+ */
897
+ id?: string;
898
+ /**
899
+ * Displayed text for the group. Maximum length is 64 characters.
900
+ */
901
+ label?: string;
902
+ };
903
+ export type ExtensionCommonCustomGroupControlsItem = {
904
+ /**
905
+ * The ID of an execution-type action that handles this key combination. Maximum length is
906
+ * 64 characters.
907
+ */
908
+ actionId: string;
909
+ /**
910
+ * Id of the existing office control. Maximum length is 64 characters.
911
+ */
912
+ builtInControlId?: string;
913
+ /**
914
+ * Whether the control is initially enabled.
915
+ */
916
+ enabled?: boolean;
917
+ icons: ExtensionCommonIcon[];
918
+ /**
919
+ * A unique identifier for this control within the app. Maximum length is 64 characters.
920
+ */
921
+ id: string;
922
+ /**
923
+ * Configures the items for a menu control.
924
+ */
925
+ items?: ExtensionCommonCustomControlMenuItem[];
926
+ /**
927
+ * Displayed text for the control. Maximum length is 64 characters.
928
+ */
929
+ label: string;
930
+ /**
931
+ * Specifies whether a group, button, menu, or menu item will be hidden on application and
932
+ * platform combinations that support the API (Office.ribbon.requestCreateControls) that
933
+ * installs custom contextual tabs on the ribbon. Default is false.
934
+ */
935
+ overriddenByRibbonApi?: boolean;
936
+ supertip: ExtensionCommonSuperToolTip;
937
+ /**
938
+ * Defines the type of control whether button or menu.
939
+ */
940
+ type: FluffyType;
941
+ };
942
+ export type ExtensionCommonCustomControlMenuItem = {
943
+ /**
944
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
945
+ */
946
+ actionId: string;
947
+ /**
948
+ * Whether the control is initially enabled.
949
+ */
950
+ enabled?: boolean;
951
+ icons?: ExtensionCommonIcon[];
952
+ /**
953
+ * A unique identifier for this control within the app. Maximum length is 64 characters.
954
+ */
955
+ id: string;
956
+ /**
957
+ * Displayed text for the control. Maximum length is 64 characters.
958
+ */
959
+ label: string;
960
+ overriddenByRibbonApi?: boolean;
961
+ supertip: ExtensionCommonSuperToolTip;
962
+ /**
963
+ * Supported values: menuItem.
964
+ */
965
+ type: ItemType;
966
+ };
967
+ export type ExtensionCommonSuperToolTip = {
968
+ /**
969
+ * Description of the super tip. Maximum length is 250 characters.
970
+ */
971
+ description: string;
972
+ /**
973
+ * Title text of the super tip. Maximum length is 64 characters.
974
+ */
975
+ title: string;
976
+ };
977
+ /**
978
+ * Supported values: menuItem.
979
+ */
980
+ export type ItemType = 'menuItem';
981
+ /**
982
+ * Defines the type of control whether button or menu.
983
+ */
984
+ export type FluffyType = 'button' | 'menu';
985
+ export type Position = {
986
+ /**
987
+ * Define alignment of this custom tab relative to the specified built-in tab.
988
+ */
989
+ align: Align;
990
+ /**
991
+ * The id of the built-in tab. Maximum length is 64 characters.
992
+ */
993
+ builtInTabId: string;
994
+ };
995
+ /**
996
+ * Define alignment of this custom tab relative to the specified built-in tab.
997
+ */
998
+ export type Align = 'after' | 'before';
999
+ /**
1000
+ * A runtime environment for a page or script
1001
+ */
1002
+ export type ExtensionRuntimesArray = {
1003
+ actions?: ExtensionRuntimesActionsItem[];
1004
+ code: ExtensionRuntimeCode;
1005
+ /**
1006
+ * A unique identifier for this runtime within the app. Maximum length is 64 characters.
1007
+ */
1008
+ id: string;
1009
+ /**
1010
+ * Runtimes with a short lifetime do not preserve state across executions. Runtimes with a
1011
+ * long lifetime do.
1012
+ */
1013
+ lifetime?: Lifetime;
1014
+ requirements?: RequirementsExtensionElement;
1015
+ /**
1016
+ * Supports running functions and launching pages.
1017
+ */
1018
+ type?: RuntimeType;
1019
+ };
1020
+ /**
1021
+ * Specifies the set of actions supported by this runtime. An action is either running a
1022
+ * JavaScript function or opening a view such as a task pane.
1023
+ */
1024
+ export type ExtensionRuntimesActionsItem = {
1025
+ /**
1026
+ * Display name of the action. Maximum length is 64 characters.
1027
+ */
1028
+ displayName?: string;
1029
+ /**
1030
+ * Identifier for this action. Maximum length is 64 characters. This value is passed to the
1031
+ * code file.
1032
+ */
1033
+ id: string;
1034
+ /**
1035
+ * Whether allows the action to have multiple selection.
1036
+ */
1037
+ multiselect?: boolean;
1038
+ /**
1039
+ * Specifies that a task pane supports pinning, which keeps the task pane open when the user
1040
+ * changes the selection.
1041
+ */
1042
+ pinnable?: boolean;
1043
+ /**
1044
+ * Whether allows task pane add-ins to activate without the Reading Pane enabled or a
1045
+ * message selected.
1046
+ */
1047
+ supportsNoItemContext?: boolean;
1048
+ /**
1049
+ * executeFunction: Run a script function without waiting for it to finish. openPate: Open a
1050
+ * page in a view.
1051
+ */
1052
+ type: ActionType;
1053
+ /**
1054
+ * View where the page should be opened. Maximum length is 64 characters.
1055
+ */
1056
+ view?: string;
1057
+ };
1058
+ /**
1059
+ * executeFunction: Run a script function without waiting for it to finish. openPate: Open a
1060
+ * page in a view.
1061
+ */
1062
+ export type ActionType = 'executeFunction' | 'openPage';
1063
+ export type ExtensionRuntimeCode = {
1064
+ /**
1065
+ * URL of the .html page to be loaded in browser-based runtimes.
1066
+ */
1067
+ page: string;
1068
+ /**
1069
+ * URL of the .js script file to be loaded in UI-less runtimes.
1070
+ */
1071
+ script?: string;
1072
+ };
1073
+ /**
1074
+ * Runtimes with a short lifetime do not preserve state across executions. Runtimes with a
1075
+ * long lifetime do.
1076
+ */
1077
+ export type Lifetime = 'short' | 'long';
1078
+ /**
1079
+ * Supports running functions and launching pages.
1080
+ */
1081
+ export type RuntimeType = 'general';
1082
+ /**
1083
+ * Specify the app's Graph connector configuration. If this is present then
1084
+ * webApplicationInfo.id must also be specified.
1085
+ */
1086
+ export type GraphConnector = {
1087
+ /**
1088
+ * The url where Graph-connector notifications for the application should be sent.
1089
+ */
1090
+ notificationUrl: string;
1091
+ };
1092
+ export type Icons = {
1093
+ /**
1094
+ * A relative file path to a full color PNG icon. Size 192x192.
1095
+ */
1096
+ color: string;
1097
+ /**
1098
+ * A relative file path to a transparent PNG outline icon. The border color needs to be
1099
+ * white. Size 32x32.
1100
+ */
1101
+ outline: string;
1102
+ };
1103
+ export type LocalizationInfo = {
1104
+ additionalLanguages?: AdditionalLanguage[];
1105
+ /**
1106
+ * A relative file path to a the .json file containing strings in the default language.
1107
+ */
1108
+ defaultLanguageFile?: string;
1109
+ /**
1110
+ * The language tag of the strings in this top level manifest file.
1111
+ */
1112
+ defaultLanguageTag: string;
1113
+ };
1114
+ export type AdditionalLanguage = {
1115
+ /**
1116
+ * A relative file path to a the .json file containing the translated strings.
1117
+ */
1118
+ file: string;
1119
+ /**
1120
+ * The language tag of the strings in the provided file.
1121
+ */
1122
+ languageTag: string;
1123
+ };
1124
+ export type ManifestVersion = '1.19';
1125
+ /**
1126
+ * Specify meeting extension definition.
1127
+ */
1128
+ export type MeetingExtensionDefinition = {
1129
+ /**
1130
+ * Meeting supported scenes.
1131
+ */
1132
+ scenes?: Scene[];
1133
+ /**
1134
+ * A boolean value indicating whether this app allows management by anonymous users.
1135
+ */
1136
+ supportsAnonymousGuestUsers?: boolean;
1137
+ /**
1138
+ * A boolean value indicating whether this app can stream the meeting's audio video content
1139
+ * to an RTMP endpoint.
1140
+ */
1141
+ supportsStreaming?: boolean;
1142
+ };
1143
+ export type Scene = {
1144
+ /**
1145
+ * A relative file path to a scene metadata json file.
1146
+ */
1147
+ file: string;
1148
+ /**
1149
+ * A unique identifier for this scene. This id must be a GUID.
1150
+ */
1151
+ id: string;
1152
+ /**
1153
+ * Maximum audiences supported in scene.
1154
+ */
1155
+ maxAudience: number;
1156
+ /**
1157
+ * Scene name.
1158
+ */
1159
+ name: string;
1160
+ /**
1161
+ * A relative file path to a scene PNG preview icon.
1162
+ */
1163
+ preview: string;
1164
+ /**
1165
+ * Number of seats reserved for organizers or presenters.
1166
+ */
1167
+ seatsReservedForOrganizersOrPresenters: number;
1168
+ };
1169
+ export type Name = {
1170
+ /**
1171
+ * The full name of the app, used if the full app name exceeds 30 characters.
1172
+ */
1173
+ full: string;
1174
+ /**
1175
+ * A short display name for the app.
1176
+ */
1177
+ short: string;
1178
+ };
1179
+ export type Permission = 'identity' | 'messageTeamMembers';
1180
+ export type StaticTab = {
1181
+ /**
1182
+ * The Microsoft App ID specified for the bot in the Bot Framework portal
1183
+ * (https://dev.botframework.com/bots)
1184
+ */
1185
+ contentBotId?: string;
1186
+ /**
1187
+ * The url which points to the entity UI to be displayed in the canvas.
1188
+ */
1189
+ contentUrl?: string;
1190
+ /**
1191
+ * The set of contextItem scopes that a tab belong to
1192
+ */
1193
+ context?: StaticTabContext[];
1194
+ /**
1195
+ * A unique identifier for the entity which the tab displays.
1196
+ */
1197
+ entityId: string;
1198
+ /**
1199
+ * The display name of the tab.
1200
+ */
1201
+ name?: string;
1202
+ /**
1203
+ * Specifies whether the tab offers an experience in the context of a channel in a team, or
1204
+ * an experience scoped to an individual user alone or group chat. These options are
1205
+ * non-exclusive. Currently static tabs are only supported in the 'personal' scope.
1206
+ */
1207
+ scopes: CommandListScope[];
1208
+ /**
1209
+ * The url to direct a user's search queries.
1210
+ */
1211
+ searchUrl?: string;
1212
+ /**
1213
+ * The url to point at if a user opts to view in a browser.
1214
+ */
1215
+ websiteUrl?: string;
1216
+ };
1217
+ export type StaticTabContext = 'personalTab' | 'channelTab' | 'privateChatTab' | 'meetingChatTab' | 'meetingDetailsTab' | 'meetingSidePanel' | 'meetingStage' | 'teamLevelApp';
1218
+ /**
1219
+ * Subscription offer associated with this app.
1220
+ */
1221
+ export type SubscriptionOffer = {
1222
+ /**
1223
+ * A unique identifier for the Commercial Marketplace Software as a Service Offer.
1224
+ */
1225
+ offerId: string;
1226
+ };
1227
+ export type SupportedChannelType = 'sharedChannels' | 'privateChannels';
1228
+ /**
1229
+ * Specify your AAD App ID and Graph information to help users seamlessly sign into your AAD
1230
+ * app.
1231
+ */
1232
+ export type WebApplicationInfo = {
1233
+ /**
1234
+ * AAD application id of the app. This id must be a GUID.
1235
+ */
1236
+ id: string;
1237
+ /**
1238
+ * Resource url of app for acquiring auth token for SSO.
1239
+ */
1240
+ resource?: string;
1241
+ };