@microsoft/app-manifest 1.0.6 → 1.0.7-alpha.fb69009c96.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 (23) hide show
  1. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D7.d.ts +648 -0
  2. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D7.js +345 -0
  3. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D7.js.map +1 -0
  4. package/build/generated-types/index.d.ts +8 -6
  5. package/build/generated-types/index.js +13 -1
  6. package/build/generated-types/index.js.map +1 -1
  7. package/build/generated-types/teams/TeamsManifestV1D27.d.ts +2281 -0
  8. package/build/generated-types/teams/TeamsManifestV1D27.js +1087 -0
  9. package/build/generated-types/teams/TeamsManifestV1D27.js.map +1 -0
  10. package/build/json-schemas/copilot/declarative-agent/v1.7/schema.json +1258 -0
  11. package/build/json-schemas/teams/v1.23/MicrosoftTeams.schema.json +1 -1
  12. package/build/json-schemas/teams/v1.24/MicrosoftTeams.schema.json +1 -1
  13. package/build/json-schemas/teams/v1.25/MicrosoftTeams.schema.json +1 -1
  14. package/build/json-schemas/teams/v1.26/MicrosoftTeams.AgenticUser.schema.json +44 -0
  15. package/build/json-schemas/teams/v1.26/MicrosoftTeams.Localization.schema.json +332 -0
  16. package/build/json-schemas/teams/v1.26/MicrosoftTeams.ResponseRenderingTemplate.schema.json +89 -0
  17. package/build/json-schemas/teams/v1.26/MicrosoftTeams.schema.json +0 -1
  18. package/build/json-schemas/teams/v1.27/MicrosoftTeams.AgenticUser.schema.json +44 -0
  19. package/build/json-schemas/teams/v1.27/MicrosoftTeams.Localization.schema.json +344 -0
  20. package/build/json-schemas/teams/v1.27/MicrosoftTeams.ResponseRenderingTemplate.schema.json +89 -0
  21. package/build/json-schemas/teams/v1.27/MicrosoftTeams.schema.json +3472 -0
  22. package/build/tsconfig.tsbuildinfo +1 -1
  23. package/package.json +2 -2
@@ -0,0 +1,2281 @@
1
+ export interface TeamsManifestV1D27 {
2
+ $schema?: string;
3
+ /**
4
+ * The version of the schema this manifest is using. This schema version supports extending
5
+ * Teams apps to other parts of the Microsoft 365 ecosystem. More info at
6
+ * https://aka.ms/extendteamsapps.
7
+ */
8
+ manifestVersion: "1.27";
9
+ /**
10
+ * The version of the app. Changes to your manifest should cause a version change. This
11
+ * version string must follow the semver standard (http://semver.org).
12
+ */
13
+ version: string;
14
+ /**
15
+ * A unique identifier for this app. This id must be a GUID.
16
+ */
17
+ id: string;
18
+ localizationInfo?: LocalizationInfo;
19
+ developer: Developer;
20
+ name: NameClass;
21
+ description: Description;
22
+ icons: Icons;
23
+ /**
24
+ * A color to use in conjunction with the icon. The value must be a valid HTML color code
25
+ * starting with '#', for example `#4464ee`.
26
+ */
27
+ accentColor: string;
28
+ /**
29
+ * These are tabs users can optionally add to their channels and 1:1 or group chats and
30
+ * require extra configuration before they are added. Configurable tabs are not supported in
31
+ * the personal scope. Currently only one configurable tab per app is supported.
32
+ */
33
+ configurableTabs?: ConfigurableTab[];
34
+ /**
35
+ * A set of tabs that may be 'pinned' by default, without the user adding them manually.
36
+ * Static tabs declared in personal scope are always pinned to the app's personal
37
+ * experience. Static tabs do not currently support the 'teams' scope.
38
+ */
39
+ staticTabs?: StaticTab[];
40
+ /**
41
+ * The set of bots for this app. Currently only one bot per app is supported.
42
+ */
43
+ bots?: Bot[];
44
+ /**
45
+ * The set of Office365 connectors for this app. Currently only one connector per app is
46
+ * supported.
47
+ */
48
+ connectors?: Connector[];
49
+ /**
50
+ * Subscription offer associated with this app.
51
+ */
52
+ subscriptionOffer?: SubscriptionOffer;
53
+ /**
54
+ * The set of compose extensions for this app. Currently only one compose extension per app
55
+ * is supported.
56
+ */
57
+ composeExtensions?: ComposeExtension[];
58
+ /**
59
+ * Specifies the permissions the app requests from users.
60
+ */
61
+ permissions?: Permission[];
62
+ /**
63
+ * Specify the native features on a user's device that your app may request access to.
64
+ */
65
+ devicePermissions?: DevicePermission[];
66
+ /**
67
+ * A list of valid domains from which the tabs expect to load any content. Domain listings
68
+ * can include wildcards, for example `*.example.com`. If your tab configuration or content
69
+ * UI needs to navigate to any other domain besides the one use for tab configuration, that
70
+ * domain must be specified here.
71
+ */
72
+ validDomains?: string[];
73
+ /**
74
+ * Specify your AAD App ID and Graph information to help users seamlessly sign into your AAD
75
+ * app.
76
+ */
77
+ webApplicationInfo?: WebApplicationInfo;
78
+ /**
79
+ * Specify the app's Graph connector configuration. If this is present then
80
+ * webApplicationInfo.id must also be specified.
81
+ */
82
+ graphConnector?: GraphConnector;
83
+ /**
84
+ * A value indicating whether or not show loading indicator when app/tab is loading
85
+ */
86
+ showLoadingIndicator?: boolean;
87
+ /**
88
+ * A value indicating whether a personal app is rendered without a tab header-bar
89
+ */
90
+ isFullScreen?: boolean;
91
+ activities?: Activities;
92
+ /**
93
+ * A property in the app manifest that declares support for all channel features,
94
+ * categorized by tiers.
95
+ */
96
+ supportsChannelFeatures?: "tier1";
97
+ /**
98
+ * List of 'non-standard' channel types that the app supports. Note: Channels of standard
99
+ * type are supported by default if the app supports team scope.
100
+ */
101
+ supportedChannelTypes?: SupportedChannelType[];
102
+ /**
103
+ * A list of tenant configured properties for an app
104
+ */
105
+ configurableProperties?: ConfigurableProperty[];
106
+ /**
107
+ * A value indicating whether an app is blocked by default until admin allows it
108
+ */
109
+ defaultBlockUntilAdminAction?: boolean;
110
+ /**
111
+ * The url to the page that provides additional app information for the admins
112
+ */
113
+ publisherDocsUrl?: string;
114
+ /**
115
+ * The install scope defined for this app by default. This will be the option displayed on
116
+ * the button when a user tries to add the app
117
+ */
118
+ defaultInstallScope?: DefaultInstallScope;
119
+ /**
120
+ * When a group install scope is selected, this will define the default capability when the
121
+ * user installs the app
122
+ */
123
+ defaultGroupCapability?: DefaultGroupCapability;
124
+ /**
125
+ * Specify meeting extension definition.
126
+ */
127
+ meetingExtensionDefinition?: MeetingExtensionDefinition;
128
+ /**
129
+ * Specify and consolidates authorization related information for the App.
130
+ */
131
+ authorization?: TeamsManifestV1D27Authorization;
132
+ extensions?: ElementExtension[];
133
+ /**
134
+ * Defines the list of cards which could be pinned to dashboards that can provide summarized
135
+ * view of information relevant to user.
136
+ */
137
+ dashboardCards?: DashboardCard[];
138
+ /**
139
+ * The Intune-related properties for the app.
140
+ */
141
+ intuneInfo?: IntuneInfo;
142
+ copilotAgents?: CopilotAgents;
143
+ /**
144
+ * An array of agentic user templates references.
145
+ */
146
+ agenticUserTemplates?: AgenticUserTemplateRef[];
147
+ elementRelationshipSet?: ElementRelationshipSet;
148
+ /**
149
+ * Optional property containing background loading configuration. By opting in to this
150
+ * performance enhancement, your app is eligible to be loaded in the background in any
151
+ * Microsoft 365 application host that supports this feature.
152
+ */
153
+ backgroundLoadConfiguration?: BackgroundLoadConfiguration;
154
+ /**
155
+ * A list of agent connector objects to included in the Unified App Manifest.
156
+ */
157
+ agentConnectors?: AgentConnector[];
158
+ }
159
+ export interface Activities {
160
+ /**
161
+ * Specify the types of activites that your app can post to a users activity feed
162
+ */
163
+ activityTypes?: ActivityType[];
164
+ /**
165
+ * Specify the customized icons that your app can post to a users activity feed
166
+ */
167
+ activityIcons?: ActivityIcon[];
168
+ }
169
+ export interface ActivityIcon {
170
+ /**
171
+ * Represents the unique icon ID.
172
+ */
173
+ id: string;
174
+ /**
175
+ * Represents the relative path to the icon image. Image should be size 32x32.
176
+ */
177
+ iconFile: string;
178
+ }
179
+ export interface ActivityType {
180
+ type: string;
181
+ description: string;
182
+ templateText: string;
183
+ /**
184
+ * An array containing valid icon IDs per activity type.
185
+ */
186
+ allowedIconIds?: string[];
187
+ }
188
+ /**
189
+ * An agent connector represents a mechanism to enable agents to access information from
190
+ * systems outside of Microsoft 365, often via an MCP Server. Other mechanisms include using
191
+ * OpenAPI descriptions for calling external HTTP APIs. The role of the agent connector is
192
+ * to provide the necessary configuration information to agents or other M365 applications
193
+ * to connect to these external systems. An agent connector can be provided for use by other
194
+ * elements described within the same Unified App Manifest, or as a standalone resource that
195
+ * can be referenced in the Unified App Manifest of other M365 applications.
196
+ */
197
+ export interface AgentConnector {
198
+ /**
199
+ * Unique identifier for the agent connector
200
+ */
201
+ id: string;
202
+ /**
203
+ * A user-friendly name for the connector, which can be displayed in UIs.
204
+ */
205
+ displayName: string;
206
+ /**
207
+ * A brief description of the connector's purpose and functionality.
208
+ */
209
+ description?: string;
210
+ /**
211
+ * Configuration details for connectors that provide tools for agents via a remote MCP
212
+ * server.
213
+ */
214
+ toolSource?: ToolSource;
215
+ }
216
+ /**
217
+ * Configuration details for connectors that provide tools for agents via a remote MCP
218
+ * server.
219
+ */
220
+ export interface ToolSource {
221
+ /**
222
+ * Configuration details for a connector that provides tools via a remote MCP server.
223
+ */
224
+ remoteMcpServer?: RemoteMCPServer;
225
+ }
226
+ /**
227
+ * Configuration details for a connector that provides tools via a remote MCP server.
228
+ */
229
+ export interface RemoteMCPServer {
230
+ /**
231
+ * The URL of the remote MCP Server.
232
+ */
233
+ mcpServerUrl: string;
234
+ /**
235
+ * Configuration for MCP tool descriptions, either by file reference or inline content (but
236
+ * not both). When this property is present it indicates that dynamic discovery will not be
237
+ * used.
238
+ */
239
+ mcpToolDescription: MCPToolDescription;
240
+ /**
241
+ * Authorization configuration for connecting to the local MCP server. The design mirrors
242
+ * that of Plugin Manifests
243
+ * https://spec-hub.azurewebsites.net/specifications/PluginManifest-2.3.html
244
+ */
245
+ authorization?: RemoteMCPServerAuthorization;
246
+ }
247
+ /**
248
+ * Authorization configuration for connecting to the local MCP server. The design mirrors
249
+ * that of Plugin Manifests
250
+ * https://spec-hub.azurewebsites.net/specifications/PluginManifest-2.3.html
251
+ */
252
+ export interface RemoteMCPServerAuthorization {
253
+ /**
254
+ * The type of authorization required to invoke the MCP server. Supported values are: 'None'
255
+ * (anonymous access), 'OAuthPluginVault' (OAuth flow with referenceId), 'ApiKeyPluginVault'
256
+ * (API Key with referenceId), 'DynamicClientRegistration' (dynamic client registration with
257
+ * referenceId).
258
+ */
259
+ type: AuthorizationType;
260
+ /**
261
+ * A reference identifier used when type is OAuthPluginVault, ApiKeyPluginVault, or
262
+ * DynamicClientRegistration. The referenceId value is acquired independently when providing
263
+ * the necessary authorization configuration values. This mechanism exists to prevent the
264
+ * need for storing secret values in the plugin manifest.
265
+ */
266
+ referenceId?: string;
267
+ }
268
+ /**
269
+ * The type of authorization required to invoke the MCP server. Supported values are: 'None'
270
+ * (anonymous access), 'OAuthPluginVault' (OAuth flow with referenceId), 'ApiKeyPluginVault'
271
+ * (API Key with referenceId), 'DynamicClientRegistration' (dynamic client registration with
272
+ * referenceId).
273
+ */
274
+ export type AuthorizationType = "None" | "OAuthPluginVault" | "ApiKeyPluginVault" | "DynamicClientRegistration";
275
+ /**
276
+ * Configuration for MCP tool descriptions, either by file reference or inline content (but
277
+ * not both). When this property is present it indicates that dynamic discovery will not be
278
+ * used.
279
+ */
280
+ export interface MCPToolDescription {
281
+ /**
282
+ * The relative path to the MCP tool description file within the app package.
283
+ */
284
+ file: string;
285
+ }
286
+ export interface AgenticUserTemplateRef {
287
+ /**
288
+ * Unique identifier for the agentic user template. Must contain only alphanumeric
289
+ * characters, dots, underscores, and hyphens.
290
+ */
291
+ id: string;
292
+ /**
293
+ * Relative file path to this agentic user template element file in the application package.
294
+ */
295
+ file: string;
296
+ }
297
+ /**
298
+ * Specify and consolidates authorization related information for the App.
299
+ */
300
+ export interface TeamsManifestV1D27Authorization {
301
+ /**
302
+ * List of permissions that the app needs to function.
303
+ */
304
+ permissions?: Permissions;
305
+ }
306
+ /**
307
+ * List of permissions that the app needs to function.
308
+ */
309
+ export interface Permissions {
310
+ /**
311
+ * Permissions that must be granted on a per resource instance basis.
312
+ */
313
+ resourceSpecific?: ResourceSpecific[];
314
+ }
315
+ export interface ResourceSpecific {
316
+ /**
317
+ * The name of the resource-specific permission.
318
+ */
319
+ name: string;
320
+ /**
321
+ * The type of the resource-specific permission: delegated vs application.
322
+ */
323
+ type: ResourceSpecificType;
324
+ }
325
+ /**
326
+ * The type of the resource-specific permission: delegated vs application.
327
+ */
328
+ export type ResourceSpecificType = "Application" | "Delegated";
329
+ /**
330
+ * Optional property containing background loading configuration. By opting in to this
331
+ * performance enhancement, your app is eligible to be loaded in the background in any
332
+ * Microsoft 365 application host that supports this feature.
333
+ */
334
+ export interface BackgroundLoadConfiguration {
335
+ /**
336
+ * Optional property within backgroundLoadConfiguration containing tab settings for
337
+ * background loading.
338
+ */
339
+ tabConfiguration?: TabConfiguration;
340
+ }
341
+ /**
342
+ * Optional property within backgroundLoadConfiguration containing tab settings for
343
+ * background loading.
344
+ */
345
+ export interface TabConfiguration {
346
+ /**
347
+ * Required URL for background loading. This can be the same contentUrl from the staticTabs
348
+ * section or an alternative endpoint used for background loading.
349
+ */
350
+ contentUrl: string;
351
+ }
352
+ export interface Bot {
353
+ /**
354
+ * The Microsoft App ID specified for the bot in the Bot Framework portal
355
+ * (https://dev.botframework.com/bots)
356
+ */
357
+ botId: string;
358
+ configuration?: Configuration;
359
+ /**
360
+ * This value describes whether or not the bot utilizes a user hint to add the bot to a
361
+ * specific channel.
362
+ */
363
+ needsChannelSelector?: boolean;
364
+ /**
365
+ * A value indicating whether or not the bot is a one-way notification only bot, as opposed
366
+ * to a conversational bot.
367
+ */
368
+ isNotificationOnly?: boolean;
369
+ /**
370
+ * A value indicating whether the bot supports uploading/downloading of files.
371
+ */
372
+ supportsFiles?: boolean;
373
+ /**
374
+ * A value indicating whether the bot supports audio calling.
375
+ */
376
+ supportsCalling?: boolean;
377
+ /**
378
+ * A value indicating whether the bot supports video calling.
379
+ */
380
+ supportsVideo?: boolean;
381
+ /**
382
+ * Specifies whether the bot offers an experience in the context of a channel in a team, in
383
+ * a group chat (groupChat), an experience scoped to an individual user alone (personal) OR
384
+ * within Copilot surfaces. These options are non-exclusive.
385
+ */
386
+ scopes: CommandListScope[];
387
+ /**
388
+ * The list of commands that the bot supplies, including their usage, description, and the
389
+ * scope for which the commands are valid. A separate command list should be used for each
390
+ * scope.
391
+ */
392
+ commandLists?: CommandList[];
393
+ requirementSet?: ElementRequirementSet;
394
+ /**
395
+ * System‑generated metadata. This information is maintained by Microsoft services and must
396
+ * not be modified manually.
397
+ */
398
+ registrationInfo?: RegistrationInfo;
399
+ }
400
+ export interface CommandList {
401
+ /**
402
+ * Specifies the scopes for which the command list is valid
403
+ */
404
+ scopes: CommandListScope[];
405
+ commands: CommandListCommand[];
406
+ }
407
+ export interface CommandListCommand {
408
+ /**
409
+ * The bot command name
410
+ */
411
+ title: string;
412
+ /**
413
+ * A simple text description or an example of the command syntax and its arguments.
414
+ */
415
+ description?: string;
416
+ /**
417
+ * Type of the command. Default is basic
418
+ */
419
+ type?: PurpleType;
420
+ /**
421
+ * The prompt text to be used by Teams when user initiates the command from one of the entry
422
+ * points
423
+ */
424
+ prompt?: string;
425
+ }
426
+ /**
427
+ * Type of the command. Default is basic
428
+ */
429
+ export type PurpleType = "basic" | "prompt";
430
+ export type CommandListScope = "team" | "personal" | "groupChat" | "copilot";
431
+ export interface Configuration {
432
+ team?: Team;
433
+ groupChat?: Team;
434
+ }
435
+ export interface Team {
436
+ fetchTask?: boolean;
437
+ taskInfo?: TaskInfo;
438
+ }
439
+ export interface TaskInfo {
440
+ /**
441
+ * Initial dialog title
442
+ */
443
+ title?: string;
444
+ /**
445
+ * Dialog width - either a number in pixels or default layout such as 'large', 'medium', or
446
+ * 'small'
447
+ */
448
+ width?: string;
449
+ /**
450
+ * Dialog height - either a number in pixels or default layout such as 'large', 'medium', or
451
+ * 'small'
452
+ */
453
+ height?: string;
454
+ /**
455
+ * Initial webview URL
456
+ */
457
+ url?: string;
458
+ }
459
+ /**
460
+ * System‑generated metadata. This information is maintained by Microsoft services and must
461
+ * not be modified manually.
462
+ */
463
+ export interface RegistrationInfo {
464
+ /**
465
+ * The partner source through which the bot is registered. System‑generated metadata. This
466
+ * information is maintained by Microsoft services and must not be modified manually.
467
+ */
468
+ source: Source;
469
+ /**
470
+ * A Power Platform environment that serves as a container for building apps under a
471
+ * Microsoft 365 tenant and can only be accessed by users within that tenant.
472
+ * System‑generated metadata. This information is maintained by Microsoft services and must
473
+ * not be modified manually.
474
+ */
475
+ environment?: string;
476
+ /**
477
+ * The Copilot Studio copilot schema name. System‑generated metadata. This information is
478
+ * maintained by Microsoft services and must not be modified manually.
479
+ */
480
+ schemaName?: string;
481
+ /**
482
+ * The core services cluster category for Copilot Studio copilots. System‑generated
483
+ * metadata. This information is maintained by Microsoft services and must not be modified
484
+ * manually.
485
+ */
486
+ clusterCategory?: string;
487
+ }
488
+ /**
489
+ * The partner source through which the bot is registered. System‑generated metadata. This
490
+ * information is maintained by Microsoft services and must not be modified manually.
491
+ */
492
+ export type Source = "standard" | "microsoftCopilotStudio" | "onedriveSharepoint";
493
+ /**
494
+ * An object representing a set of requirements that the host must support for the element.
495
+ */
496
+ export interface ElementRequirementSet {
497
+ hostMustSupportFunctionalities: HostFunctionality[];
498
+ }
499
+ /**
500
+ * An object representing a specific functionality that a host must support.
501
+ */
502
+ export interface HostFunctionality {
503
+ /**
504
+ * The name of the functionality.
505
+ */
506
+ name: HostMustSupportFunctionalityName;
507
+ }
508
+ /**
509
+ * The name of the functionality.
510
+ */
511
+ export type HostMustSupportFunctionalityName = "dialogUrl" | "dialogUrlBot" | "dialogAdaptiveCard" | "dialogAdaptiveCardBot";
512
+ export interface ComposeExtension {
513
+ /**
514
+ * A unique identifier for the compose extension.
515
+ */
516
+ id?: string;
517
+ /**
518
+ * The Microsoft App ID specified for the bot powering the compose extension in the Bot
519
+ * Framework portal (https://dev.botframework.com/bots)
520
+ */
521
+ botId?: string;
522
+ /**
523
+ * Type of the compose extension.
524
+ */
525
+ composeExtensionType?: ComposeExtensionType;
526
+ /**
527
+ * Object capturing authorization information.
528
+ */
529
+ authorization?: ComposeExtensionAuthorization;
530
+ /**
531
+ * A relative file path to the api specification file in the manifest package.
532
+ */
533
+ apiSpecificationFile?: string;
534
+ /**
535
+ * A value indicating whether the configuration of a compose extension can be updated by the
536
+ * user.
537
+ */
538
+ canUpdateConfiguration?: boolean | null;
539
+ commands?: ComposeExtensionCommand[];
540
+ /**
541
+ * A list of handlers that allow apps to be invoked when certain conditions are met
542
+ */
543
+ messageHandlers?: MessageHandler[];
544
+ requirementSet?: ElementRequirementSet;
545
+ }
546
+ /**
547
+ * Object capturing authorization information.
548
+ */
549
+ export interface ComposeExtensionAuthorization {
550
+ /**
551
+ * Enum of possible authentication types.
552
+ */
553
+ authType?: AuthType;
554
+ /**
555
+ * Object capturing details needed to do single aad auth flow. It will be only present when
556
+ * auth type is entraId.
557
+ */
558
+ microsoftEntraConfiguration?: MicrosoftEntraConfiguration;
559
+ /**
560
+ * Object capturing details needed to do service auth. It will be only present when auth
561
+ * type is apiSecretServiceAuth.
562
+ */
563
+ apiSecretServiceAuthConfiguration?: APISecretServiceAuthConfiguration;
564
+ /**
565
+ * Object capturing details needed to match the application's OAuth configuration for the
566
+ * app. This should be and must be populated only when authType is set to oAuth2.0r
567
+ */
568
+ oAuthConfiguration?: OAuthConfiguration;
569
+ }
570
+ /**
571
+ * Object capturing details needed to do service auth. It will be only present when auth
572
+ * type is apiSecretServiceAuth.
573
+ */
574
+ export interface APISecretServiceAuthConfiguration {
575
+ /**
576
+ * Registration id returned when developer submits the api key through Developer Portal.
577
+ */
578
+ apiSecretRegistrationId?: string;
579
+ }
580
+ /**
581
+ * Enum of possible authentication types.
582
+ */
583
+ export type AuthType = "none" | "apiSecretServiceAuth" | "microsoftEntra" | "oAuth2.0";
584
+ /**
585
+ * Object capturing details needed to do single aad auth flow. It will be only present when
586
+ * auth type is entraId.
587
+ */
588
+ export interface MicrosoftEntraConfiguration {
589
+ /**
590
+ * Boolean indicating whether single sign on is configured for the app.
591
+ */
592
+ supportsSingleSignOn?: boolean;
593
+ }
594
+ /**
595
+ * Object capturing details needed to match the application's OAuth configuration for the
596
+ * app. This should be and must be populated only when authType is set to oAuth2.0r
597
+ */
598
+ export interface OAuthConfiguration {
599
+ /**
600
+ * The oAuth configuration id obtained by the Developer when registering their configuration
601
+ * in Developer Portal.
602
+ */
603
+ oAuthConfigurationId?: string;
604
+ }
605
+ export interface ComposeExtensionCommand {
606
+ /**
607
+ * Id of the command.
608
+ */
609
+ id: string;
610
+ /**
611
+ * Type of the command
612
+ */
613
+ type?: FluffyType;
614
+ samplePrompts?: SamplePrompt[];
615
+ /**
616
+ * A relative file path for api response rendering template file.
617
+ */
618
+ apiResponseRenderingTemplateFile?: string;
619
+ /**
620
+ * Context where the command would apply
621
+ */
622
+ context?: CommandContext[];
623
+ /**
624
+ * Title of the command.
625
+ */
626
+ title: string;
627
+ /**
628
+ * Description of the command.
629
+ */
630
+ description?: string;
631
+ /**
632
+ * A boolean value that indicates if the command should be run once initially with no
633
+ * parameter.
634
+ */
635
+ initialRun?: boolean;
636
+ /**
637
+ * A boolean value that indicates if it should fetch task module dynamically
638
+ */
639
+ fetchTask?: boolean;
640
+ parameters?: Parameter[];
641
+ taskInfo?: TaskInfo;
642
+ /**
643
+ * Semantic description for the command.
644
+ */
645
+ semanticDescription?: string;
646
+ }
647
+ export type CommandContext = "compose" | "commandBox" | "message";
648
+ export interface Parameter {
649
+ /**
650
+ * Name of the parameter.
651
+ */
652
+ name: string;
653
+ /**
654
+ * Type of the parameter
655
+ */
656
+ inputType?: InputType;
657
+ /**
658
+ * Title of the parameter.
659
+ */
660
+ title: string;
661
+ /**
662
+ * Description of the parameter.
663
+ */
664
+ description?: string;
665
+ /**
666
+ * The value indicates if this parameter is a required field.
667
+ */
668
+ isRequired?: boolean;
669
+ /**
670
+ * Initial value for the parameter
671
+ */
672
+ value?: string;
673
+ /**
674
+ * The choice options for the parameter
675
+ */
676
+ choices?: Choice[];
677
+ /**
678
+ * Semantic description for the parameter.
679
+ */
680
+ semanticDescription?: string;
681
+ }
682
+ export interface Choice {
683
+ /**
684
+ * Title of the choice
685
+ */
686
+ title: string;
687
+ /**
688
+ * Value of the choice
689
+ */
690
+ value: string;
691
+ }
692
+ /**
693
+ * Type of the parameter
694
+ */
695
+ export type InputType = "text" | "textarea" | "number" | "date" | "time" | "toggle" | "choiceset";
696
+ export interface SamplePrompt {
697
+ /**
698
+ * This string will hold the sample prompt
699
+ */
700
+ text: string;
701
+ }
702
+ /**
703
+ * Type of the command
704
+ */
705
+ export type FluffyType = "query" | "action";
706
+ /**
707
+ * Type of the compose extension.
708
+ */
709
+ export type ComposeExtensionType = "botBased" | "apiBased";
710
+ export interface MessageHandler {
711
+ /**
712
+ * Type of the message handler
713
+ */
714
+ type: "link";
715
+ value: MessageHandlerValue;
716
+ }
717
+ /**
718
+ * Type of the message handler
719
+ */
720
+ export interface MessageHandlerValue {
721
+ /**
722
+ * A list of domains that the link message handler can register for, and when they are
723
+ * matched the app will be invoked
724
+ */
725
+ domains?: string[];
726
+ /**
727
+ * A boolean that indicates whether the app's link message handler supports anonymous invoke
728
+ * flow.
729
+ */
730
+ supportsAnonymizedPayloads?: boolean;
731
+ }
732
+ export type ConfigurableProperty = "name" | "shortDescription" | "longDescription" | "smallImageUrl" | "largeImageUrl" | "accentColor" | "developerUrl" | "privacyUrl" | "termsOfUseUrl";
733
+ export interface ConfigurableTab {
734
+ /**
735
+ * A unique identifier for the tab. This id must be unique within the app manifest.
736
+ */
737
+ id?: string;
738
+ /**
739
+ * The url to use when configuring the tab.
740
+ */
741
+ configurationUrl: string;
742
+ /**
743
+ * A value indicating whether an instance of the tab's configuration can be updated by the
744
+ * user after creation.
745
+ */
746
+ canUpdateConfiguration?: boolean;
747
+ /**
748
+ * Specifies whether the tab offers an experience in the context of a channel in a team, in
749
+ * a 1:1 or group chat, or in an experience scoped to an individual user alone. These
750
+ * options are non-exclusive. Currently, configurable tabs are only supported in the teams
751
+ * and groupchats scopes.
752
+ */
753
+ scopes: ConfigurableTabScope[];
754
+ /**
755
+ * The set of meetingSurfaceItem scopes that a tab belong to
756
+ */
757
+ meetingSurfaces?: MeetingSurface[];
758
+ /**
759
+ * The set of contextItem scopes that a tab belong to
760
+ */
761
+ context?: ConfigurableTabContext[];
762
+ /**
763
+ * A relative file path to a tab preview image for use in SharePoint. Size 1024x768.
764
+ */
765
+ sharePointPreviewImage?: string;
766
+ /**
767
+ * Defines how your tab will be made available in SharePoint.
768
+ */
769
+ supportedSharePointHosts?: SupportedSharePointHost[];
770
+ }
771
+ export type ConfigurableTabContext = "personalTab" | "channelTab" | "privateChatTab" | "meetingChatTab" | "meetingDetailsTab" | "meetingSidePanel" | "meetingStage";
772
+ export type MeetingSurface = "sidePanel" | "stage";
773
+ export type ConfigurableTabScope = "team" | "groupChat";
774
+ export type SupportedSharePointHost = "sharePointFullPage" | "sharePointWebPart";
775
+ export interface Connector {
776
+ /**
777
+ * A unique identifier for the connector which matches its ID in the Connectors Developer
778
+ * Portal.
779
+ */
780
+ connectorId: string;
781
+ /**
782
+ * The url to use for configuring the connector using the inline configuration experience.
783
+ */
784
+ configurationUrl?: string;
785
+ /**
786
+ * Specifies whether the connector offers an experience in the context of a channel in a
787
+ * team, or an experience scoped to an individual user alone. Currently, only the team scope
788
+ * is supported.
789
+ */
790
+ scopes: "team"[];
791
+ }
792
+ export interface CopilotAgents {
793
+ /**
794
+ * An array of declarative agent elements references. Currently, only one declarative agent
795
+ * per application is supported.
796
+ */
797
+ declarativeAgents?: DeclarativeAgentRef[];
798
+ /**
799
+ * An array of Custom Engine Agents. Currently only one Custom Engine Agent per application
800
+ * is supported. Support is currently in public preview.
801
+ */
802
+ customEngineAgents?: CustomEngineAgent[];
803
+ }
804
+ export interface CustomEngineAgent {
805
+ /**
806
+ * The id of the Custom Engine Agent. If it is of type bot, the id must match the id
807
+ * specified in a bot in the bots node and the referenced bot must have personal scope. The
808
+ * app short name and short description must also be defined.
809
+ */
810
+ id: string;
811
+ /**
812
+ * The type of the Custom Engine Agent. Currently only type bot is supported.
813
+ */
814
+ type: "bot";
815
+ disclaimer?: Disclaimer;
816
+ }
817
+ export interface Disclaimer {
818
+ /**
819
+ * The message shown to users before they interact with this application.
820
+ */
821
+ text: string;
822
+ [property: string]: any;
823
+ }
824
+ /**
825
+ * The type of the Custom Engine Agent. Currently only type bot is supported.
826
+ *
827
+ * The content of the dashboard card is sourced from a bot.
828
+ */
829
+ /**
830
+ * A reference to a declarative agent element. The element's definition is in a separate
831
+ * file.
832
+ */
833
+ export interface DeclarativeAgentRef {
834
+ /**
835
+ * A unique identifier for this declarative agent element.
836
+ */
837
+ id: string;
838
+ /**
839
+ * Relative file path to this declarative agent element file in the application package.
840
+ */
841
+ file: string;
842
+ }
843
+ /**
844
+ * Cards wich could be pinned to dashboard providing summarized view of information relevant
845
+ * to user.
846
+ */
847
+ export interface DashboardCard {
848
+ /**
849
+ * Unique Id for the card. Must be unique inside the app.
850
+ */
851
+ id: string;
852
+ /**
853
+ * Represents the name of the card. Maximum length is 255 characters.
854
+ */
855
+ displayName: string;
856
+ /**
857
+ * Description of the card.Maximum length is 255 characters.
858
+ */
859
+ description: string;
860
+ /**
861
+ * Id of the group in the card picker. This must be guid.
862
+ */
863
+ pickerGroupId: string;
864
+ icon?: DashboardCardIcon;
865
+ contentSource: DashboardCardContentSource;
866
+ /**
867
+ * Rendering Size for dashboard card.
868
+ */
869
+ defaultSize: DefaultSize;
870
+ }
871
+ /**
872
+ * Represents a configuration for the source of the card’s content.
873
+ */
874
+ export interface DashboardCardContentSource {
875
+ /**
876
+ * The content of the dashboard card is sourced from a bot.
877
+ */
878
+ sourceType?: "bot";
879
+ /**
880
+ * The configuration for the bot source. Required if sourceType is set to bot.
881
+ */
882
+ botConfiguration?: BotConfiguration;
883
+ }
884
+ /**
885
+ * The configuration for the bot source. Required if sourceType is set to bot.
886
+ */
887
+ export interface BotConfiguration {
888
+ /**
889
+ * The unique Microsoft app ID for the bot as registered with the Bot Framework.
890
+ */
891
+ botId?: string;
892
+ }
893
+ /**
894
+ * Rendering Size for dashboard card.
895
+ */
896
+ export type DefaultSize = "medium" | "large";
897
+ /**
898
+ * Represents a configuration for the source of the card’s content
899
+ */
900
+ export interface DashboardCardIcon {
901
+ /**
902
+ * The icon for the card, to be displayed in the toolbox and card bar, represented as URL.
903
+ */
904
+ iconUrl?: string;
905
+ /**
906
+ * Office UI Fabric/Fluent UI icon friendly name for the card. This value will be used if
907
+ * ‘iconUrl’ is not specified.
908
+ */
909
+ officeUIFabricIconName?: string;
910
+ }
911
+ /**
912
+ * When a group install scope is selected, this will define the default capability when the
913
+ * user installs the app
914
+ */
915
+ export interface DefaultGroupCapability {
916
+ /**
917
+ * When the install scope selected is Team, this field specifies the default capability
918
+ * available
919
+ */
920
+ team?: Groupchat;
921
+ /**
922
+ * When the install scope selected is GroupChat, this field specifies the default capability
923
+ * available
924
+ */
925
+ groupchat?: Groupchat;
926
+ /**
927
+ * When the install scope selected is Meetings, this field specifies the default capability
928
+ * available
929
+ */
930
+ meetings?: Groupchat;
931
+ }
932
+ /**
933
+ * When the install scope selected is GroupChat, this field specifies the default capability
934
+ * available
935
+ *
936
+ * When the install scope selected is Meetings, this field specifies the default capability
937
+ * available
938
+ *
939
+ * When the install scope selected is Team, this field specifies the default capability
940
+ * available
941
+ */
942
+ export type Groupchat = "tab" | "bot" | "connector";
943
+ /**
944
+ * The install scope defined for this app by default. This will be the option displayed on
945
+ * the button when a user tries to add the app
946
+ */
947
+ export type DefaultInstallScope = "personal" | "team" | "groupChat" | "meetings" | "copilot";
948
+ export interface Description {
949
+ /**
950
+ * A short description of the app used when space is limited. Maximum length is 80
951
+ * characters.
952
+ */
953
+ short: string;
954
+ /**
955
+ * The full description of the app. Maximum length is 4000 characters.
956
+ */
957
+ full: string;
958
+ /**
959
+ * Array of features sections describing what the app can do.
960
+ */
961
+ features?: Feature[];
962
+ }
963
+ export interface Feature {
964
+ /**
965
+ * Title of the feature the app provides.
966
+ */
967
+ title: string;
968
+ /**
969
+ * Detailed description of the specific feature.
970
+ */
971
+ description: string;
972
+ }
973
+ export interface Developer {
974
+ /**
975
+ * The display name for the developer.
976
+ */
977
+ name: string;
978
+ /**
979
+ * The Microsoft Partner Network ID that identifies the partner organization building the
980
+ * app. This field is not required, and should only be used if you are already part of the
981
+ * Microsoft Partner Network. More info at https://aka.ms/partner
982
+ */
983
+ mpnId?: string;
984
+ /**
985
+ * The url to the page that provides support information for the app.
986
+ */
987
+ websiteUrl: string;
988
+ /**
989
+ * The url to the page that provides privacy information for the app.
990
+ */
991
+ privacyUrl: string;
992
+ /**
993
+ * The url to the page that provides the terms of use for the app.
994
+ */
995
+ termsOfUseUrl: string;
996
+ }
997
+ export type DevicePermission = "geolocation" | "media" | "notifications" | "midi" | "openExternal";
998
+ export interface ElementRelationshipSet {
999
+ /**
1000
+ * An array containing multiple instances of unidirectional dependency relationships (each
1001
+ * represented by a oneWayDependency object).
1002
+ */
1003
+ oneWayDependencies?: OneWayDependency[];
1004
+ /**
1005
+ * An array containing multiple instances of mutual dependency relationships between
1006
+ * elements (each represented by a mutualDependency object).
1007
+ */
1008
+ mutualDependencies?: Array<ElementReference[]>;
1009
+ }
1010
+ /**
1011
+ * A specific instance of mutual dependency between two or more elements, indicating that
1012
+ * each element depends on the others in a bidirectional manner.
1013
+ */
1014
+ export interface ElementReference {
1015
+ name: MutualDependencyName;
1016
+ id: string;
1017
+ commandIds?: string[];
1018
+ }
1019
+ export type MutualDependencyName = "bots" | "staticTabs" | "composeExtensions" | "configurableTabs";
1020
+ /**
1021
+ * An object representing a unidirectional dependency relationship, where one specific
1022
+ * element (referred to as the `element`) relies on an array of other elements (referred to
1023
+ * as the `dependsOn`) in a single direction.
1024
+ */
1025
+ export interface OneWayDependency {
1026
+ element: ElementReference;
1027
+ dependsOn: ElementReference[];
1028
+ }
1029
+ /**
1030
+ * The set of extensions for this app. Currently only one extensions per app is supported.
1031
+ */
1032
+ export interface ElementExtension {
1033
+ requirements?: RequirementsExtensionElement;
1034
+ runtimes?: ExtensionRuntimesArray[];
1035
+ ribbons?: ExtensionRibbonsArray[];
1036
+ autoRunEvents?: ExtensionAutoRunEventsArray[];
1037
+ alternates?: ExtensionAlternateVersionsArray[];
1038
+ contentRuntimes?: ExtensionContentRuntimeArray[];
1039
+ getStartedMessages?: ExtensionGetStartedMessageArray[];
1040
+ contextMenus?: ExtensionContextMenuArray[];
1041
+ /**
1042
+ * Keyboard shortcuts, also known as key combinations, enable your add-in's users to work
1043
+ * more efficiently. Keyboard shortcuts also improve the add-in's accessibility for users
1044
+ * with disabilities by providing an alternative to the mouse.
1045
+ */
1046
+ keyboardShortcuts?: ExtensionKeyboardShortcut[];
1047
+ /**
1048
+ * The url for your extension, used to validate Exchange user identity tokens.
1049
+ */
1050
+ audienceClaimUrl?: string;
1051
+ }
1052
+ export interface ExtensionAlternateVersionsArray {
1053
+ requirements?: RequirementsExtensionElement;
1054
+ prefer?: Prefer;
1055
+ hide?: Hide;
1056
+ alternateIcons?: AlternateIcons;
1057
+ }
1058
+ export interface AlternateIcons {
1059
+ icon: ExtensionCommonIcon;
1060
+ highResolutionIcon: ExtensionCommonIcon;
1061
+ }
1062
+ export interface ExtensionCommonIcon {
1063
+ /**
1064
+ * Size in pixels of the icon. Three image sizes are required (16, 32, and 80 pixels)
1065
+ */
1066
+ size: number;
1067
+ /**
1068
+ * Absolute Url to the icon.
1069
+ */
1070
+ url: string;
1071
+ }
1072
+ export interface Hide {
1073
+ storeOfficeAddin?: StoreOfficeAddin;
1074
+ customOfficeAddin?: CustomOfficeAddin;
1075
+ /**
1076
+ * Configures how to hide windows native extensions
1077
+ */
1078
+ windowsExtensions?: WindowsExtensions;
1079
+ [property: string]: any;
1080
+ }
1081
+ export interface CustomOfficeAddin {
1082
+ /**
1083
+ * Solution ID of the in-market add-in to hide. Maximum length is 64 characters.
1084
+ */
1085
+ officeAddinId: string;
1086
+ }
1087
+ export interface StoreOfficeAddin {
1088
+ /**
1089
+ * Solution ID of an in-market add-in to hide. Maximum length is 64 characters.
1090
+ */
1091
+ officeAddinId: string;
1092
+ /**
1093
+ * Asset ID of the in-market add-in to hide. Maximum length is 64 characters.
1094
+ */
1095
+ assetId: string;
1096
+ }
1097
+ /**
1098
+ * Configures how to hide windows native extensions
1099
+ */
1100
+ export interface WindowsExtensions {
1101
+ /**
1102
+ * Specifies the effect to take while installing the web add-in if the equivalent add-in is
1103
+ * installed.
1104
+ */
1105
+ effect: Effect;
1106
+ /**
1107
+ * Specifies the equivalent COM add-ins
1108
+ */
1109
+ comAddin?: WindowsExtensionsCOMAddin;
1110
+ /**
1111
+ * Specifies the equivalent automation add-ins
1112
+ */
1113
+ automationAddin?: AutomationAddin;
1114
+ /**
1115
+ * Specifies the XLL-based add-ins custom function
1116
+ */
1117
+ xllCustomFunctions?: XllCustomFunctions;
1118
+ }
1119
+ /**
1120
+ * Specifies the equivalent automation add-ins
1121
+ */
1122
+ export interface AutomationAddin {
1123
+ /**
1124
+ * Specifies the program Ids of the equivalent automation add-ins
1125
+ */
1126
+ progIds: string[];
1127
+ }
1128
+ /**
1129
+ * Specifies the equivalent COM add-ins
1130
+ */
1131
+ export interface WindowsExtensionsCOMAddin {
1132
+ /**
1133
+ * Specifies the program Ids of the equivalent COM add-ins
1134
+ */
1135
+ progIds: string[];
1136
+ }
1137
+ /**
1138
+ * Specifies the effect to take while installing the web add-in if the equivalent add-in is
1139
+ * installed.
1140
+ */
1141
+ export type Effect = "userOptionToDisable" | "disableWithNotification";
1142
+ /**
1143
+ * Specifies the XLL-based add-ins custom function
1144
+ */
1145
+ export interface XllCustomFunctions {
1146
+ /**
1147
+ * Specifies the file names of the XLL-based add-ins custom function
1148
+ */
1149
+ fileNames: string[];
1150
+ }
1151
+ export interface Prefer {
1152
+ comAddin?: PreferCOMAddin;
1153
+ xllCustomFunctions?: ExtensionXllCustomFunctions;
1154
+ [property: string]: any;
1155
+ }
1156
+ export interface PreferCOMAddin {
1157
+ /**
1158
+ * Program ID of the alternate com extension. Maximum length is 64 characters.
1159
+ */
1160
+ progId: string;
1161
+ }
1162
+ export interface ExtensionXllCustomFunctions {
1163
+ /**
1164
+ * File name for the XLL extension. Maximum length is 254 characters.
1165
+ */
1166
+ fileName?: string;
1167
+ [property: string]: any;
1168
+ }
1169
+ /**
1170
+ * Specifies limitations on which clients the add-in can be installed on, including
1171
+ * limitations on the Office host application, the form factors, and the requirement sets
1172
+ * that the client must support.
1173
+ *
1174
+ * Specifies the Office requirement sets.
1175
+ */
1176
+ export interface RequirementsExtensionElement {
1177
+ capabilities?: Capability[];
1178
+ /**
1179
+ * Identifies the scopes in which the add-in can run. Supported values: 'mail', 'workbook',
1180
+ * 'document', 'presentation'.
1181
+ */
1182
+ scopes?: RequirementsScope[];
1183
+ /**
1184
+ * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
1185
+ */
1186
+ formFactors?: FormFactor[];
1187
+ }
1188
+ export interface Capability {
1189
+ /**
1190
+ * Identifies the name of the requirement sets that the add-in needs to run.
1191
+ */
1192
+ name: string;
1193
+ /**
1194
+ * Identifies the minimum version for the requirement sets that the add-in needs to run.
1195
+ */
1196
+ minVersion?: string;
1197
+ /**
1198
+ * Identifies the maximum version for the requirement sets that the add-in needs to run.
1199
+ */
1200
+ maxVersion?: string;
1201
+ }
1202
+ export type FormFactor = "desktop" | "mobile";
1203
+ export type RequirementsScope = "mail" | "workbook" | "document" | "presentation";
1204
+ export interface ExtensionAutoRunEventsArray {
1205
+ requirements?: RequirementsExtensionElement;
1206
+ /**
1207
+ * Specifies the type of event. For supported types, please see:
1208
+ * https://learn.microsoft.com/en-us/office/dev/add-ins/outlook/autolaunch?tabs=xmlmanifest#supported-events.
1209
+ */
1210
+ events: Event[];
1211
+ }
1212
+ export interface Event {
1213
+ type: string;
1214
+ /**
1215
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
1216
+ */
1217
+ actionId: string;
1218
+ /**
1219
+ * Configures how Outlook responds to the event.
1220
+ */
1221
+ options?: Options;
1222
+ }
1223
+ /**
1224
+ * Configures how Outlook responds to the event.
1225
+ */
1226
+ export interface Options {
1227
+ sendMode: SendMode;
1228
+ }
1229
+ export type SendMode = "promptUser" | "softBlock" | "block";
1230
+ /**
1231
+ * Content runtime is for 'ContentApp', which can be embedded directly into Excel or
1232
+ * PowerPoint documents.
1233
+ */
1234
+ export interface ExtensionContentRuntimeArray {
1235
+ /**
1236
+ * Specifies the Office requirement sets for content add-in runtime. If the user's Office
1237
+ * version doesn't support the specified requirements, the component will not be available
1238
+ * in that client.
1239
+ */
1240
+ requirements?: ContentRuntimeRequirements;
1241
+ /**
1242
+ * A unique identifier for this runtime within the app. This is developer specified.
1243
+ */
1244
+ id: string;
1245
+ /**
1246
+ * Specifies the location of code for this runtime. Depending on the runtime.type, add-ins
1247
+ * use either a JavaScript file or an HTML page with an embedded <script> tag that specifies
1248
+ * the URL of a JavaScript file.
1249
+ */
1250
+ code: ExtensionRuntimeCode;
1251
+ /**
1252
+ * The desired height in pixels for the initial content placeholder. This value MUST be
1253
+ * between 32 and 1000 pixels. Default value will be determined by host.
1254
+ */
1255
+ requestedHeight?: number;
1256
+ /**
1257
+ * The desired width in pixels for the initial content placeholder. This value MUST be
1258
+ * between 32 and 1000 pixels. Default value will be determined by host.
1259
+ */
1260
+ requestedWidth?: number;
1261
+ /**
1262
+ * Specifies whether a snapshot image of your content add-in is saved with the host
1263
+ * document. Default value is false. Set true to disable.
1264
+ */
1265
+ disableSnapshot?: boolean;
1266
+ }
1267
+ /**
1268
+ * Specifies the location of code for this runtime. Depending on the runtime.type, add-ins
1269
+ * use either a JavaScript file or an HTML page with an embedded <script> tag that specifies
1270
+ * the URL of a JavaScript file.
1271
+ */
1272
+ export interface ExtensionRuntimeCode {
1273
+ /**
1274
+ * URL of the .html page to be loaded in browser-based runtimes.
1275
+ */
1276
+ page: string;
1277
+ /**
1278
+ * URL of the .js script file to be loaded in UI-less runtimes.
1279
+ */
1280
+ script?: string;
1281
+ }
1282
+ /**
1283
+ * Specifies the Office requirement sets for content add-in runtime. If the user's Office
1284
+ * version doesn't support the specified requirements, the component will not be available
1285
+ * in that client.
1286
+ *
1287
+ * Specifies limitations on which clients the add-in can be installed on, including
1288
+ * limitations on the Office host application, the form factors, and the requirement sets
1289
+ * that the client must support.
1290
+ *
1291
+ * Specifies the Office requirement sets.
1292
+ */
1293
+ export interface ContentRuntimeRequirements {
1294
+ capabilities?: Capability[];
1295
+ /**
1296
+ * Identifies the scopes in which the add-in can run. Supported values: 'mail', 'workbook',
1297
+ * 'document', 'presentation'.
1298
+ */
1299
+ scopes?: RequirementsScope[];
1300
+ /**
1301
+ * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
1302
+ */
1303
+ formFactors?: FormFactor[];
1304
+ }
1305
+ /**
1306
+ * Specifies the context menus for your extension. A context menu is a shortcut menu that
1307
+ * appears when a user right-clicks (selects and holds) in the Office UI. Minimum size is 1.
1308
+ */
1309
+ export interface ExtensionContextMenuArray {
1310
+ requirements?: ContextMenuRequirements;
1311
+ /**
1312
+ * Configures the context menus. Minimum size is 1.
1313
+ */
1314
+ menus: ExtensionMenuItem[];
1315
+ }
1316
+ /**
1317
+ * Configures the context menus. Minimum size is 1.
1318
+ *
1319
+ * The title used for the top of the callout.
1320
+ */
1321
+ export interface ExtensionMenuItem {
1322
+ /**
1323
+ * Use 'text' or 'cell' here for Office context menu. Use 'text' if the context menu should
1324
+ * open when a user right-clicks (selects and holds) on the selected text. Use 'cell' if the
1325
+ * context menu should open when the user right-clicks (selects and holds) on a cell in an
1326
+ * Excel spreadsheet.
1327
+ */
1328
+ entryPoint: EntryPoint;
1329
+ controls: ExtensionCommonCustomGroupControlsItem[];
1330
+ }
1331
+ /**
1332
+ * The control type should be 'menu'. Minimum size is 1.
1333
+ */
1334
+ export interface ExtensionCommonCustomGroupControlsItem {
1335
+ /**
1336
+ * A unique identifier for this control within the app. Maximum length is 64 characters.
1337
+ */
1338
+ id: string;
1339
+ /**
1340
+ * Defines the type of control whether button or menu.
1341
+ */
1342
+ type: TentacledType;
1343
+ /**
1344
+ * Id of an existing office control. Maximum length is 64 characters.
1345
+ */
1346
+ builtInControlId?: string;
1347
+ /**
1348
+ * Displayed text for the control. Maximum length is 64 characters.
1349
+ */
1350
+ label: string;
1351
+ /**
1352
+ * Configures the icons for the custom control.
1353
+ */
1354
+ icons: ExtensionCommonIcon[];
1355
+ supertip: ExtensionCommonSuperToolTip;
1356
+ /**
1357
+ * The ID of an execution-type action that handles this key combination. Maximum length is
1358
+ * 64 characters.
1359
+ */
1360
+ actionId?: string;
1361
+ /**
1362
+ * Specifies whether a group, button, menu, or menu item will be hidden on application and
1363
+ * platform combinations that support the API (Office.ribbon.requestCreateControls) that
1364
+ * installs custom contextual tabs on the ribbon. Default is false.
1365
+ */
1366
+ overriddenByRibbonApi?: boolean;
1367
+ /**
1368
+ * Whether the control is initially enabled.
1369
+ */
1370
+ enabled?: boolean;
1371
+ /**
1372
+ * Configures the items for a menu control.
1373
+ */
1374
+ items?: ExtensionCommonCustomControlMenuItem[];
1375
+ /**
1376
+ * KeyTip shortcut for keyboard navigation (1-3 uppercase alphanumeric characters)
1377
+ */
1378
+ keytip?: string;
1379
+ }
1380
+ export interface ExtensionCommonCustomControlMenuItem {
1381
+ /**
1382
+ * A unique identifier for this control within the app. Maximum length is 64 characters.
1383
+ */
1384
+ id: string;
1385
+ /**
1386
+ * Supported values: menuItem.
1387
+ */
1388
+ type: "menuItem";
1389
+ /**
1390
+ * Displayed text for the control. Maximum length is 64 characters.
1391
+ */
1392
+ label: string;
1393
+ icons?: ExtensionCommonIcon[];
1394
+ supertip: ExtensionCommonSuperToolTip;
1395
+ /**
1396
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
1397
+ */
1398
+ actionId: string;
1399
+ /**
1400
+ * Whether the control is initially enabled.
1401
+ */
1402
+ enabled?: boolean;
1403
+ overriddenByRibbonApi?: boolean;
1404
+ /**
1405
+ * KeyTip shortcut for keyboard navigation (1-3 uppercase alphanumeric characters)
1406
+ */
1407
+ keytip?: string;
1408
+ }
1409
+ export interface ExtensionCommonSuperToolTip {
1410
+ /**
1411
+ * Title text of the super tip. Maximum length is 64 characters.
1412
+ */
1413
+ title: string;
1414
+ /**
1415
+ * Description of the super tip. Maximum length is 250 characters.
1416
+ */
1417
+ description: string;
1418
+ }
1419
+ /**
1420
+ * Supported values: menuItem.
1421
+ */
1422
+ /**
1423
+ * Defines the type of control whether button or menu.
1424
+ */
1425
+ export type TentacledType = "button" | "menu";
1426
+ /**
1427
+ * Use 'text' or 'cell' here for Office context menu. Use 'text' if the context menu should
1428
+ * open when a user right-clicks (selects and holds) on the selected text. Use 'cell' if the
1429
+ * context menu should open when the user right-clicks (selects and holds) on a cell in an
1430
+ * Excel spreadsheet.
1431
+ */
1432
+ export type EntryPoint = "text" | "cell";
1433
+ /**
1434
+ * Specifies limitations on which clients the add-in can be installed on, including
1435
+ * limitations on the Office host application, the form factors, and the requirement sets
1436
+ * that the client must support.
1437
+ *
1438
+ * Specifies the Office requirement sets.
1439
+ */
1440
+ export interface ContextMenuRequirements {
1441
+ capabilities?: Capability[];
1442
+ /**
1443
+ * Identifies the scopes in which the add-in can run. Supported values: 'mail', 'workbook',
1444
+ * 'document', 'presentation'.
1445
+ */
1446
+ scopes?: RequirementsScope[];
1447
+ /**
1448
+ * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
1449
+ */
1450
+ formFactors?: FormFactor[];
1451
+ }
1452
+ /**
1453
+ * Provides information used by the callout that appears when the add-in is installed.
1454
+ * Minimum size is 1. Maximum size is 3.
1455
+ */
1456
+ export interface ExtensionGetStartedMessageArray {
1457
+ requirements?: GetStartedMessageRequirements;
1458
+ /**
1459
+ * The title used for the top of the callout.
1460
+ */
1461
+ title: string;
1462
+ /**
1463
+ * The description/body content for the callout.
1464
+ */
1465
+ description: string;
1466
+ /**
1467
+ * A URL to a page that explains the add-in in detail.
1468
+ */
1469
+ learnMoreUrl: string;
1470
+ }
1471
+ /**
1472
+ * Specifies limitations on which clients the add-in can be installed on, including
1473
+ * limitations on the Office host application, the form factors, and the requirement sets
1474
+ * that the client must support.
1475
+ *
1476
+ * Specifies the Office requirement sets.
1477
+ */
1478
+ export interface GetStartedMessageRequirements {
1479
+ capabilities?: Capability[];
1480
+ /**
1481
+ * Identifies the scopes in which the add-in can run. Supported values: 'mail', 'workbook',
1482
+ * 'document', 'presentation'.
1483
+ */
1484
+ scopes?: RequirementsScope[];
1485
+ /**
1486
+ * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
1487
+ */
1488
+ formFactors?: FormFactor[];
1489
+ }
1490
+ export interface ExtensionKeyboardShortcut {
1491
+ /**
1492
+ * Specifies the Office requirement sets.
1493
+ */
1494
+ requirements?: RequirementsExtensionElement;
1495
+ /**
1496
+ * Array of mappings from actions to the key combinations that invoke the actions.
1497
+ */
1498
+ shortcuts?: ExtensionShortcut[];
1499
+ /**
1500
+ * Specifies the full URLs for shortcuts mapping and localization resource files that don't
1501
+ * directly support the unified manifest.
1502
+ */
1503
+ keyMappingFiles?: KeyboardShortcutsMappingFiles;
1504
+ [property: string]: any;
1505
+ }
1506
+ /**
1507
+ * Specifies the full URLs for shortcuts mapping and localization resource files that don't
1508
+ * directly support the unified manifest.
1509
+ */
1510
+ export interface KeyboardShortcutsMappingFiles {
1511
+ /**
1512
+ * The full URL of the JSON file that will contain the keyboard combination configuration on
1513
+ * Office application and platform combinations that don't directly support the unified
1514
+ * manifest.
1515
+ */
1516
+ shortcutsUrl: string;
1517
+ /**
1518
+ * The full URL of a file that provides supplemental resource, such as localized strings,
1519
+ * for the file specified in the shortcutsUrl attribute.
1520
+ */
1521
+ localizationResourceUrl?: string;
1522
+ }
1523
+ export interface ExtensionShortcut {
1524
+ key: Key;
1525
+ /**
1526
+ * The ID of an execution-type action that handles this key combination.
1527
+ */
1528
+ actionId: string;
1529
+ [property: string]: any;
1530
+ }
1531
+ /**
1532
+ * Key combinations in different platform (i.e. default, windows, web and mac).
1533
+ */
1534
+ export interface Key {
1535
+ /**
1536
+ * Fallback key for any platform that isn't specified.
1537
+ */
1538
+ default: string;
1539
+ /**
1540
+ * key for mac platform. Alt is mapped to the Option key.
1541
+ */
1542
+ mac?: string;
1543
+ /**
1544
+ * key for web platform.
1545
+ */
1546
+ web?: string;
1547
+ /**
1548
+ * key for windows platform. Command is mapped to the Ctrl key.
1549
+ */
1550
+ windows?: string;
1551
+ [property: string]: any;
1552
+ }
1553
+ export interface ExtensionRibbonsArray {
1554
+ requirements?: RequirementsExtensionElement;
1555
+ contexts?: ExtensionContext[];
1556
+ tabs: ExtensionRibbonsArrayTabsItem[];
1557
+ fixedControls?: ExtensionRibbonsArrayFixedControlItem[];
1558
+ spamPreProcessingDialog?: ExtensionRibbonsSpamPreProcessingDialog;
1559
+ }
1560
+ /**
1561
+ * Specifies the Office application windows in which the ribbon customization is available
1562
+ * to the user. Each item in the array is a member of a string array. Possible values are:
1563
+ * mailRead, mailCompose, meetingDetailsOrganizer, meetingDetailsAttendee,
1564
+ * onlineMeetingDetailsOrganizer, logEventMeetingDetailsAttendee, spamReportingOverride.
1565
+ */
1566
+ export type ExtensionContext = "mailRead" | "mailCompose" | "meetingDetailsOrganizer" | "meetingDetailsAttendee" | "onlineMeetingDetailsOrganizer" | "logEventMeetingDetailsAttendee" | "spamReportingOverride" | "default";
1567
+ export interface ExtensionRibbonsArrayFixedControlItem {
1568
+ /**
1569
+ * A unique identifier for this control within the app. Maximum length is 64 characters.
1570
+ */
1571
+ id: string;
1572
+ /**
1573
+ * Defines the type of control.
1574
+ */
1575
+ type: "button";
1576
+ /**
1577
+ * Displayed text for the control. Maximum length is 64 characters.
1578
+ */
1579
+ label: string;
1580
+ icons: ExtensionCommonIcon[];
1581
+ supertip: ExtensionCommonSuperToolTip;
1582
+ /**
1583
+ * The ID of an execution-type action that handles this key combination. Maximum length is
1584
+ * 64 characters.
1585
+ */
1586
+ actionId: string;
1587
+ /**
1588
+ * Whether the control is initially enabled.
1589
+ */
1590
+ enabled: boolean;
1591
+ }
1592
+ /**
1593
+ * Defines the type of control.
1594
+ */
1595
+ export interface ExtensionRibbonsSpamPreProcessingDialog {
1596
+ /**
1597
+ * Specifies the custom title of the preprocessing dialog.
1598
+ */
1599
+ title: string;
1600
+ /**
1601
+ * Specifies the custom text that appears in the preprocessing dialog.
1602
+ */
1603
+ description: string;
1604
+ /**
1605
+ * Indicating if the developer will allow the user to permanently bypass the PreProcessing
1606
+ * Dialog for this add-in. "false" is the default value if not specified.
1607
+ */
1608
+ spamNeverShowAgainOption?: boolean;
1609
+ /**
1610
+ * Specifies up to five options that a user can select from the preprocessing dialog to
1611
+ * provide a reason for reporting a message.
1612
+ */
1613
+ spamReportingOptions?: SpamReportingOptions;
1614
+ /**
1615
+ * A text box to the preprocessing dialog to allow users to provide additional information
1616
+ * on the message they're reporting. This value is the title of that text box.
1617
+ */
1618
+ spamFreeTextSectionTitle?: string;
1619
+ /**
1620
+ * Specifies the custom text and URL to provide informational resources to the users.
1621
+ */
1622
+ spamMoreInfo?: SpamMoreInfo;
1623
+ }
1624
+ /**
1625
+ * Specifies the custom text and URL to provide informational resources to the users.
1626
+ */
1627
+ export interface SpamMoreInfo {
1628
+ /**
1629
+ * Specifies display content of the hyperlink pointing to the site containing informational
1630
+ * resources in the preprocessing dialog of a spam-reporting add-in.
1631
+ */
1632
+ text: string;
1633
+ /**
1634
+ * Specifies the URL of the hyperlink pointing to the site containing informational
1635
+ * resources in the preprocessing dialog of a spam-reporting add-in.
1636
+ */
1637
+ url: string;
1638
+ [property: string]: any;
1639
+ }
1640
+ /**
1641
+ * Specifies up to five options that a user can select from the preprocessing dialog to
1642
+ * provide a reason for reporting a message.
1643
+ */
1644
+ export interface SpamReportingOptions {
1645
+ /**
1646
+ * Specifies the title listed before the reporting options list.
1647
+ */
1648
+ title: string;
1649
+ /**
1650
+ * Specifies the custom options that a user can select from the preprocessing dialog to
1651
+ * provide a reason for reporting a message.
1652
+ */
1653
+ options: string[];
1654
+ /**
1655
+ * Can be set to "radio" or "checkbox". This determines if Radio Buttons or checkboxes are
1656
+ * used for the options. "checkbox" is the default if this value is not specified.
1657
+ */
1658
+ type?: SpamReportingOptionsType;
1659
+ [property: string]: any;
1660
+ }
1661
+ /**
1662
+ * Can be set to "radio" or "checkbox". This determines if Radio Buttons or checkboxes are
1663
+ * used for the options. "checkbox" is the default if this value is not specified.
1664
+ */
1665
+ export type SpamReportingOptionsType = "radio" | "checkbox";
1666
+ export interface ExtensionRibbonsArrayTabsItem {
1667
+ /**
1668
+ * A unique identifier for this tab within the app. Maximum length is 64 characters.
1669
+ */
1670
+ id?: string;
1671
+ /**
1672
+ * Displayed text for the tab. Maximum length is 64 characters.
1673
+ */
1674
+ label?: string;
1675
+ position?: Position;
1676
+ /**
1677
+ * Id of the existing office Tab. Maximum length is 64 characters.
1678
+ */
1679
+ builtInTabId?: string;
1680
+ /**
1681
+ * Defines tab groups.
1682
+ */
1683
+ groups?: ExtensionRibbonsCustomTabGroupsItem[];
1684
+ /**
1685
+ * Defines mobile group item.
1686
+ */
1687
+ customMobileRibbonGroups?: ExtensionRibbonsCustomMobileGroupItem[];
1688
+ /**
1689
+ * KeyTip shortcut for keyboard navigation (1-3 uppercase alphanumeric characters)
1690
+ */
1691
+ keytip?: string;
1692
+ }
1693
+ export interface ExtensionRibbonsCustomMobileGroupItem {
1694
+ /**
1695
+ * Specify the Id of the group. Used for mobileMessageRead ext point.
1696
+ */
1697
+ id: string;
1698
+ /**
1699
+ * Short label of the control. Maximum length is 32 characters.
1700
+ */
1701
+ label: string;
1702
+ controls: ExtensionRibbonsCustomMobileControlButtonItem[];
1703
+ [property: string]: any;
1704
+ }
1705
+ export interface ExtensionRibbonsCustomMobileControlButtonItem {
1706
+ /**
1707
+ * Specify the Id of the button like msgReadFunctionButton.
1708
+ */
1709
+ id: string;
1710
+ type: "mobileButton";
1711
+ /**
1712
+ * Short label of the control. Maximum length is 32 characters.
1713
+ */
1714
+ label: string;
1715
+ icons: ExtensionCustomMobileIcon[];
1716
+ /**
1717
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
1718
+ */
1719
+ actionId: string;
1720
+ [property: string]: any;
1721
+ }
1722
+ export interface ExtensionCustomMobileIcon {
1723
+ /**
1724
+ * Size in pixels of the icon. Three image sizes are required (25, 32, and 48 pixels).
1725
+ */
1726
+ size: number;
1727
+ /**
1728
+ * Url to the icon.
1729
+ */
1730
+ url: string;
1731
+ /**
1732
+ * How to scale - 1,2,3 for each image. This attribute specifies the UIScreen.scale property
1733
+ * for iOS devices.
1734
+ */
1735
+ scale: number;
1736
+ }
1737
+ export interface ExtensionRibbonsCustomTabGroupsItem {
1738
+ /**
1739
+ * A unique identifier for this group within the app. Maximum length is 64 characters.
1740
+ */
1741
+ id?: string;
1742
+ /**
1743
+ * Displayed text for the group. Maximum length is 64 characters.
1744
+ */
1745
+ label?: string;
1746
+ icons?: ExtensionCommonIcon[];
1747
+ controls?: ExtensionCommonCustomGroupControlsItem[];
1748
+ /**
1749
+ * Id of a built-in Group. Maximum length is 64 characters.
1750
+ */
1751
+ builtInGroupId?: string;
1752
+ /**
1753
+ * Specifies whether a group will be hidden on application and platform combinations that
1754
+ * support the API (Office.ribbon.requestCreateControls) that installs custom contextual
1755
+ * tabs on the ribbon. Default is false.
1756
+ */
1757
+ overriddenByRibbonApi?: boolean;
1758
+ }
1759
+ export interface Position {
1760
+ /**
1761
+ * The id of the built-in tab. Maximum length is 64 characters.
1762
+ */
1763
+ builtInTabId: string;
1764
+ /**
1765
+ * Define alignment of this custom tab relative to the specified built-in tab.
1766
+ */
1767
+ align: Align;
1768
+ }
1769
+ /**
1770
+ * Define alignment of this custom tab relative to the specified built-in tab.
1771
+ */
1772
+ export type Align = "after" | "before";
1773
+ /**
1774
+ * A runtime environment for a page or script
1775
+ */
1776
+ export interface ExtensionRuntimesArray {
1777
+ requirements?: RequirementsExtensionElement;
1778
+ /**
1779
+ * A unique identifier for this runtime within the app. Maximum length is 64 characters.
1780
+ */
1781
+ id: string;
1782
+ /**
1783
+ * Supports running functions and launching pages.
1784
+ */
1785
+ type?: "general";
1786
+ code: ExtensionRuntimeCode;
1787
+ /**
1788
+ * Runtimes with a short lifetime do not preserve state across executions. Runtimes with a
1789
+ * long lifetime do.
1790
+ */
1791
+ lifetime?: Lifetime;
1792
+ actions?: ExtensionRuntimesActionsItem[];
1793
+ customFunctions?: ExtensionCustomFunctions;
1794
+ }
1795
+ /**
1796
+ * Specifies the set of actions supported by this runtime. An action is either running a
1797
+ * JavaScript function or opening a view such as a task pane.
1798
+ */
1799
+ export interface ExtensionRuntimesActionsItem {
1800
+ /**
1801
+ * Identifier for this action. Maximum length is 64 characters. This value is passed to the
1802
+ * code file.
1803
+ */
1804
+ id: string;
1805
+ /**
1806
+ * executeFunction: Run a script function without waiting for it to finish. openPage: Open a
1807
+ * page in a view. executeDataFunction: invoke command and retrieve data.
1808
+ */
1809
+ type: ActionType;
1810
+ /**
1811
+ * Display name of the action. Maximum length is 64 characters.
1812
+ */
1813
+ displayName?: string;
1814
+ /**
1815
+ * Specifies that a task pane supports pinning, which keeps the task pane open when the user
1816
+ * changes the selection.
1817
+ */
1818
+ pinnable?: boolean;
1819
+ /**
1820
+ * View where the page should be opened. Maximum length is 64 characters.
1821
+ */
1822
+ view?: string;
1823
+ /**
1824
+ * Whether allows the action to have multiple selection.
1825
+ */
1826
+ multiselect?: boolean;
1827
+ /**
1828
+ * Whether allows task pane add-ins to activate without the Reading Pane enabled or a
1829
+ * message selected.
1830
+ */
1831
+ supportsNoItemContext?: boolean;
1832
+ }
1833
+ /**
1834
+ * executeFunction: Run a script function without waiting for it to finish. openPage: Open a
1835
+ * page in a view. executeDataFunction: invoke command and retrieve data.
1836
+ */
1837
+ export type ActionType = "executeFunction" | "openPage" | "executeDataFunction";
1838
+ /**
1839
+ * Custom function enable developers to add new functions to Excel by defining those
1840
+ * functions in JavaScript as part of an add-in. Users within Excel can access custom
1841
+ * functions just as they would any native function in Excel, such as SUM().
1842
+ */
1843
+ export interface ExtensionCustomFunctions {
1844
+ /**
1845
+ * Array of function object which defines function metadata.
1846
+ */
1847
+ functions?: ExtensionFunction[];
1848
+ namespace?: ExtensionCustomFunctionsNamespace;
1849
+ /**
1850
+ * Allows a custom function to accept Excel data types as parameters and return values.
1851
+ */
1852
+ allowCustomDataForDataTypeAny?: boolean;
1853
+ /**
1854
+ * The full URL of a metadata json file with default locale.
1855
+ */
1856
+ metadataUrl?: string;
1857
+ enums?: Enum[];
1858
+ }
1859
+ export interface Enum {
1860
+ /**
1861
+ * A unique ID for the enum.
1862
+ */
1863
+ id: string;
1864
+ /**
1865
+ * The type of the values in this enum.
1866
+ */
1867
+ type: EnumType;
1868
+ /**
1869
+ * Array that defines the constants for the enum.
1870
+ */
1871
+ values: ValueElement[];
1872
+ }
1873
+ /**
1874
+ * The type of the values in this enum.
1875
+ */
1876
+ export type EnumType = "number" | "string";
1877
+ export interface ValueElement {
1878
+ /**
1879
+ * A brief description of the constant.
1880
+ */
1881
+ name: string;
1882
+ /**
1883
+ * When enum type is number, the actual number value of the constant.
1884
+ */
1885
+ numberValue?: number | null;
1886
+ /**
1887
+ * When enum type is string, the actual string value of the constant.
1888
+ */
1889
+ stringValue?: string;
1890
+ /**
1891
+ * Additional information about the constant, intended to provide more context or details.
1892
+ */
1893
+ tooltip?: string;
1894
+ }
1895
+ export interface ExtensionFunction {
1896
+ /**
1897
+ * A unique ID for the function.
1898
+ */
1899
+ id: string;
1900
+ /**
1901
+ * The name of the function that end users see in Excel. In Excel, this function name is
1902
+ * prefixed by the custom functions namespace that's specified in the manifest file.
1903
+ */
1904
+ name: string;
1905
+ /**
1906
+ * The description of the function that end users see in Excel.
1907
+ */
1908
+ description?: string;
1909
+ /**
1910
+ * URL that provides information about the function. (It is displayed in a task pane.)
1911
+ */
1912
+ helpUrl?: string;
1913
+ /**
1914
+ * Array that defines the input parameters for the function.
1915
+ */
1916
+ parameters: ExtensionFunctionParameter[];
1917
+ result: ExtensionResult;
1918
+ /**
1919
+ * If true, the function can output repeatedly to the cell even when invoked only once. This
1920
+ * option is useful for rapidly-changing data sources, such as a stock price. The function
1921
+ * should have no return statement. Instead, the result value is passed as the argument of
1922
+ * the StreamingInvocation.setResult callback function.
1923
+ */
1924
+ stream?: boolean;
1925
+ /**
1926
+ * If true, the function recalculates each time Excel recalculates, instead of only when the
1927
+ * formula's dependent values have changed. A function can't use both the stream and
1928
+ * volatile properties. If the stream and volatile properties are both set to true, the
1929
+ * volatile property will be ignored.
1930
+ */
1931
+ volatile?: boolean;
1932
+ /**
1933
+ * If true, Excel calls the CancelableInvocation handler whenever the user takes an action
1934
+ * that has the effect of canceling the function; for example, manually triggering
1935
+ * recalculation or editing a cell that is referenced by the function. Cancelable functions
1936
+ * are typically only used for asynchronous functions that return a single result and need
1937
+ * to handle the cancellation of a request for data. A function can't use both the stream
1938
+ * and cancelable properties.
1939
+ */
1940
+ cancelable?: boolean;
1941
+ /**
1942
+ * If true, your custom function can access the address of the cell that invoked it. The
1943
+ * address property of the invocation parameter contains the address of the cell that
1944
+ * invoked your custom function. A function can't use both the stream and requiresAddress
1945
+ * properties.
1946
+ */
1947
+ requiresAddress?: boolean;
1948
+ /**
1949
+ * If true, your custom function can access the addresses of the function's input
1950
+ * parameters. This property must be used in combination with the dimensionality property of
1951
+ * the result object, and dimensionality must be set to matrix.
1952
+ */
1953
+ requiresParameterAddress?: boolean;
1954
+ /**
1955
+ * If `true`, the function can access the address of the cell calling the streaming
1956
+ * function. The `address` property of the invocation parameter contains the address of the
1957
+ * cell that invoked your streaming function.
1958
+ */
1959
+ requiresStreamAddress?: boolean;
1960
+ /**
1961
+ * If `true`, the function can access the parameter addresses of the cell calling the
1962
+ * streaming function. The `parameterAddresses` property of the invocation parameter
1963
+ * contains the parameter addresses for your streaming function.
1964
+ */
1965
+ requiresStreamParameterAddresses?: boolean;
1966
+ /**
1967
+ * If `true`, the data type being referenced by the custom function is passed as the first
1968
+ * argument to the custom function.
1969
+ */
1970
+ capturesCallingObject?: boolean;
1971
+ /**
1972
+ * If `true`, the custom function will not appear in the formula AutoComplete menu in Excel.
1973
+ */
1974
+ excludeFromAutoComplete?: boolean;
1975
+ /**
1976
+ * If `true`, it designates that the function is a linked entity load service that returns
1977
+ * linked entity cell values for linked entity IDs requested by Excel.
1978
+ */
1979
+ linkedEntityLoadService?: boolean;
1980
+ [property: string]: any;
1981
+ }
1982
+ export interface ExtensionFunctionParameter {
1983
+ /**
1984
+ * The name of the parameter. This name is displayed in Excel's IntelliSense.
1985
+ */
1986
+ name: string;
1987
+ /**
1988
+ * A description of the parameter. This is displayed in Excel's IntelliSense.
1989
+ */
1990
+ description?: string;
1991
+ /**
1992
+ * The data type of the parameter. It can only be 'boolean', 'number', 'string', 'any',
1993
+ * 'CustomFunctions.Invocation', 'CustomFunctions.StreamingInvocation' or
1994
+ * 'CustomFunctions.CancelableInvocation', 'any' allows you to use any of other types.
1995
+ */
1996
+ type?: string;
1997
+ /**
1998
+ * A subfield of the type property. Specifies the Excel data types accepted by the custom
1999
+ * function. Accepts the values cellvalue, booleancellvalue, doublecellvalue,
2000
+ * entitycellvalue, errorcellvalue, linkedentitycellvalue, localimagecellvalue,
2001
+ * stringcellvalue, webimagecellvalue
2002
+ */
2003
+ cellValueType?: CellValueType;
2004
+ /**
2005
+ * Must be either scalar (a non-array value) or matrix (a 2-dimensional array).
2006
+ */
2007
+ dimensionality?: Dimensionality;
2008
+ /**
2009
+ * |The `id` of the enum in the `enums` array. This associates the custom enum with the
2010
+ * function and enables Excel to display the enum members in the formula AutoComplete menu.
2011
+ */
2012
+ customEnumId?: string;
2013
+ /**
2014
+ * If true, the parameter is optional.
2015
+ */
2016
+ optional?: boolean | null;
2017
+ /**
2018
+ * If true, parameters populate from a specified array. Note that functions all repeating
2019
+ * parameters are considered optional parameters by definition.
2020
+ */
2021
+ repeating?: boolean;
2022
+ [property: string]: any;
2023
+ }
2024
+ /**
2025
+ * A subfield of the type property. Specifies the Excel data types accepted by the custom
2026
+ * function. Accepts the values cellvalue, booleancellvalue, doublecellvalue,
2027
+ * entitycellvalue, errorcellvalue, linkedentitycellvalue, localimagecellvalue,
2028
+ * stringcellvalue, webimagecellvalue
2029
+ */
2030
+ export type CellValueType = "cellvalue" | "booleancellvalue" | "doublecellvalue" | "entitycellvalue" | "errorcellvalue" | "linkedentitycellvalue" | "localimagecellvalue" | "stringcellvalue" | "webimagecellvalue";
2031
+ /**
2032
+ * Must be either scalar (a non-array value) or matrix (a 2-dimensional array).
2033
+ *
2034
+ * Must be either scalar (a non-array value) or matrix (a 2-dimensional array). Default:
2035
+ * scalar.
2036
+ */
2037
+ export type Dimensionality = "scalar" | "matrix";
2038
+ /**
2039
+ * Object that defines the type of information that is returned by the function.
2040
+ */
2041
+ export interface ExtensionResult {
2042
+ /**
2043
+ * Must be either scalar (a non-array value) or matrix (a 2-dimensional array). Default:
2044
+ * scalar.
2045
+ */
2046
+ dimensionality?: Dimensionality;
2047
+ [property: string]: any;
2048
+ }
2049
+ /**
2050
+ * Defines the namespace for your custom functions. A namespace prepends itself to your
2051
+ * custom functions to help customers identify your functions as part of your add-in.
2052
+ */
2053
+ export interface ExtensionCustomFunctionsNamespace {
2054
+ /**
2055
+ * Non-localizable version of the namespace.
2056
+ */
2057
+ id: string;
2058
+ /**
2059
+ * Localizable version of the namespace.
2060
+ */
2061
+ name: string;
2062
+ [property: string]: any;
2063
+ }
2064
+ /**
2065
+ * Runtimes with a short lifetime do not preserve state across executions. Runtimes with a
2066
+ * long lifetime do.
2067
+ */
2068
+ export type Lifetime = "short" | "long";
2069
+ /**
2070
+ * Supports running functions and launching pages.
2071
+ */
2072
+ /**
2073
+ * Specify the app's Graph connector configuration. If this is present then
2074
+ * webApplicationInfo.id must also be specified.
2075
+ */
2076
+ export interface GraphConnector {
2077
+ /**
2078
+ * The url where Graph-connector notifications for the application should be sent.
2079
+ */
2080
+ notificationUrl: string;
2081
+ }
2082
+ export interface Icons {
2083
+ /**
2084
+ * A relative file path to a transparent PNG outline icon. The border color needs to be
2085
+ * white. Size 32x32.
2086
+ */
2087
+ outline: string;
2088
+ /**
2089
+ * A relative file path to a full color PNG icon. Size 192x192.
2090
+ */
2091
+ color: string;
2092
+ /**
2093
+ * A relative file path to a full color PNG icon with transparent background. Size 32x32.
2094
+ */
2095
+ color32x32?: string;
2096
+ }
2097
+ /**
2098
+ * The Intune-related properties for the app.
2099
+ */
2100
+ export interface IntuneInfo {
2101
+ /**
2102
+ * Supported mobile app managment version that the app is compliant with.
2103
+ */
2104
+ supportedMobileAppManagementVersion?: string;
2105
+ }
2106
+ export interface LocalizationInfo {
2107
+ /**
2108
+ * The language tag of the strings in this top level manifest file.
2109
+ */
2110
+ defaultLanguageTag: string;
2111
+ /**
2112
+ * A relative file path to a the .json file containing strings in the default language.
2113
+ */
2114
+ defaultLanguageFile?: string;
2115
+ additionalLanguages?: AdditionalLanguage[];
2116
+ }
2117
+ export interface AdditionalLanguage {
2118
+ /**
2119
+ * The language tag of the strings in the provided file.
2120
+ */
2121
+ languageTag: string;
2122
+ /**
2123
+ * A relative file path to a the .json file containing the translated strings.
2124
+ */
2125
+ file: string;
2126
+ }
2127
+ /**
2128
+ * Specify meeting extension definition.
2129
+ */
2130
+ export interface MeetingExtensionDefinition {
2131
+ /**
2132
+ * Meeting supported scenes.
2133
+ */
2134
+ scenes?: Scene[];
2135
+ /**
2136
+ * A boolean value indicating whether this app can stream the meeting's audio video content
2137
+ * to an RTMP endpoint.
2138
+ */
2139
+ supportsStreaming?: boolean;
2140
+ /**
2141
+ * Represents if the app has added support for sharing to stage.
2142
+ */
2143
+ supportsCustomShareToStage?: boolean;
2144
+ /**
2145
+ * A boolean value indicating whether this app allows management by anonymous users.
2146
+ */
2147
+ supportsAnonymousGuestUsers?: boolean;
2148
+ }
2149
+ export interface Scene {
2150
+ /**
2151
+ * A unique identifier for this scene. This id must be a GUID.
2152
+ */
2153
+ id: string;
2154
+ /**
2155
+ * Scene name.
2156
+ */
2157
+ name: string;
2158
+ /**
2159
+ * A relative file path to a scene metadata json file.
2160
+ */
2161
+ file: string;
2162
+ /**
2163
+ * A relative file path to a scene PNG preview icon.
2164
+ */
2165
+ preview: string;
2166
+ /**
2167
+ * Maximum audiences supported in scene.
2168
+ */
2169
+ maxAudience: number;
2170
+ /**
2171
+ * Number of seats reserved for organizers or presenters.
2172
+ */
2173
+ seatsReservedForOrganizersOrPresenters: number;
2174
+ }
2175
+ export interface NameClass {
2176
+ /**
2177
+ * A short display name for the app.
2178
+ */
2179
+ short: string;
2180
+ /**
2181
+ * The full name of the app, used if the full app name exceeds 30 characters.
2182
+ */
2183
+ full?: string;
2184
+ }
2185
+ export type Permission = "identity" | "messageTeamMembers";
2186
+ export interface StaticTab {
2187
+ /**
2188
+ * A unique identifier for the entity which the tab displays.
2189
+ */
2190
+ entityId: string;
2191
+ /**
2192
+ * The display name of the tab.
2193
+ */
2194
+ name?: string;
2195
+ /**
2196
+ * The url which points to the entity UI to be displayed in the canvas.
2197
+ */
2198
+ contentUrl?: string;
2199
+ /**
2200
+ * The Microsoft App ID specified for the bot in the Bot Framework portal
2201
+ * (https://dev.botframework.com/bots)
2202
+ */
2203
+ contentBotId?: string;
2204
+ /**
2205
+ * The url to point at if a user opts to view in a browser.
2206
+ */
2207
+ websiteUrl?: string;
2208
+ /**
2209
+ * The url to direct a user's search queries.
2210
+ */
2211
+ searchUrl?: string;
2212
+ /**
2213
+ * Specifies whether the tab offers an experience in the context of a channel in a team, or
2214
+ * an experience scoped to an individual user alone or group chat. These options are
2215
+ * non-exclusive. Currently static tabs are only supported in the 'personal' scope.
2216
+ */
2217
+ scopes: StaticTabScope[];
2218
+ /**
2219
+ * The set of contextItem scopes that a tab belong to
2220
+ */
2221
+ context?: StaticTabContext[];
2222
+ requirementSet?: ElementRequirementSet;
2223
+ }
2224
+ export type StaticTabContext = "personalTab" | "channelTab" | "privateChatTab" | "meetingChatTab" | "meetingDetailsTab" | "meetingSidePanel" | "meetingStage" | "teamLevelApp";
2225
+ export type StaticTabScope = "team" | "personal" | "groupChat";
2226
+ /**
2227
+ * Subscription offer associated with this app.
2228
+ */
2229
+ export interface SubscriptionOffer {
2230
+ /**
2231
+ * A unique identifier for the Commercial Marketplace Software as a Service Offer.
2232
+ */
2233
+ offerId: string;
2234
+ }
2235
+ export type SupportedChannelType = "sharedChannels" | "privateChannels";
2236
+ /**
2237
+ * A property in the app manifest that declares support for all channel features,
2238
+ * categorized by tiers.
2239
+ */
2240
+ /**
2241
+ * Specify your AAD App ID and Graph information to help users seamlessly sign into your AAD
2242
+ * app.
2243
+ */
2244
+ export interface WebApplicationInfo {
2245
+ /**
2246
+ * AAD application id of the app. This id must be a GUID.
2247
+ */
2248
+ id: string;
2249
+ /**
2250
+ * Resource url of app for acquiring auth token for SSO.
2251
+ */
2252
+ resource?: string;
2253
+ /**
2254
+ * By including this property, an NAA token based on its contents will be prefetched when
2255
+ * the tab is loaded.
2256
+ */
2257
+ nestedAppAuthInfo?: NestedAppAuthInfo[];
2258
+ }
2259
+ export interface NestedAppAuthInfo {
2260
+ /**
2261
+ * Represents the nested app's valid redirect URI (always a base origin).
2262
+ */
2263
+ redirectUri: string;
2264
+ /**
2265
+ * Represents the stringified list of scopes the access token requested requires. Order must
2266
+ * match that of the proceeding NAA request in the app.
2267
+ */
2268
+ scopes: string[];
2269
+ /**
2270
+ * An optional JSON formatted object of client capabilities that represents if the resource
2271
+ * server is CAE capable. Do not use an empty string for this value. If unsupported, keep
2272
+ * the field undefined. If supported, use the following string exactly:
2273
+ * '{"access_token":{"xms_cc":{"values":["CP1"]}}}'. More info on client capabilities here:
2274
+ * https://learn.microsoft.com/en-us/entra/identity-platform/claims-challenge?tabs=dotnet#how-to-communicate-client-capabilities-to-microsoft-entra-id
2275
+ */
2276
+ claims?: string;
2277
+ }
2278
+ export declare class Convert {
2279
+ static toTeamsManifestV1D27(json: string): TeamsManifestV1D27;
2280
+ static teamsManifestV1D27ToJson(value: TeamsManifestV1D27): string;
2281
+ }