@cesdk/node 1.60.0-nightly.20250902 → 1.60.0-nightly.20250903

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/index.d.ts CHANGED
@@ -5713,6 +5713,14 @@ export declare type EditMode = 'Transform' | 'Crop' | 'Text' | 'Playback' | 'Tri
5713
5713
  * resource handling, and global scope controls. It serves as the central configuration and control interface
5714
5714
  * for the design editor engine.
5715
5715
  *
5716
+ * ## Settings API
5717
+ *
5718
+ * The recommended way to work with settings is through the unified API:
5719
+ * - `setSetting<K>(key: K, value: Settings[K])` - Set any setting value
5720
+ * - `getSetting<K>(key: K): Settings[K]` - Get any setting value
5721
+ *
5722
+ * Legacy methods are available in the `deprecated` namespace for backward compatibility.
5723
+ *
5716
5724
  * @categoryDescription Edit Mode Management
5717
5725
  * Control the editor's current editing mode and interaction state.
5718
5726
  *
@@ -5962,110 +5970,151 @@ export declare class EditorAPI {
5962
5970
  * @returns A method to unsubscribe from the event.
5963
5971
  */
5964
5972
  onRoleChanged: (callback: (role: RoleString) => void) => (() => void);
5973
+ /**
5974
+ * Set a setting value using the unified API.
5975
+ * The type of the value is automatically inferred from the key.
5976
+ *
5977
+ * @category Editor Settings
5978
+ * @param keypath - The setting key from Settings
5979
+ * @param value - The value to set (type-safe based on key)
5980
+ * @throws Error if the keypath is invalid or value type doesn't match
5981
+ *
5982
+ * @example
5983
+ * ```typescript
5984
+ * // Boolean setting
5985
+ * engine.editor.setSetting('doubleClickToCropEnabled', false);
5986
+ *
5987
+ * // Color setting
5988
+ * engine.editor.setSetting('highlightColor', { r: 1, g: 0, b: 1, a: 1 });
5989
+ *
5990
+ * // Enum setting
5991
+ * engine.editor.setSetting('doubleClickSelectionMode', 'Direct');
5992
+ * ```
5993
+ */
5994
+ setSetting<K extends SettingKey>(keypath: OptionalPrefix<K>, value: SettingValueType<K>): void;
5995
+ /**
5996
+ * Get a setting value using the unified API.
5997
+ * The return type is automatically inferred from the key.
5998
+ *
5999
+ * @category Editor Settings
6000
+ * @param keypath - The setting key from Settings
6001
+ * @returns The value of the setting (type-safe based on key)
6002
+ * @throws Error if the keypath is invalid
6003
+ *
6004
+ * @example
6005
+ * ```typescript
6006
+ * // Boolean setting
6007
+ * const cropEnabled = engine.editor.getSetting('doubleClickToCropEnabled');
6008
+ *
6009
+ * // Color setting
6010
+ * const highlight = engine.editor.getSetting('highlightColor');
6011
+ *
6012
+ * // Enum setting
6013
+ * const selectionMode = engine.editor.getSetting('doubleClickSelectionMode');
6014
+ * ```
6015
+ */
6016
+ getSetting<K extends SettingKey>(keypath: OptionalPrefix<K>): SettingValueType<K>;
6017
+
6018
+
5965
6019
  /**
5966
6020
  * Set a boolean setting value.
5967
6021
  *
6022
+ * @deprecated Use setSetting() instead.
6023
+ *
5968
6024
  * @category Editor Settings
5969
6025
  * @param keypath - The settings keypath, e.g. `doubleClickToCropEnabled`.
5970
6026
  * @param value - The boolean value to set.
5971
6027
  * @throws Error if the keypath is invalid.
5972
6028
  */
5973
- setSettingBool(keypath: SettingsBool, value: boolean): void;
5974
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
5975
- setSettingBool(keypath: `ubq://${SettingsBool}`, value: boolean): void;
5976
-
6029
+ setSettingBool(keypath: OptionalPrefix<SettingsBool>, value: boolean): void;
5977
6030
  /**
5978
6031
  * Get a boolean setting value.
5979
6032
  *
6033
+ * @deprecated Use getSetting() instead.
5980
6034
  * @category Editor Settings
5981
6035
  * @param keypath - The settings keypath, e.g. `doubleClickToCropEnabled`.
5982
6036
  * @returns The boolean value of the setting.
5983
6037
  * @throws Error if the keypath is invalid.
5984
6038
  */
5985
- getSettingBool(keypath: SettingsBool): boolean;
5986
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
5987
- getSettingBool(keypath: `ubq://${SettingsBool}`): boolean;
5988
-
6039
+ getSettingBool(keypath: OptionalPrefix<SettingsBool>): boolean;
5989
6040
  /**
5990
6041
  * Set an integer setting value.
5991
6042
  *
6043
+ * @deprecated Use setSetting() instead.
5992
6044
  * @category Editor Settings
5993
6045
  * @param keypath - The settings keypath.
5994
6046
  * @param value - The integer value to set.
5995
6047
  * @throws Error if the keypath is invalid.
5996
6048
  */
5997
- setSettingInt(keypath: string, value: number): void;
6049
+ setSettingInt(keypath: SettingsInt, value: number): void;
5998
6050
  /**
5999
6051
  * Get an integer setting value.
6000
6052
  *
6053
+ * @deprecated Use getSetting() instead.
6001
6054
  * @category Editor Settings
6002
6055
  * @param keypath - The settings keypath.
6003
6056
  * @returns The integer value of the setting.
6004
6057
  * @throws Error if the keypath is invalid.
6005
6058
  */
6006
- getSettingInt(keypath: string): number;
6059
+ getSettingInt(keypath: SettingsInt): number;
6007
6060
  /**
6008
6061
  * Set a float setting value.
6009
6062
  *
6063
+ * @deprecated Use setSetting() instead.
6010
6064
  * @category Editor Settings
6011
6065
  * @param keypath - The settings keypath, e.g. `positionSnappingThreshold`.
6012
6066
  * @param value - The float value to set.
6013
6067
  * @throws Error if the keypath is invalid.
6014
6068
  */
6015
- setSettingFloat(keypath: SettingsFloat, value: number): void;
6016
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
6017
- setSettingFloat(keypath: `ubq://${SettingsFloat}`, value: number): void;
6069
+ setSettingFloat(keypath: OptionalPrefix<SettingsFloat>, value: number): void;
6018
6070
  /**
6019
6071
  * Get a float setting value.
6020
6072
  *
6073
+ * @deprecated Use getSetting() instead.
6021
6074
  * @category Editor Settings
6022
6075
  * @param keypath - The settings keypath, e.g. `positionSnappingThreshold`.
6023
6076
  * @returns The float value of the setting.
6024
6077
  * @throws Error if the keypath is invalid.
6025
6078
  */
6026
- getSettingFloat(keypath: SettingsFloat): number;
6027
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
6028
- getSettingFloat(keypath: `ubq://${SettingsFloat}`): number;
6079
+ getSettingFloat(keypath: OptionalPrefix<SettingsFloat>): number;
6029
6080
  /**
6030
6081
  * Set a string setting value.
6031
6082
  *
6083
+ * @deprecated Use setSetting() instead.
6032
6084
  * @category Editor Settings
6033
6085
  * @param keypath - The settings keypath, e.g. `license`.
6034
6086
  * @param value - The string value to set.
6035
6087
  * @throws Error if the keypath is invalid.
6036
6088
  */
6037
- setSettingString(keypath: SettingsString, value: string): void;
6038
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
6039
- setSettingString(keypath: `ubq://${SettingsString}`, value: string): void;
6089
+ setSettingString(keypath: OptionalPrefix<SettingsString>, value: string): void;
6040
6090
  /**
6041
6091
  * Get a string setting value.
6042
6092
  *
6093
+ * @deprecated Use getSetting() instead.
6043
6094
  * @category Editor Settings
6044
6095
  * @param keypath - The settings keypath, e.g. `license`.
6045
6096
  * @returns The string value of the setting.
6046
6097
  * @throws Error if the keypath is invalid.
6047
6098
  */
6048
- getSettingString(keypath: SettingsString): string;
6049
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
6050
- getSettingString(keypath: `ubq://${SettingsString}`): string;
6099
+ getSettingString(keypath: OptionalPrefix<SettingsString>): string;
6051
6100
  /**
6052
6101
  * Set a color setting.
6102
+ *
6103
+ * @deprecated Use setSetting() instead.
6053
6104
  * @category Editor Settings
6054
6105
  * @param keypath - The settings keypath, e.g. `highlightColor`.
6055
6106
  * @param value - The The value to set.
6056
6107
  */
6057
- setSettingColor(keypath: SettingsColor, value: Color): void;
6058
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
6059
- setSettingColor(keypath: `ubq://${SettingsColor}`, value: Color): void;
6108
+ setSettingColor(keypath: OptionalPrefix<SettingsColor>, value: Color): void;
6060
6109
  /**
6061
6110
  * Get a color setting.
6111
+ *
6112
+ * @deprecated Use getSetting() instead.
6062
6113
  * @category Editor Settings
6063
6114
  * @param keypath - The settings keypath, e.g. `highlightColor`.
6064
6115
  * @throws An error, if the keypath is invalid.
6065
6116
  */
6066
- getSettingColor(keypath: SettingsColor): Color;
6067
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
6068
- getSettingColor(keypath: `ubq://${SettingsColor}`): Color;
6117
+ getSettingColor(keypath: OptionalPrefix<SettingsColor>): Color;
6069
6118
  /**
6070
6119
  * Set a color setting.
6071
6120
  * @param keypath - The settings keypath, e.g. `highlightColor`.
@@ -6075,34 +6124,32 @@ export declare class EditorAPI {
6075
6124
  * @param a - The alpha color component in the range of 0 to 1.
6076
6125
  * @deprecated Use setSettingColor() instead.
6077
6126
  */
6078
- setSettingColorRGBA(keypath: SettingsColorRGBA | `ubq://${SettingsColorRGBA}`, r: number, g: number, b: number, a?: number): void;
6127
+ setSettingColorRGBA(keypath: OptionalPrefix<SettingsColorRGBA>, r: number, g: number, b: number, a?: number): void;
6079
6128
  /**
6080
6129
  * Get a color setting.
6081
6130
  * @param keypath - The settings keypath, e.g. `highlightColor`.
6082
6131
  * @returns A tuple of channels red, green, blue and alpha in the range of 0 to 1.
6083
6132
  * @deprecated Use getSettingColor() instead.
6084
6133
  */
6085
- getSettingColorRGBA(keypath: SettingsColorRGBA | `ubq://${SettingsColorRGBA}`): RGBA;
6134
+ getSettingColorRGBA(keypath: OptionalPrefix<SettingsColorRGBA>): RGBA;
6086
6135
  /**
6087
6136
  * Set an enum setting.
6137
+ *
6138
+ * @deprecated Use setSetting() instead.
6088
6139
  * @category Editor Settings
6089
6140
  * @param keypath - The settings keypath, e.g. `doubleClickSelectionMode`.
6090
6141
  * @param value - The enum value as string.
6091
6142
  */
6092
6143
  setSettingEnum<T extends keyof SettingsEnum>(keypath: T, value: SettingsEnum[T]): void;
6093
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
6094
- setSettingEnum<T extends keyof SettingsEnum>(keypath: `ubq://${T}`, value: SettingsEnum[T]): void;
6095
-
6096
6144
  /**
6097
6145
  * Get an enum setting.
6146
+ *
6147
+ * @deprecated Use getSetting() instead.
6098
6148
  * @category Editor Settings
6099
6149
  * @param keypath - The settings keypath, e.g. `doubleClickSelectionMode`.
6100
6150
  * @returns The value as string.
6101
6151
  */
6102
6152
  getSettingEnum<T extends keyof SettingsEnum>(keypath: T): SettingsEnum[T];
6103
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
6104
- getSettingEnum<T extends keyof SettingsEnum>(keypath: `ubq://${T}`): SettingsEnum[T];
6105
-
6106
6153
  /**
6107
6154
  * Get the possible enum options for a given enum setting.
6108
6155
  * @category Editor Settings
@@ -6110,8 +6157,6 @@ export declare class EditorAPI {
6110
6157
  * @returns The possible enum options as strings.
6111
6158
  */
6112
6159
  getSettingEnumOptions<T extends keyof SettingsEnum>(keypath: T): string[];
6113
- /** @deprecated Support for `ubq://` prefixed keypaths will be removed in a future release. */
6114
- getSettingEnumOptions<T extends keyof SettingsEnum>(keypath: `ubq://${T}`): string[];
6115
6160
  /**
6116
6161
  * Set the user role and apply role-dependent defaults.
6117
6162
  *
@@ -6133,7 +6178,7 @@ export declare class EditorAPI {
6133
6178
  * @category Editor Settings
6134
6179
  * @returns A list of settings keypaths.
6135
6180
  */
6136
- findAllSettings(): string[];
6181
+ findAllSettings(): SettingKey[];
6137
6182
  /**
6138
6183
  * Returns the type of a setting.
6139
6184
  * @category Editor Settings
@@ -7058,6 +7103,12 @@ export declare type ObjectTypeLonghand = DesignBlockTypeLonghand | ShapeTypeLong
7058
7103
  */
7059
7104
  export declare type ObjectTypeShorthand = DesignBlockTypeShorthand | `shape/${ShapeTypeShorthand}` | `fill/${FillTypeShorthand}` | `effect/${EffectTypeShorthand}` | `blur/${BlurTypeShorthand}` | `animation/${AnimationTypeShorthand}`;
7060
7105
 
7106
+ /**
7107
+ * Type helper for settings keypaths that can optionally include the 'ubq://' prefix.
7108
+ * @public
7109
+ */
7110
+ declare type OptionalPrefix<T extends string> = `ubq://${T}` | T;
7111
+
7061
7112
  /** @public */
7062
7113
  export declare interface PageDuration {
7063
7114
  pageId: DesignBlockId;
@@ -7767,95 +7818,216 @@ export declare type SceneMode = 'Design' | 'Video';
7767
7818
  export declare type Scope = 'text/edit' | 'text/character' | 'fill/change' | 'fill/changeType' | 'stroke/change' | 'shape/change' | 'layer/move' | 'layer/resize' | 'layer/rotate' | 'layer/flip' | 'layer/crop' | 'layer/opacity' | 'layer/blendMode' | 'layer/visibility' | 'layer/clipping' | 'appearance/adjustments' | 'appearance/filter' | 'appearance/effect' | 'appearance/blur' | 'appearance/shadow' | 'appearance/animation' | 'lifecycle/destroy' | 'lifecycle/duplicate' | 'editor/add' | 'editor/select';
7768
7819
 
7769
7820
  /**
7770
- * Represents the boolean settings available in the editor.
7821
+ * Union type of all valid setting keys.
7822
+ * @public
7823
+ */
7824
+ declare type SettingKey = keyof Settings;
7825
+
7826
+ /**
7827
+ * Map of all available settings with their types.
7828
+ * This provides type-safe access to all editor settings.
7829
+ *
7830
+ * @public
7771
7831
  *
7772
7832
  * @categoryDescription Boolean Settings
7773
- * Defines the possible boolean settings in the editor.
7774
- * - 'controlGizmo/showCropHandles': Show crop handles in the control gizmo.
7775
- * - 'controlGizmo/showCropScaleHandles': Show crop scale handles in the control gizmo.
7776
- * - 'controlGizmo/showMoveHandles': Show move handles in the control gizmo.
7777
- * - 'controlGizmo/showResizeHandles': Show resize handles in the control gizmo.
7778
- * - 'controlGizmo/showRotateHandles': Show rotate handles in the control gizmo.
7779
- * - 'controlGizmo/showScaleHandles': Show scale handles in the control gizmo.
7780
- * - 'doubleClickToCropEnabled': Enable double-click to crop.
7781
- * - 'features/singlePageModeEnabled': Enable single page mode.
7782
- * - 'features/pageCarouselEnabled': Enable page carousel.
7783
- * - 'features/transformEditsRetainCoverMode': Retain cover mode during transform edits.
7784
- * - 'mouse/enableScroll': Enable mouse scroll.
7785
- * - 'mouse/enableZoom': Enable mouse zoom.
7786
- * - 'page/allowCropInteraction': Allow crop interaction on pages.
7787
- * - 'page/allowMoveInteraction': Allow move interaction on pages.
7788
- * - 'page/allowResizeInteraction': Allow resize interaction on pages.
7789
- * - 'page/allowRotateInteraction': Allow rotate interaction on pages.
7790
- * - 'page/dimOutOfPageAreas': Dim out-of-page areas.
7791
- * - 'page/restrictResizeInteractionToFixedAspectRatio': Restrict resize interaction to fixed aspect ratio.
7792
- * - 'page/moveChildrenWhenCroppingFill': Move children when cropping fill.
7793
- * - 'page/title/appendPageName': Append page name to the title.
7794
- * - 'page/title/show': Show page title.
7795
- * - 'page/title/showOnSinglePage': Show page title on single page.
7796
- * - 'page/title/showPageTitleTemplate': Show page title template.
7797
- * - 'placeholderControls/showButton': Show button in placeholder controls.
7798
- * - 'placeholderControls/showOverlay': Show overlay in placeholder controls.
7799
- * - 'blockAnimations/enabled': Enable block animations.
7800
- * - 'showBuildVersion': Show build version.
7801
- * - 'touch/dragStartCanSelect': Allow drag start to select.
7802
- * - 'touch/singlePointPanning': Enable single-point panning.
7803
- * - 'useSystemFontFallback': Use system font fallback.
7804
- * - 'forceSystemEmojis': Force system emojis.
7805
- *
7806
- * @public
7807
- */
7808
- export declare type SettingsBool = 'controlGizmo/showCropHandles' | 'controlGizmo/showCropScaleHandles' | 'controlGizmo/showMoveHandles' | 'controlGizmo/showResizeHandles' | 'controlGizmo/showRotateHandles' | 'controlGizmo/showScaleHandles' | 'doubleClickToCropEnabled' | 'features/singlePageModeEnabled' | 'features/pageCarouselEnabled' | 'features/transformEditsRetainCoverMode' | 'mouse/enableScroll' | 'mouse/enableZoom' | 'page/allowCropInteraction' | 'page/allowMoveInteraction' | 'page/allowResizeInteraction' | 'page/allowRotateInteraction' | 'page/dimOutOfPageAreas' | 'page/restrictResizeInteractionToFixedAspectRatio' | 'page/moveChildrenWhenCroppingFill' | 'page/title/appendPageName' | 'page/title/show' | 'page/title/showOnSinglePage' | 'page/title/showPageTitleTemplate' | 'placeholderControls/showButton' | 'placeholderControls/showOverlay' | 'blockAnimations/enabled' | 'showBuildVersion' | 'touch/dragStartCanSelect' | 'touch/singlePointPanning' | 'useSystemFontFallback' | 'forceSystemEmojis';
7833
+ * Boolean settings control various on/off features in the editor:
7834
+ * - Control gizmo visibility settings (crop, move, resize, rotate, scale handles)
7835
+ * - Feature flags (single page mode, page carousel, animations)
7836
+ * - Interaction permissions (mouse scroll/zoom, touch gestures, page interactions)
7837
+ * - Display options (build version, placeholders, page titles)
7838
+ *
7839
+ * @categoryDescription String Settings
7840
+ * String settings configure paths and textual values:
7841
+ * - Resource paths (base path, font URIs)
7842
+ * - License configuration
7843
+ * - Title formatting (separator, font)
7844
+ *
7845
+ * @categoryDescription Float Settings
7846
+ * Float settings define numerical thresholds and limits:
7847
+ * - Snapping thresholds for position and rotation
7848
+ * - Scale limits for control gizmos
7849
+ *
7850
+ * @categoryDescription Integer Settings
7851
+ * Integer settings specify whole number limits:
7852
+ * - Maximum image size constraints
7853
+ *
7854
+ * @categoryDescription Color Settings
7855
+ * Color settings control the visual appearance:
7856
+ * - UI element colors (borders, overlays, highlights)
7857
+ * - Guide colors (snapping, rotation, rule of thirds)
7858
+ * - State colors (error, progress, placeholder highlights)
7859
+ *
7860
+ * @categoryDescription Enum Settings
7861
+ * Enum settings provide predefined choice options:
7862
+ * - Selection modes
7863
+ * - Touch gesture actions
7864
+ * - Camera behavior modes
7865
+ */
7866
+ declare interface Settings {
7867
+ /** Whether to show handles for adjusting the crop area during crop mode. */
7868
+ 'controlGizmo/showCropHandles': boolean;
7869
+ /** Whether to display the outer handles that scale the full image during crop. */
7870
+ 'controlGizmo/showCropScaleHandles': boolean;
7871
+ /** Whether to show the move handles. */
7872
+ 'controlGizmo/showMoveHandles': boolean;
7873
+ /** Whether to display the non-proportional resize handles (edge handles). */
7874
+ 'controlGizmo/showResizeHandles': boolean;
7875
+ /** Whether to show the rotation handles. */
7876
+ 'controlGizmo/showRotateHandles': boolean;
7877
+ /** Whether to display the proportional scale handles (corner handles). */
7878
+ 'controlGizmo/showScaleHandles': boolean;
7879
+ /** Enable double-click to enter crop mode. */
7880
+ doubleClickToCropEnabled: boolean;
7881
+ /** Enable single page mode where only one page is shown at a time. */
7882
+ 'features/singlePageModeEnabled': boolean;
7883
+ /** Enable the page carousel for navigating between pages. */
7884
+ 'features/pageCarouselEnabled': boolean;
7885
+ /** Whether transform edits should retain the cover mode of the content. */
7886
+ 'features/transformEditsRetainCoverMode': boolean;
7887
+ /** Whether the engine processes mouse scroll events. */
7888
+ 'mouse/enableScroll': boolean;
7889
+ /** Whether the engine processes mouse zoom events. */
7890
+ 'mouse/enableZoom': boolean;
7891
+ /** Whether crop interaction (by handles and gestures) should be possible. */
7892
+ 'page/allowCropInteraction': boolean;
7893
+ /** Whether move interaction should be possible when page layout is not controlled by the scene. */
7894
+ 'page/allowMoveInteraction': boolean;
7895
+ /** Whether resize interaction (by handles and gestures) should be possible. */
7896
+ 'page/allowResizeInteraction': boolean;
7897
+ /** Whether rotation interaction should be possible when page layout is not controlled by the scene. */
7898
+ 'page/allowRotateInteraction': boolean;
7899
+ /** Whether the opacity of the region outside of all pages should be reduced. */
7900
+ 'page/dimOutOfPageAreas': boolean;
7901
+ /** Whether resize interaction should be restricted to fixed aspect ratio. */
7902
+ 'page/restrictResizeInteractionToFixedAspectRatio': boolean;
7903
+ /** Whether children of the page should be transformed to match their old position when cropping. */
7904
+ 'page/moveChildrenWhenCroppingFill': boolean;
7905
+ /** Whether to append the page name to the title even if not specified in the template. */
7906
+ 'page/title/appendPageName': boolean;
7907
+ /** Whether to show titles above each page. */
7908
+ 'page/title/show': boolean;
7909
+ /** Whether to hide the page title when only a single page exists. */
7910
+ 'page/title/showOnSinglePage': boolean;
7911
+ /** Whether to include the default page title from page.titleTemplate. */
7912
+ 'page/title/showPageTitleTemplate': boolean;
7913
+ /** Whether to show the placeholder button. */
7914
+ 'placeholderControls/showButton': boolean;
7915
+ /** Whether to show the overlay pattern for placeholders. */
7916
+ 'placeholderControls/showOverlay': boolean;
7917
+ /** Whether animations should be enabled or not. */
7918
+ 'blockAnimations/enabled': boolean;
7919
+ /** Whether to display the build version in the UI. */
7920
+ showBuildVersion: boolean;
7921
+ /** Whether drag start can select elements. */
7922
+ 'touch/dragStartCanSelect': boolean;
7923
+ /** Whether single-point panning is enabled for touch interactions. */
7924
+ 'touch/singlePointPanning': boolean;
7925
+ /** Whether to use system font as fallback for missing glyphs. */
7926
+ useSystemFontFallback: boolean;
7927
+ /** Whether to force the use of system emojis instead of custom emoji fonts. */
7928
+ forceSystemEmojis: boolean;
7929
+ /** The root directory used when resolving relative paths or accessing bundle:// URIs. */
7930
+ basePath: string;
7931
+ /** The URI for the default emoji font file. */
7932
+ defaultEmojiFontFileUri: string;
7933
+ /** The URI for the default font file. */
7934
+ defaultFontFileUri: string;
7935
+ /** The license key for the SDK. */
7936
+ license: string;
7937
+ /** The font file URI for page titles. */
7938
+ 'page/title/fontFileUri': string;
7939
+ /** The separator between page number and page name in titles. */
7940
+ 'page/title/separator': string;
7941
+ /** The URI for the fallback font used when glyphs are missing. */
7942
+ fallbackFontUri: string;
7943
+ /** Scale-down limit for blocks in screen pixels when scaling with gizmos or touch gestures. */
7944
+ 'controlGizmo/blockScaleDownLimit': number;
7945
+ /** The threshold distance in pixels for position snapping. */
7946
+ positionSnappingThreshold: number;
7947
+ /** The threshold angle in degrees for rotation snapping. */
7948
+ rotationSnappingThreshold: number;
7949
+ /** The maximum size (width or height) in pixels for images. */
7950
+ maxImageSize: number;
7951
+ /** The color of the border outline for selected elements. */
7952
+ borderOutlineColor: Color;
7953
+ /** The background clear color. */
7954
+ clearColor: Color;
7955
+ /** The color used for color masking effects. */
7956
+ 'colorMaskingSettings/maskColor': Color;
7957
+ /** The color of the crop overlay. */
7958
+ cropOverlayColor: Color;
7959
+ /** The color indicating an error state. */
7960
+ errorStateColor: Color;
7961
+ /** The highlight color for selected or active elements. */
7962
+ highlightColor: Color;
7963
+ /** The color of the inner frame around the page. */
7964
+ 'page/innerBorderColor': Color;
7965
+ /** The color filled into the bleed margins of pages. */
7966
+ 'page/marginFillColor': Color;
7967
+ /** The color of the frame around the bleed margin area. */
7968
+ 'page/marginFrameColor': Color;
7969
+ /** The color of the outer frame around the page. */
7970
+ 'page/outerBorderColor': Color;
7971
+ /** The color of page titles visible in preview mode. */
7972
+ 'page/title/color': Color;
7973
+ /** The highlight color for placeholder elements. */
7974
+ placeholderHighlightColor: Color;
7975
+ /** The color indicating progress or loading states. */
7976
+ progressColor: Color;
7977
+ /** The color of rotation snapping guide lines. */
7978
+ rotationSnappingGuideColor: Color;
7979
+ /** The color of rule of thirds guide lines. */
7980
+ ruleOfThirdsLineColor: Color;
7981
+ /** The color of snapping guide lines. */
7982
+ snappingGuideColor: Color;
7983
+ /** The highlight color for text variables. */
7984
+ textVariableHighlightColor: Color;
7985
+ /** The selection mode for double-click: Direct selects the clicked element, Hierarchical traverses the hierarchy. */
7986
+ doubleClickSelectionMode: 'Direct' | 'Hierarchical';
7987
+ /** The action performed for pinch gestures: None, Zoom, or Scale. */
7988
+ 'touch/pinchAction': 'None' | 'Zoom' | 'Scale';
7989
+ /** The action performed for rotate gestures: None or Rotate. */
7990
+ 'touch/rotateAction': 'None' | 'Rotate';
7991
+ /** Controls behavior when clamp area is smaller than viewport: Center or Reverse. */
7992
+ 'camera/clamping/overshootMode': 'Center' | 'Reverse';
7993
+
7994
+
7995
+
7996
+
7997
+
7998
+
7999
+
8000
+
8001
+
8002
+
8003
+
8004
+
8005
+
8006
+
8007
+ }
7809
8008
 
7810
8009
  /**
7811
- * Represents the color settings available in the editor.
8010
+ * Represents the boolean settings available in the editor.
7812
8011
  *
7813
- * @categoryDescription Color Settings
7814
- * Defines the possible color settings in the editor.
7815
- * - 'borderOutlineColor': The color of the border outline.
7816
- * - 'clearColor': The clear color.
7817
- * - 'colorMaskingSettings/maskColor': The color used for masking.
7818
- * - 'cropOverlayColor': The color of the crop overlay.
7819
- * - 'errorStateColor': The color indicating an error state.
7820
- * - 'highlightColor': The highlight color.
7821
- * - 'page/innerBorderColor': The color of the inner border of the page.
7822
- * - 'page/marginFillColor': The color of the margin fill.
7823
- * - 'page/marginFrameColor': The color of the margin frame.
7824
- * - 'page/outerBorderColor': The color of the outer border of the page.
7825
- * - 'page/title/color': The color of the page title.
7826
- * - 'placeholderHighlightColor': The highlight color for placeholders.
7827
- * - 'progressColor': The color indicating progress.
7828
- * - 'rotationSnappingGuideColor': The color of the rotation snapping guide.
7829
- * - 'ruleOfThirdsLineColor': The color of the rule of thirds lines.
7830
- * - 'snappingGuideColor': The color of the snapping guide.
7831
- * - 'textVariableHighlightColor': The highlight color for text variables.
7832
- *
7833
- * @public
7834
- */
7835
- export declare type SettingsColor = 'borderOutlineColor' | 'clearColor' | 'colorMaskingSettings/maskColor' | 'cropOverlayColor' | 'errorStateColor' | 'highlightColor' | 'page/innerBorderColor' | 'page/marginFillColor' | 'page/marginFrameColor' | 'page/outerBorderColor' | 'page/title/color' | 'placeholderHighlightColor' | 'progressColor' | 'rotationSnappingGuideColor' | 'ruleOfThirdsLineColor' | 'snappingGuideColor' | 'textVariableHighlightColor';
8012
+ * @deprecated Use keyof Settings or extract the boolean keys from Settings instead.
8013
+ * @public
8014
+ */
8015
+ export declare type SettingsBool = {
8016
+ [K in keyof Settings]: Settings[K] extends boolean ? K : never;
8017
+ }[keyof Settings];
7836
8018
 
7837
8019
  /**
7838
8020
  * Represents the color settings available in the editor.
7839
8021
  *
7840
- * @categoryDescription Color Settings
7841
- * Defines the possible color settings in the editor.
7842
- * - 'borderOutlineColor': The color of the border outline.
7843
- * - 'clearColor': The clear color.
7844
- * - 'colorMaskingSettings/maskColor': The color used for masking.
7845
- * - 'cropOverlayColor': The color of the crop overlay.
7846
- * - 'errorStateColor': The color indicating an error state.
7847
- * - 'highlightColor': The highlight color.
7848
- * - 'page/innerBorderColor': The color of the inner border of the page.
7849
- * - 'page/marginFillColor': The color of the margin fill.
7850
- * - 'page/marginFrameColor': The color of the margin frame.
7851
- * - 'page/outerBorderColor': The color of the outer border of the page.
7852
- * - 'page/title/color': The color of the page title.
7853
- * - 'placeholderHighlightColor': The highlight color for placeholders.
7854
- * - 'progressColor': The color indicating progress.
7855
- * - 'rotationSnappingGuideColor': The color of the rotation snapping guide.
7856
- * - 'ruleOfThirdsLineColor': The color of the rule of thirds lines.
7857
- * - 'snappingGuideColor': The color of the snapping guide.
7858
- * - 'textVariableHighlightColor': The highlight color for text variables.
8022
+ * @deprecated Use keyof Settings or extract the color keys from Settings instead.
8023
+ * @public
8024
+ */
8025
+ export declare type SettingsColor = {
8026
+ [K in keyof Settings]: Settings[K] extends Color ? K : never;
8027
+ }[keyof Settings];
8028
+
8029
+ /**
8030
+ * Represents the color settings available in the editor.
7859
8031
  *
7860
8032
  * @public
7861
8033
  * @deprecated Use SettingsColor instead.
@@ -7865,50 +8037,37 @@ export declare type SettingsColorRGBA = SettingsColor;
7865
8037
  /**
7866
8038
  * Represents the enum settings available in the editor.
7867
8039
  *
7868
- * Defines the possible enum settings in the editor.
7869
- * - 'doubleClickSelectionMode': The mode for double-click selection.
7870
- * - 'touch/pinchAction': The action for pinch gestures.
7871
- * - 'touch/rotateAction': The action for rotate gestures.
7872
- * - 'camera/clamping/overshootMode': The mode for camera clamping overshoot.
7873
- *
8040
+ * @deprecated Use keyof Settings or extract the enum keys from Settings instead.
7874
8041
  * @public
7875
8042
  */
7876
- export declare type SettingsEnum = {
7877
- doubleClickSelectionMode: 'Direct' | 'Hierarchical';
7878
- 'touch/pinchAction': 'None' | 'Zoom' | 'Scale';
7879
- 'touch/rotateAction': 'None' | 'Rotate';
7880
- 'camera/clamping/overshootMode': 'Center' | 'Reverse';
7881
- };
8043
+ export declare type SettingsEnum = Pick<Settings, 'doubleClickSelectionMode' | 'touch/pinchAction' | 'touch/rotateAction' | 'camera/clamping/overshootMode'>;
7882
8044
 
7883
8045
  /**
7884
8046
  * Represents the float settings available in the editor.
7885
8047
  *
7886
- * @categoryDescription Float Settings
7887
- * Defines the possible float settings in the editor.
7888
- * - 'controlGizmo/blockScaleDownLimit': The scale down limit for the control gizmo block.
7889
- * - 'positionSnappingThreshold': The threshold for position snapping.
7890
- * - 'rotationSnappingThreshold': The threshold for rotation snapping.
8048
+ * @deprecated Use keyof Settings or extract the float keys from Settings instead.
8049
+ * @public
8050
+ */
8051
+ export declare type SettingsFloat = Exclude<{
8052
+ [K in keyof Settings]: Settings[K] extends number ? K : never;
8053
+ }[keyof Settings], SettingsInt>;
8054
+
8055
+ /**
8056
+ * Represents the integer settings available in the editor.
7891
8057
  *
7892
8058
  * @public
7893
8059
  */
7894
- export declare type SettingsFloat = 'controlGizmo/blockScaleDownLimit' | 'positionSnappingThreshold' | 'rotationSnappingThreshold';
8060
+ declare type SettingsInt = 'maxImageSize';
7895
8061
 
7896
8062
  /**
7897
8063
  * Represents the string settings available in the editor.
7898
8064
  *
7899
- * @categoryDescription String Settings
7900
- * Defines the possible string settings in the editor.
7901
- * - 'basePath': The base path for resources.
7902
- * - 'defaultEmojiFontFileUri': The default URI for the emoji font file.
7903
- * - 'defaultFontFileUri': The default URI for the font file.
7904
- * - 'license': The license key.
7905
- * - 'page/title/fontFileUri': The URI for the page title font file.
7906
- * - 'page/title/separator': The separator for the page title.
7907
- * - 'fallbackFontUri': The URI for the fallback font.
7908
- *
8065
+ * @deprecated Use keyof Settings or extract the string keys from Settings instead.
7909
8066
  * @public
7910
8067
  */
7911
- export declare type SettingsString = 'basePath' | 'defaultEmojiFontFileUri' | 'defaultFontFileUri' | 'license' | 'page/title/fontFileUri' | 'page/title/separator' | 'fallbackFontUri';
8068
+ export declare type SettingsString = Exclude<{
8069
+ [K in keyof Settings]: Settings[K] extends string ? K : never;
8070
+ }[keyof Settings], keyof SettingsEnum | 'renderMode'>;
7912
8071
 
7913
8072
  /**
7914
8073
  * Represents the type of a setting.
@@ -7926,6 +8085,12 @@ export declare type SettingsString = 'basePath' | 'defaultEmojiFontFileUri' | 'd
7926
8085
  */
7927
8086
  export declare type SettingType = 'Bool' | 'Int' | 'Float' | 'String' | 'Color' | 'Enum';
7928
8087
 
8088
+ /**
8089
+ * Gets the value type for a specific setting key.
8090
+ * @public
8091
+ */
8092
+ declare type SettingValueType<K extends SettingKey> = Settings[K];
8093
+
7929
8094
  /**
7930
8095
  * The block type IDs for the shape blocks. These are the IDs used to create new shapes
7931
8096
  * using `cesdk.engine.block.createShape(id)`.