@adobe/ccweb-add-on-sdk-types 1.10.0 → 1.12.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/ccweb-add-on-sdk-types",
3
- "version": "1.10.0",
3
+ "version": "1.12.0",
4
4
  "author": "Adobe",
5
5
  "license": "MIT",
6
6
  "description": "Type definitions for Adobe Creative Cloud Web Add-on SDK.",
@@ -22,8 +22,6 @@
22
22
  * SOFTWARE.
23
23
  ********************************************************************************/
24
24
 
25
- /// <reference types="gl-matrix/index.js" />
26
-
27
25
  import { mat2d } from "gl-matrix";
28
26
 
29
27
  /**
@@ -32,61 +30,31 @@ import { mat2d } from "gl-matrix";
32
30
  */
33
31
  export declare class AddOnData {
34
32
  /**
35
- * <InlineAlert slots="text" variant="warning"/>
36
- *
37
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
38
- *
39
- * @experimental
40
33
  * Sets a private metadata entry on the node.
41
34
  * @param key - The key for the private metadata entry.
42
35
  * @param value - The value for the private metadata entry.
43
36
  */
44
37
  setItem(key: string, value: string): void;
45
38
  /**
46
- * <InlineAlert slots="text" variant="warning"/>
47
- *
48
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
49
- *
50
- * @experimental
51
39
  * Retrieves the private metadata value for the specified key on the node.
52
40
  * @param key - The key of the private metadata entry to retrieve.
53
41
  * @returns The value of the private metadata entry.
54
42
  */
55
43
  getItem(key: string): string | undefined;
56
44
  /**
57
- * <InlineAlert slots="text" variant="warning"/>
58
- *
59
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
60
- *
61
- * @experimental
62
45
  * Removes a single private metadata entry on the node.
63
46
  * @param key - The key of the private metadata entry to remove.
64
47
  */
65
48
  removeItem(key: string): void;
66
49
  /**
67
- * <InlineAlert slots="text" variant="warning"/>
68
- *
69
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
70
- *
71
- * @experimental
72
50
  * Clears all private metadata entries on the node.
73
51
  */
74
52
  clear(): void;
75
53
  /**
76
- * <InlineAlert slots="text" variant="warning"/>
77
- *
78
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
79
- *
80
- * @experimental
81
54
  * @returns an array of all keys for the private metadata entries on the node.
82
55
  */
83
56
  keys(): string[];
84
57
  /**
85
- * <InlineAlert slots="text" variant="warning"/>
86
- *
87
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
88
- *
89
- * @experimental
90
58
  * @returns an object with the remaining quota for private metadata on the node for this add-on.
91
59
  * The object contains the following properties:
92
60
  * - sizeInBytes: The remaining quota size in bytes (maximum 3KB).
@@ -124,6 +92,7 @@ declare interface ApiModuleExport {
124
92
  constants: unknown;
125
93
  colorUtils: ExpressColorUtils;
126
94
  fonts: ExpressFonts;
95
+ viewport: ExpressViewport;
127
96
  }
128
97
 
129
98
  /**
@@ -157,7 +126,7 @@ declare enum ArrowHeadType {
157
126
 
158
127
  /**
159
128
  * ArtboardList represents an ordered list of ArtboardNodes arranged in a timeline sequence, where they are called "scenes."
160
- * All items in the list are children of a single PageNode.
129
+ * All items in the list are children of a single {@link PageNode}.
161
130
  *
162
131
  * ArtboardList also provides APIs for adding/removing artboards from the page. ArtboardList is never empty: it is illegal to
163
132
  * remove the last remaining artboard from the list.
@@ -175,8 +144,11 @@ export declare class ArtboardList extends RestrictedItemList<ArtboardNode> {
175
144
 
176
145
  /**
177
146
  * An ArtboardNode represents an artboard object in the scenegraph. All user visual content must be contained on an artboard.
147
+ * Artboards are always contained on a {@link PageNode}; when a page contains multiple artboards, the artboards represent
148
+ * "scenes" in a linear timeline sequence.
149
+ *
150
+ * To create a new artboard, see {@link ArtboardList.addArtboard}.
178
151
  *
179
- * When multiple artboards exist on a page, the artboards represent "scenes" in a linear timeline sequence.
180
152
  * Please note that creating and deleting an artboard in a single frame will crash the editor.
181
153
  */
182
154
  export declare class ArtboardNode extends VisualNode implements IRectangularNode, ContainerNode {
@@ -246,12 +218,28 @@ export declare class AvailableFont extends BaseFont {
246
218
  * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
247
219
  *
248
220
  * @experimental
249
- * Base character styles that can be applied to a range of characters.
221
+ * Base character styles that can be applied to any range of characters.
222
+ * Excludes font style, which differs between the getter-oriented {@link CharacterStyles} interface and the
223
+ * setter-oriented {@link CharacterStylesInput}.
250
224
  */
251
225
  declare interface BaseCharacterStyles {
226
+ /**
227
+ * Size of the text in points.
228
+ */
252
229
  fontSize: number;
230
+ /**
231
+ * Text color.
232
+ */
253
233
  color: Color;
254
- tracking: number;
234
+ /**
235
+ * Uniformly adjusts the letter spacing, aka character spacing. Specified as a delta relative to the font's default
236
+ * spacing, in units of 1/1000 em: positive values increase the spacing, negative values tighten the spacing, and 0
237
+ * leaves spacing at its default.
238
+ */
239
+ letterSpacing: number;
240
+ /**
241
+ * Adds an underline to text.
242
+ */
255
243
  underline: boolean;
256
244
  }
257
245
 
@@ -301,11 +289,6 @@ declare abstract class BaseFont {
301
289
  */
302
290
  export declare class BaseNode {
303
291
  /**
304
- * <InlineAlert slots="text" variant="warning"/>
305
- *
306
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
307
- *
308
- * @experimental
309
292
  * Get {@link AddOnData} reference for managing the private metadata on this node for this add-on.
310
293
  */
311
294
  get addOnData(): AddOnData;
@@ -349,6 +332,47 @@ export declare class BaseNode {
349
332
  removeFromParent(): void;
350
333
  }
351
334
 
335
+ /**
336
+ * <InlineAlert slots="text" variant="warning"/>
337
+ *
338
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
339
+ *
340
+ * @experimental
341
+ * BaseParagraphListStyle interface represents common properties shared between ordered and unordered list types.
342
+ */
343
+ declare interface BaseParagraphListStyle {
344
+ /** A value from 0-8 that specifies indent/nesting level. Default is 0 if not provided. */
345
+ indentLevel?: number;
346
+ }
347
+
348
+ /**
349
+ * <InlineAlert slots="text" variant="warning"/>
350
+ *
351
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
352
+ *
353
+ * @experimental
354
+ * Base paragraph styles that can be applied to an entire paragraph atomically.
355
+ * Excludes list style settings, which differ between the getter-oriented {@link ParagraphStyles} interface and the
356
+ * setter-oriented {@link ParagraphStylesRangeInput}.
357
+ */
358
+ declare interface BaseParagraphStyles {
359
+ /**
360
+ * Space before paragraph (in points). It does not affect the first paragraph. It is additive to previous paragraph's spaceAfter
361
+ * (adjacent spacing does not merge/collapse together).
362
+ */
363
+ spaceBefore: number;
364
+ /**
365
+ * Space after paragraph (in points). It does not affect the last paragraph. It is additive to the next paragraph's spaceBefore
366
+ * (adjacent spacing does not merge/collapse together).
367
+ */
368
+ spaceAfter: number;
369
+ /**
370
+ * Spacing between lines, aka leading, expressed as a multiple of the font size's default spacing - ex. 1.5 = 150% of normal.
371
+ * It only affects the space *between* lines, not the space above the first line or below the last line.
372
+ */
373
+ lineSpacing: number;
374
+ }
375
+
352
376
  /**
353
377
  * Represents a bitmap image resource. Use {@link Editor.loadBitmapImage} to create a BitmapImage, and then {@link Editor.createImageContainer}
354
378
  * to display it in the document by creating a MediaContainerNode structure.
@@ -415,7 +439,8 @@ declare enum BlendMode {
415
439
  * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
416
440
  *
417
441
  * @experimental
418
- * Text styles of a range of characters, even a short span like a single word.
442
+ * Text styles that can be applied to any range of characters, even a short span like a single word. (Contrast with
443
+ * ParagraphStyles, which must be applied to an entire paragraph atomically).
419
444
  */
420
445
  export declare interface CharacterStyles extends BaseCharacterStyles {
421
446
  font: Font;
@@ -427,7 +452,11 @@ export declare interface CharacterStyles extends BaseCharacterStyles {
427
452
  * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
428
453
  *
429
454
  * @experimental
430
- * Input shape of the applyCharacterStyle API.
455
+ * Variant of {@link CharacterStyles} with all style fields optional, used for applyCharacterStyles(). When using that API,
456
+ * any fields not specified are left unchanged, preserving the text's existing styles.
457
+ *
458
+ * If specified, the font must be of the {@link AvailableFont} type – one that is guaranteed to be available for the current
459
+ * user to edit with.
431
460
  */
432
461
  export declare interface CharacterStylesInput extends Partial<BaseCharacterStyles> {
433
462
  font?: AvailableFont;
@@ -439,7 +468,10 @@ export declare interface CharacterStylesInput extends Partial<BaseCharacterStyle
439
468
  * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
440
469
  *
441
470
  * @experimental
442
- * Output shape of the characterStyleRange getter.
471
+ * A set of {@link CharacterStyles} along with the range of characters they apply to. Seen in the characterStyleRanges getter.
472
+ *
473
+ * Note that fonts returned by the getter are *not* guaranteed to be ones the user has rights to edit with, even though they
474
+ * are visible in the document.
443
475
  */
444
476
  export declare interface CharacterStylesRange extends CharacterStyles, StyleRange {}
445
477
 
@@ -449,7 +481,11 @@ export declare interface CharacterStylesRange extends CharacterStyles, StyleRang
449
481
  * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
450
482
  *
451
483
  * @experimental
452
- * Input shape of the characterStyleRange setter.
484
+ * Variant of {@link CharacterStylesRange} with all style fields optional, along with the range of characters they apply to.
485
+ * Used for the characterStyleRanges setter. When invoking the setter, any fields not specified are reset to their defaults.
486
+ *
487
+ * If specified, the font must be of the {@link AvailableFont} type – one that is guaranteed to be available for the current
488
+ * user to edit with.
453
489
  */
454
490
  export declare interface CharacterStylesRangeInput extends CharacterStylesInput, StyleRange {}
455
491
 
@@ -554,14 +590,34 @@ export declare interface ContainerNode extends VisualNode {
554
590
  * Contains the user's current selection state, indicating the content they are focused on.
555
591
  */
556
592
  export declare class Context {
593
+ /**
594
+ * Registers a handler for editor events such as selection change.
595
+ * The registered callback will be invoked when the specified event occurs.
596
+ * Note: Do not attempt to make changes to the document in response to a selection change callback because it may destabilize the application.
597
+ * @param eventName - an editor event name.
598
+ * @param callback - a callback to be registered for an editor event.
599
+ * @returns a unique ID for the registered event handler.
600
+ */
601
+ on(eventName: EditorEvent, callback: EditorEventHandler): EventHandlerId;
602
+ /**
603
+ * Unregisters handlers for editor events like selection change.
604
+ * @param eventName - an editor event name.
605
+ * @param handlerId - a unique ID returned by `editor.context.on` API.
606
+ * Callback that was previously registered will be removed and will no more be invoked when the event occurs.
607
+ */
608
+ off(eventName: EditorEvent, handlerId: EventHandlerId): void;
557
609
  /**
558
610
  * @returns the current selection. Nodes that are locked or otherwise non-editable are never included in the selection.
559
611
  */
560
612
  get selection(): readonly Node[];
561
613
  /**
562
- * Sets the current selection, automatically ensuring these rules are met:
563
- * - Nodes must be within the current artboard (others are filtered out).
564
- * - A node cannot be selected at the same time as its ancestor (descendants are filtered out).
614
+ * Sets the current selection to an array of {@link Node}.
615
+ * Accepts a single node as a shortcut for a length-1 array `[node]` or
616
+ * `undefined` as a shortcut for `[]`, which clears the selection.
617
+ *
618
+ * Only node(s) that meet the following criteria can be selected:
619
+ * - Nodes must be within the current artboard (nodes outside the active artboard are filtered out).
620
+ * - A node cannot be selected if its ancestor is also selected (descendants are filtered out).
565
621
  * - Locked nodes are filtered out (but will still be included in selectionIncludingNonEditable).
566
622
  */
567
623
  set selection(nodes: Node | readonly Node[] | undefined);
@@ -585,32 +641,6 @@ export declare class Context {
585
641
  * @returns The currently viewed page.
586
642
  */
587
643
  get currentPage(): PageNode;
588
- /**
589
- * <InlineAlert slots="text" variant="warning"/>
590
- *
591
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
592
- *
593
- * @experimental
594
- * Registers a handler for editor events such as selection change.
595
- * The registered callback will be invoked when the specified event occurs.
596
- * Note: Do not attempt to make changes to the document in response to a selection change callback because it may destabilize the application.
597
- * @param eventName - an editor event name.
598
- * @param callback - a callback to be registered for an editor event.
599
- * @returns a unique ID for the registered event handler.
600
- */
601
- on(eventName: EditorEvent, callback: EditorEventHandler): EventHandlerId;
602
- /**
603
- * <InlineAlert slots="text" variant="warning"/>
604
- *
605
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
606
- *
607
- * @experimental
608
- * Unregisters handlers for editor events like selection change.
609
- * @param eventName - an editor event name.
610
- * @param handlerId - a unique ID returned by `editor.context.on` API.
611
- * Callback that was previously registered will be removed and will no more be invoked when the event occurs.
612
- */
613
- off(eventName: EditorEvent, handlerId: EventHandlerId): void;
614
644
  }
615
645
 
616
646
  /**
@@ -694,7 +724,7 @@ export declare class Editor {
694
724
  * render as a gray placeholder on other clients until it has been uploaded to DCX and then downloaded by those clients.
695
725
  * This local client will act as having unsaved changes until the upload has finished.
696
726
  *
697
- * @param bitmapData - BitmapImage resource (e.g. returned from loadBitmapImage()).
727
+ * @param bitmapData - BitmapImage resource (e.g. returned from {@link loadBitmapImage}).
698
728
  * @param options - Additional configuration:
699
729
  * - initialSize - Size the image is displayed at. Must have the same aspect ratio as bitmapData. Defaults to the
700
730
  * size the image would be created at by a UI drag-drop gesture (typically the image's full size, but scaled down
@@ -760,11 +790,6 @@ export declare class Editor {
760
790
  export declare const editor: ExpressEditor;
761
791
 
762
792
  /**
763
- * <InlineAlert slots="text" variant="warning"/>
764
- *
765
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
766
- *
767
- * @experimental
768
793
  * This enum represents the supported editor events.
769
794
  */
770
795
  export declare enum EditorEvent {
@@ -772,17 +797,14 @@ export declare enum EditorEvent {
772
797
  }
773
798
 
774
799
  /**
775
- * <InlineAlert slots="text" variant="warning"/>
776
- *
777
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
778
- *
779
- * @experimental
780
800
  * This type represents function signature for the editor event handler callback.
781
801
  */
782
802
  export declare type EditorEventHandler = () => void;
783
803
 
784
804
  /**
785
- * An EllipseNode represents an ellipse object in the scenegraph.
805
+ * An EllipseNode represents an ellipse or circle shape in the scenegraph.
806
+ *
807
+ * To create new ellipse, see {@link Editor.createEllipse}.
786
808
  */
787
809
  export declare class EllipseNode extends FillableNode {
788
810
  /**
@@ -806,11 +828,6 @@ export declare class EllipseNode extends FillableNode {
806
828
  }
807
829
 
808
830
  /**
809
- * <InlineAlert slots="text" variant="warning"/>
810
- *
811
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
812
- *
813
- * @experimental
814
831
  * This type represents unique id of each event handler callback that is registered.
815
832
  */
816
833
  export declare type EventHandlerId = string;
@@ -834,10 +851,13 @@ declare class ExpressFonts extends Fonts {}
834
851
  export declare class ExpressRootNode extends BaseNode {
835
852
  /**
836
853
  * The pages of the document. All visual content is contained on artboards within the pages.
854
+ * To create a new page, see {@link PageList.addPage}.
837
855
  */
838
856
  get pages(): PageList;
839
857
  }
840
858
 
859
+ declare class ExpressViewport extends Viewport {}
860
+
841
861
  /**
842
862
  * Base interface representing any fill in the scenegraph. See {@link FillableNode}.
843
863
  * Currently, you can only create {@link ColorFill}s, but you might encounter
@@ -933,6 +953,8 @@ export declare class GridCellNode extends MediaContainerNode {}
933
953
  /**
934
954
  * A GridLayoutNode represents a grid layout in the scenegraph. The GridLayoutNode is used to create
935
955
  * a layout grid that other content can be placed into.
956
+ *
957
+ * APIs to create a new grid layout are not yet available.
936
958
  */
937
959
  export declare class GridLayoutNode extends Node implements Readonly<IRectangularNode> {
938
960
  /**
@@ -959,6 +981,8 @@ export declare class GridLayoutNode extends Node implements Readonly<IRectangula
959
981
  /**
960
982
  * A GroupNode represents a Group object in the scenegraph, which has a collection of generic children as well as a separate,
961
983
  * optional vector mask child.
984
+ *
985
+ * To create new group, see {@link Editor.createGroup}.
962
986
  */
963
987
  export declare class GroupNode extends Node implements ContainerNode {
964
988
  /**
@@ -997,6 +1021,9 @@ declare interface IFillableNode {
997
1021
  * ImageRectangleNode is a rectangular node that displays the image media part of a MediaContainerNode. It can only exist
998
1022
  * within that container parent. Cropping can be adjusted by changing this media's position/rotation (as well as its mask
999
1023
  * shape sibling node).
1024
+ *
1025
+ * ImageRectangleNodes cannot be created directly; use {@link Editor.createImageContainer} to create the entire
1026
+ * container structure together.
1000
1027
  */
1001
1028
  export declare class ImageRectangleNode extends Node implements Readonly<IRectangularNode> {
1002
1029
  /**
@@ -1077,7 +1104,9 @@ export declare class ItemList<T extends ListItem> extends RestrictedItemList<T>
1077
1104
  }
1078
1105
 
1079
1106
  /**
1080
- * A LineNode represents a simple line object in the scenegraph – a single straight-line segment.
1107
+ * A LineNode represents a simple vector line in the scenegraph – a single straight-line segment.
1108
+ *
1109
+ * To create a new line, see {@link Editor.createLine}.
1081
1110
  */
1082
1111
  export declare class LineNode extends StrokableNode {
1083
1112
  static readonly DEFAULT_START_X = 0;
@@ -1148,6 +1177,9 @@ export declare interface ListItem {}
1148
1177
  * A MediaContainerNode is a multi-node construct that displays media (such as images or video) with optional cropping and
1149
1178
  * clipping to a shape mask. The underlying media asset is always rectangular, but the final appearance of this node is
1150
1179
  * determined by the maskShape which is not necessarily a rectangle.
1180
+ *
1181
+ * To create new media container for a bitmap image, see {@link Editor.createImageContainer}. APIs for creating a
1182
+ * container with other content, such as videos, are not yet available.
1151
1183
  */
1152
1184
  export declare class MediaContainerNode extends Node {
1153
1185
  /**
@@ -1261,7 +1293,9 @@ declare class Node extends VisualNode {
1261
1293
  get transformMatrix(): mat2d;
1262
1294
  /**
1263
1295
  * The node's lock/unlock state. Locked nodes are excluded from the selection (see {@link Context.selection}), and
1264
- * cannot be edited by the user unless they are unlocked first.
1296
+ * cannot be edited by the user in the UI unless they are unlocked first. Operations on locked nodes using the API
1297
+ * are permitted. However, please consider if modifying a locked node would align with user expectations
1298
+ * before using the API to make changes to locked nodes.
1265
1299
  */
1266
1300
  get locked(): boolean;
1267
1301
  set locked(locked: boolean);
@@ -1274,10 +1308,61 @@ declare class Node extends VisualNode {
1274
1308
  }
1275
1309
  export { Node as Node };
1276
1310
 
1311
+ /**
1312
+ * <InlineAlert slots="text" variant="warning"/>
1313
+ *
1314
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1315
+ *
1316
+ * @experimental
1317
+ * Numbering types used to display ordered lists: 1, A, a, I, i 01, 001.
1318
+ */
1319
+ export declare enum OrderedListNumbering {
1320
+ numeric = 1,
1321
+ uppercaseAlpha = 2,
1322
+ lowercaseAlpha = 3,
1323
+ uppercaseRomanNum = 4,
1324
+ lowercaseRomanNum = 5,
1325
+ singleZeroPrefixNumeric = 7,
1326
+ doubleZeroPrefixNumeric = 8
1327
+ }
1328
+
1329
+ /**
1330
+ * <InlineAlert slots="text" variant="warning"/>
1331
+ *
1332
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1333
+ *
1334
+ * @experimental
1335
+ * OrderedListStyle represents the style of an ordered list.
1336
+ */
1337
+ export declare type OrderedListStyle = Required<OrderedListStyleInput>;
1338
+
1339
+ /**
1340
+ * <InlineAlert slots="text" variant="warning"/>
1341
+ *
1342
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1343
+ *
1344
+ * @experimental
1345
+ * Interface for specifying an ordered list style, such as a numbered list.
1346
+ */
1347
+ export declare interface OrderedListStyleInput extends BaseParagraphListStyle {
1348
+ type: ParagraphListType.ordered;
1349
+ /**
1350
+ * The numbering style to use. If undefined, it defaults to a different type depending on the paragraph's indent level.
1351
+ * The defaults for increasing indent are 1, a, i, I, and then they repeat.
1352
+ * These markers and the prefix/postfix strings (if any) are displayed using the same font as the start of the
1353
+ * paragraph's text content.
1354
+ */
1355
+ numbering?: OrderedListNumbering;
1356
+ /** Additional string to display before each sequence number/letter, e.g. "(" */
1357
+ prefix?: string;
1358
+ /** Additional string to display after each sequence number/letter, e.g. ")" or "." */
1359
+ postfix?: string;
1360
+ }
1361
+
1277
1362
  /**
1278
1363
  * PageList represents an ordered list of PageNodes, all of which are children of the root node of the document's "scenegraph"
1279
- * artwork tree. A page contains one or more artboards, representing "scenes" in a linear timeline sequence. Those artboards
1280
- * in turn contain all the visual content of the document.
1364
+ * artwork tree (see {@link ExpressRootNode}). A page contains one or more artboards, representing "scenes" in a linear timeline
1365
+ * sequence. Those artboards, in turn, contain all the visual content of the document.
1281
1366
  *
1282
1367
  * PageList also provides APIs for adding/removing pages from the document. PageList is never empty: it is illegal to
1283
1368
  * remove the last remaining page from the list.
@@ -1294,12 +1379,16 @@ export declare class PageList extends RestrictedItemList<PageNode> {
1294
1379
  }
1295
1380
 
1296
1381
  /**
1297
- * A PageNode represents a page in the document. A page contains one or more artboards, representing "scenes" in a linear
1298
- * timeline sequence. Those artboards in turn contain all the visual content of the document.
1382
+ * A PageNode represents a page in the document, a child of the root node of the document's "scenegraph" artwork tree
1383
+ * (see {@link ExpressRootNode}). A page contains one or more artboards, representing "scenes" in a linear timeline
1384
+ * sequence. Those artboards, in turn, contain all the visual content of the document.
1385
+ *
1386
+ * To create new pages, see {@link PageList.addPage}.
1299
1387
  */
1300
1388
  export declare class PageNode extends BaseNode implements Readonly<IRectangularNode> {
1301
1389
  /**
1302
1390
  * The artboards or "scenes" of a page, ordered by timeline sequence.
1391
+ * To create new artboards, see {@link ArtboardList.addArtboard}.
1303
1392
  */
1304
1393
  get artboards(): ArtboardList;
1305
1394
  /**
@@ -1329,8 +1418,73 @@ export declare class PageNode extends BaseNode implements Readonly<IRectangularN
1329
1418
  }
1330
1419
 
1331
1420
  /**
1332
- * A PathNode represents a generic vector path shape in the scenegraph. Paths cannot be created or edited through this API
1421
+ * <InlineAlert slots="text" variant="warning"/>
1422
+ *
1423
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1424
+ *
1425
+ * @experimental
1426
+ * Indicates list type: see {@link UnorderedListStyleInput} and {@link OrderedListStyleInput}.
1427
+ */
1428
+ export declare enum ParagraphListType {
1429
+ unordered = 0,
1430
+ ordered = 1
1431
+ }
1432
+
1433
+ /**
1434
+ * <InlineAlert slots="text" variant="warning"/>
1435
+ *
1436
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1437
+ *
1438
+ * @experimental
1439
+ * Text styles that must be applied to an entire paragraph atomically. (Contrast with CharacterStyles which can be applied to
1440
+ * any range of characters, even a short span like one single word).
1441
+ */
1442
+ export declare interface ParagraphStyles extends BaseParagraphStyles {
1443
+ list?: OrderedListStyle | UnorderedListStyle;
1444
+ }
1445
+
1446
+ /**
1447
+ * <InlineAlert slots="text" variant="warning"/>
1448
+ *
1449
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1450
+ *
1451
+ * @experimental
1452
+ * The variant of {@link ParagraphStyles} with all optional style fields is used to apply ParagraphStyles(). When using that API,
1453
+ * any fields not specified are left unchanged, preserving the text's existing styles.
1454
+ */
1455
+ export declare interface ParagraphStylesInput extends Partial<BaseParagraphStyles> {
1456
+ list?: OrderedListStyleInput | UnorderedListStyleInput;
1457
+ }
1458
+
1459
+ /**
1460
+ * <InlineAlert slots="text" variant="warning"/>
1461
+ *
1462
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1463
+ *
1464
+ * @experimental
1465
+ * A set of {@link ParagraphStyles} and the text range they apply to. It is seen in the paragraphStyleRanges getter.
1466
+ */
1467
+ export declare interface ParagraphStylesRange extends ParagraphStyles, StyleRange {}
1468
+
1469
+ /**
1470
+ * <InlineAlert slots="text" variant="warning"/>
1471
+ *
1472
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1473
+ *
1474
+ * @experimental
1475
+ * A variant of {@link ParagraphStylesRange} with all style fields optional and the text range they apply to. Used for the
1476
+ * paragraphStyleRanges setter. When invoking the setter, any fields not specified are reset to their defaults.
1477
+ *
1478
+ * Paragraphs are separated by newline characters (`\n`). The ranges specified here should align with
1479
+ * those boundaries.
1480
+ */
1481
+ export declare interface ParagraphStylesRangeInput extends ParagraphStylesInput, StyleRange {}
1482
+
1483
+ /**
1484
+ * A PathNode represents a generic vector path shape in the scenegraph. Paths cannot be edited through this API
1333
1485
  * yet, only read.
1486
+ *
1487
+ * To create new paths, see {@link Editor.createPath}.
1334
1488
  */
1335
1489
  export declare class PathNode extends FillableNode {
1336
1490
  /**
@@ -1403,7 +1557,7 @@ export declare class ReadOnlyItemList<T extends ListItem> {
1403
1557
  /**
1404
1558
  * All items in the list, as a static array. Mutations that occur later are not reflected in an array returned earlier.
1405
1559
  */
1406
- toArray(): Readonly<T[]>;
1560
+ toArray(): readonly T[];
1407
1561
  }
1408
1562
 
1409
1563
  declare interface Rect {
@@ -1419,7 +1573,9 @@ export declare interface RectangleGeometry {
1419
1573
  }
1420
1574
 
1421
1575
  /**
1422
- * A RectangleNode represents a rectangle object in the scenegraph.
1576
+ * A RectangleNode represents a rectangle shape in the scenegraph.
1577
+ *
1578
+ * To create a new rectangle, see {@link Editor.createRectangle}.
1423
1579
  */
1424
1580
  export declare class RectangleNode extends FillableNode implements IRectangularNode {
1425
1581
  /**
@@ -1733,7 +1889,13 @@ export declare class TextContentModel {
1733
1889
  * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1734
1890
  *
1735
1891
  * @experimental
1736
- * The character style ranges of this text content.
1892
+ * The character styles are applied to different ranges of this text content. When setting character styles, any style
1893
+ * properties that are not provided are reset to their defaults (contrast to {@link applyCharacterStyles} which
1894
+ * preserves the text's existing styles for any fields not specified). When *getting* styles, all fields are always
1895
+ * provided.
1896
+ *
1897
+ * Note: existing fonts used in the document, returned by this getter, are not guaranteed to be ones the current user
1898
+ * has rights to edit with. The *setter* only accepts the AvailableFont type which has been verified to be usable.
1737
1899
  */
1738
1900
  get characterStyleRanges(): readonly CharacterStylesRange[];
1739
1901
  set characterStyleRanges(styles: readonly CharacterStylesRangeInput[]);
@@ -1743,11 +1905,41 @@ export declare class TextContentModel {
1743
1905
  * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1744
1906
  *
1745
1907
  * @experimental
1746
- * Apply one or more styles to the characters in the given range, leaving other styles in this range unchanged. Does
1747
- * not modify any styles in the text outside this range.
1908
+ * The styles applied to different paragraphs of this text content.
1909
+ */
1910
+ get paragraphStyleRanges(): readonly ParagraphStylesRange[];
1911
+ /**
1912
+ * <InlineAlert slots="text" variant="warning"/>
1913
+ *
1914
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1915
+ *
1916
+ * @experimental
1917
+ * Apply styles to different paragraphs of this text content. Any style properties that are not provided are reset to their defaults.
1918
+ * When **getting** styles, all properties are always provided.
1919
+ *
1920
+ * Paragraphs are separated by newline characters (`\n`). The ranges specified here should align with
1921
+ * those boundaries. If multiple ranges provided overlap a single paragraph, the first one to overlap is applied to the
1922
+ * entire paragraph.
1923
+ *
1924
+ * @throws if the text content contains fonts unavailable to the current user and an ordered-list style is being applied.
1925
+ */
1926
+ set paragraphStyleRanges(styles: readonly ParagraphStylesRangeInput[]);
1927
+ /**
1928
+ * <InlineAlert slots="text" variant="warning"/>
1929
+ *
1930
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1931
+ *
1932
+ * @experimental
1933
+ * Apply one or more styles to the characters in the given range, leaving any style properties that were not specified
1934
+ * unchanged. Does not modify any styles in the text outside this range. Contrast to the {@link characterStyleRanges}
1935
+ * setter, which specifies new style range(s) for the entire text at once, and resets any unspecified properties back to
1936
+ * default styles.
1937
+
1748
1938
  * @param styles - The styles to apply.
1749
- * @param range - The start and length of character sequence to which the styles should be applied.
1750
- * If not specified the styles will be applied to the entire piece of text content flow.
1939
+ * @param range -The start and length of the character sequence to which the styles should be applied.
1940
+ * The styles will be applied to the entire text content flow if not specified.
1941
+ * If the specified range doesn't align well with the paragraph boundaries, the range will be expanded to cover the
1942
+ * entire paragraphs, it overlaps.
1751
1943
  */
1752
1944
  applyCharacterStyles(
1753
1945
  styles: CharacterStylesInput,
@@ -1756,12 +1948,37 @@ export declare class TextContentModel {
1756
1948
  length: number;
1757
1949
  }
1758
1950
  ): void;
1951
+ /**
1952
+ * <InlineAlert slots="text" variant="warning"/>
1953
+ *
1954
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1955
+ *
1956
+ * @experimental
1957
+ * Apply one or more styles to the paragraphs in the given range, leaving any style properties that were not specified
1958
+ * unchanged. Does not modify any styles in the text outside this range. Contrast to the {@link paragraphStyleRanges}
1959
+ * setter, which specifies new style range(s) for the entire text at once, and resets any unspecified properties back to
1960
+ * default styles.
1961
+
1962
+ * @param styles - The styles to apply.
1963
+ * @param range - The start and length of character sequence to which the styles should be applied.
1964
+ * If not specified the styles will be applied to the entire piece of text content flow.
1965
+ */
1966
+ applyParagraphStyles(
1967
+ styles: ParagraphStylesInput,
1968
+ range?: {
1969
+ start: number;
1970
+ length: number;
1971
+ }
1972
+ ): void;
1759
1973
  }
1760
1974
 
1761
1975
  /**
1762
1976
  * A TextNode represents a text display frame in the scenegraph. It may display an entire piece of text, or sometimes just
1763
1977
  * a subset of longer text that flows across multiple TextNode "frames". Because of this, the TextNode does not directly hold
1764
- * the text content and styles – instead it refers to a {@link TextContentModel}, which may be shared across multiple TextNodes.
1978
+ * the text content and styles – instead it refers to a {@link TextContentModel}, which may be shared across multiple TextNode frames.
1979
+ *
1980
+ * To create new a single-frame piece of text, see {@link Editor.createText}. APIs are not yet available to create
1981
+ * multi-frame text flows.
1765
1982
  */
1766
1983
  export declare class TextNode extends Node {
1767
1984
  /**
@@ -1773,6 +1990,7 @@ export declare class TextNode extends Node {
1773
1990
  * same single {@link TextContentModel}; this can give the impression that the same text is duplicated multiple times when it is
1774
1991
  * not. Use {@link TextContentModel}.id to determine whether a given piece of text content is unique or if it's already been
1775
1992
  * encountered before.
1993
+ *
1776
1994
  */
1777
1995
  get fullContent(): TextContentModel;
1778
1996
  /**
@@ -1833,10 +2051,11 @@ export declare class TextNode extends Node {
1833
2051
  * Sets the layout mode of the TextNode "frame."
1834
2052
  *
1835
2053
  * If this TextNode is part of a multi-frame text content flow, it must be configured to use {@link AreaTextLayout}. Other
1836
- * layout modes are only available for single-frame text.
2054
+ * layout modes, except for {@link AreaTextLayout}, are only available for single-frame text.
1837
2055
  *
1838
2056
  * @throws if changing text layout to/from {@link TextType.magicFit} or {@link TextType.circular} layout when the text contains font(s) unavailable to the current user.
1839
- * @throws if TextNode is part of a multi-frame text content flow and the layout is not {@link AreaTextLayout}.
2057
+ * @throws if {@link TextNode} is part of a multi-frame text content flow and the layout is not {@link AreaTextLayout}.
2058
+ * @throws if {@link TextNode} is not a part of a multi-frame text content flow and the layout is {@link AreaTextLayout}.
1840
2059
  */
1841
2060
  set layout(layout: PointTextLayout | AutoHeightTextLayout | AreaTextLayout);
1842
2061
  }
@@ -1872,6 +2091,37 @@ export declare class UnavailableFont extends BaseFont {
1872
2091
  */
1873
2092
  export declare class UnknownNode extends Node {}
1874
2093
 
2094
+ /**
2095
+ * <InlineAlert slots="text" variant="warning"/>
2096
+ *
2097
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
2098
+ *
2099
+ * @experimental
2100
+ * UnorderedListStyle represents the style of an unordered list.
2101
+ */
2102
+ export declare type UnorderedListStyle = Required<UnorderedListStyleInput>;
2103
+
2104
+ /**
2105
+ * <InlineAlert slots="text" variant="warning"/>
2106
+ *
2107
+ * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
2108
+ *
2109
+ * @experimental
2110
+ * Interface for specifying an unordered list style, such as a bullet list.
2111
+ */
2112
+ export declare interface UnorderedListStyleInput extends BaseParagraphListStyle {
2113
+ type: ParagraphListType.unordered;
2114
+ /**
2115
+ * Marker symbol to use. If undefined, it defaults to a different symbol depending on the paragraph's indent level.
2116
+ * The defaults for increasing indent are: •, ◦, ◼, ◻, and then they repeat.
2117
+ * Markers are always displayed using the default font (SourceSans3 Regular), regardless of the font(s) used in the
2118
+ * paragraph's text content. A default marker is used instead if the default font does not support the symbol.
2119
+ *
2120
+ * Text or Unicode glyphs are accepted to represent the list marker.
2121
+ */
2122
+ marker?: string;
2123
+ }
2124
+
1875
2125
  /**
1876
2126
  * <InlineAlert slots="text" variant="warning"/>
1877
2127
  *
@@ -1883,6 +2133,28 @@ export declare interface UnsupportedTextLayout {
1883
2133
  type: TextType.magicFit | TextType.circular;
1884
2134
  }
1885
2135
 
2136
+ /**
2137
+ * Represents the area of the canvas that is currently visible on-screen.
2138
+ */
2139
+ export declare class Viewport {
2140
+ /**
2141
+ * Adjusts the viewport to make the node's bounds visible on-screen, assuming all bounds are within the artboard bounds.
2142
+ * Makes the node's {@link ArtboardNode} or {@link PageNode} visible if they were not already visible
2143
+ * (which may result in {@link Context.selection} being cleared). It is strongly recommended
2144
+ * to further draw user's attention to the node, set it as the {@link Context.selection} following this call.
2145
+ *
2146
+ * After this call, the value of {@link Context.insertionParent} will always be the node containing {@link ArtboardNode}.
2147
+ *
2148
+ * Note that the node might still not appear visible if:
2149
+ * - Its animation settings make it invisible at the beginning of the {@link ArtboardNode} "scene".
2150
+ * - It is obscured underneath other artwork in the z-order.
2151
+ * - It is hidden by a {@link GroupNode}'s mask or similar cropping.
2152
+ */
2153
+ bringIntoView(node: VisualNode): void;
2154
+ }
2155
+
2156
+ export declare const viewport: ExpressViewport;
2157
+
1886
2158
  /**
1887
2159
  * <InlineAlert slots="text" variant="warning"/>
1888
2160
  *
package/ui/ui-sdk.d.ts CHANGED
@@ -238,7 +238,6 @@ declare interface ApplicationBase {
238
238
  dragOptions?: DragOptions
239
239
  ): DisableDragToDocument;
240
240
  /**
241
- * @experimental - Experimental API
242
241
  * Register iframe with the add-on SDK.
243
242
  * @param element - HTMLIframeElement to be registered.
244
243
  * @returns UnregisterIframe - Callback to unregister iframe from the add-on SDK.
@@ -371,9 +370,34 @@ export declare enum AuthorizationStatus {
371
370
  POPUP_BLOCKED = "POPUP_BLOCKED",
372
371
  POPUP_CLOSED = "POPUP_CLOSED",
373
372
  POPUP_TIMEOUT = "POPUP_TIMEOUT",
374
- FAILED = "FAILED"
373
+ FAILED = "FAILED",
374
+ IFRAME_LOAD_FAILED = "IFRAME_LOAD_FAILED"
375
375
  }
376
376
 
377
+ /**
378
+ * Request parameters to authorize a user using OAuth 2.0 PKCE based authorization in an iframe.
379
+ */
380
+ export declare type AuthorizeInsideIframeRequest = AuthorizationRequest & {
381
+ /**
382
+ * Relative position of the oauth iframe panel
383
+ */
384
+ position?: {
385
+ top: number;
386
+ left: number;
387
+ };
388
+ /**
389
+ * Offset from the right and bottom of the Iframe container when the size (windowSize) is not specified.
390
+ */
391
+ offset?: {
392
+ right: number;
393
+ bottom: number;
394
+ };
395
+ /**
396
+ * Flag to determine if the iframe panel needs to show a header.
397
+ */
398
+ showHeader?: boolean;
399
+ };
400
+
377
401
  /**
378
402
  * Request parameters to initiate an OAuth 2.0 PKCE based authorization workflow,
379
403
  * where the Add-on developer is responsible for handling redirect to his/her owned Redirect URL.
@@ -712,6 +736,19 @@ declare interface Document_2 {
712
736
  * Get document name/title
713
737
  */
714
738
  title(): Promise<string>;
739
+ /**
740
+ * Import a Pdf to the document.
741
+ */
742
+ importPdf(blob: Blob, attributes: MediaAttributes): void;
743
+ /**
744
+ * Import a presentation to the document.
745
+ */
746
+ importPresentation(blob: Blob, attributes: MediaAttributes): void;
747
+ /**
748
+ * @experimental - Experimental API
749
+ * Run print quality check
750
+ */
751
+ runPrintQualityCheck(options: PrintQualityCheckOptions): void;
715
752
  }
716
753
  export { Document_2 as Document };
717
754
 
@@ -1065,6 +1102,12 @@ export declare interface OAuth {
1065
1102
  * @returns - {@link AuthorizationResult} Authorization result.
1066
1103
  */
1067
1104
  authorizeWithOwnRedirect(request: AuthorizeWithOwnRedirectRequest): Promise<AuthorizationResult>;
1105
+ /**
1106
+ * Authorize a user using OAuth 2.0 PKCE workflow in an iframe.
1107
+ * @param request - {@link AuthorizeInsideIframeRequest} Payload with parameters to be used in the authorization workflow.
1108
+ * @returns - {@link AuthorizationResponse} Response containing a ONE-TIME Authorization Code which can be used to obtain an access token.
1109
+ */
1110
+ authorizeInsideIframe(request: AuthorizeInsideIframeRequest): Promise<AuthorizationResponse>;
1068
1111
  }
1069
1112
 
1070
1113
  /**
@@ -1094,6 +1137,10 @@ export declare interface PageMetadata {
1094
1137
  * Whether page contains timelines
1095
1138
  */
1096
1139
  hasTemporalContent: boolean;
1140
+ /**
1141
+ * Whether the page is blank
1142
+ */
1143
+ isBlank?: boolean;
1097
1144
  /**
1098
1145
  * Pixels per inch of the page
1099
1146
  */
@@ -1102,21 +1149,16 @@ export declare interface PageMetadata {
1102
1149
  * Whether page is ready to print
1103
1150
  */
1104
1151
  isPrintReady?: boolean;
1152
+ /**
1153
+ * Template details of the page
1154
+ */
1155
+ templateDetails?: TemplateDetails;
1105
1156
  }
1106
1157
 
1107
1158
  /**
1108
1159
  * Options for fetching page metadata
1109
1160
  */
1110
- export declare interface PageMetadataOptions {
1111
- /**
1112
- * Page range of the document to get the metadata
1113
- */
1114
- range: Range_2;
1115
- /**
1116
- * Ids of the pages (Only required if the range is "specificPages")
1117
- */
1118
- pageIds?: string[];
1119
- }
1161
+ export declare interface PageMetadataOptions extends RangeOptions {}
1120
1162
 
1121
1163
  export declare interface PageRendition extends Rendition {
1122
1164
  /**
@@ -1311,6 +1353,12 @@ export declare interface PngRenditionOptions extends RenditionOptions {
1311
1353
  };
1312
1354
  }
1313
1355
 
1356
+ /**
1357
+ * @experimental - Experimental API
1358
+ * Options for running print quality check
1359
+ */
1360
+ export declare interface PrintQualityCheckOptions extends RangeOptions {}
1361
+
1314
1362
  /**
1315
1363
  * Takes a type and wraps it in a Promise, if it not already is one.
1316
1364
  * This is to avoid `Promise<Promise<T>>`.
@@ -1353,6 +1401,20 @@ declare enum Range_2 {
1353
1401
  }
1354
1402
  export { Range_2 as Range };
1355
1403
 
1404
+ /**
1405
+ * Options for providing range of pages
1406
+ */
1407
+ export declare interface RangeOptions {
1408
+ /**
1409
+ * Page range of the document
1410
+ */
1411
+ range: Range_2;
1412
+ /**
1413
+ * Ids of the pages (Only required if the range is "specificPages")
1414
+ */
1415
+ pageIds?: string[];
1416
+ }
1417
+
1356
1418
  /**
1357
1419
  * Takes the raw type of a remote object or function in the other thread and returns the type as it is visible to
1358
1420
  * the local thread from the proxy return value of `Runtime.apiProxy()`.
@@ -1445,19 +1507,11 @@ export declare enum RenditionIntent {
1445
1507
  print = "print"
1446
1508
  }
1447
1509
 
1448
- export declare interface RenditionOptions {
1449
- /**
1450
- * Range of the document to get the rendition
1451
- */
1452
- range: Range_2;
1510
+ export declare interface RenditionOptions extends RangeOptions {
1453
1511
  /**
1454
1512
  * Format of the rendition
1455
1513
  */
1456
1514
  format: RenditionFormat;
1457
- /**
1458
- * Ids of the pages (Only required if the range is "specificPages")
1459
- */
1460
- pageIds?: string[];
1461
1515
  }
1462
1516
 
1463
1517
  /**
@@ -1545,6 +1599,20 @@ export declare interface SearchAction extends PanelAction {
1545
1599
 
1546
1600
  export declare type SimpleDialogOptions = AlertDialogOptions | InputDialogOptions;
1547
1601
 
1602
+ /**
1603
+ * Represents template data for a page
1604
+ */
1605
+ export declare interface TemplateDetails {
1606
+ /**
1607
+ * Unique id of the template
1608
+ */
1609
+ id: string;
1610
+ /**
1611
+ * Creative intent of the template
1612
+ */
1613
+ creativeIntent?: string;
1614
+ }
1615
+
1548
1616
  /**
1549
1617
  * Interface that contains methods and properties that are Application UI related.
1550
1618
  */
@@ -1566,7 +1634,6 @@ export declare interface UI {
1566
1634
  */
1567
1635
  readonly locales: string[];
1568
1636
  /**
1569
- * @experimental - Experimental API
1570
1637
  * Opens an Editor Panel
1571
1638
  * @param panel - one of {@link EditorPanel}
1572
1639
  * @param action - optional action to be performed on the panel {@link PanelAction}
@@ -1590,7 +1657,6 @@ declare type Unpromisify<P> = P extends Promise<infer T> ? T : P;
1590
1657
  declare type UnproxyOrClone<T> = T extends RemoteObject<ProxyMarked> ? Local<T> : T;
1591
1658
 
1592
1659
  /**
1593
- * @experimental - Experimental API
1594
1660
  * Callback to unregister iframe from the add-on SDK.
1595
1661
  */
1596
1662
  declare type UnregisterIframe = () => void;