@flowscape-ui/core-sdk 1.0.5 → 1.0.6

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/dist/index.d.cts CHANGED
@@ -526,6 +526,36 @@ interface EllipseNodeOptions extends BaseNodeOptions {
526
526
  strokeWidth?: number;
527
527
  }
528
528
 
529
+ interface FrameOptions {
530
+ x: number;
531
+ y: number;
532
+ width: number;
533
+ height: number;
534
+ background?: string;
535
+ label?: string;
536
+ labelColor?: string;
537
+ labelHoverColor?: string;
538
+ template?: string;
539
+ draggable?: boolean;
540
+ id?: string;
541
+ name?: string;
542
+ }
543
+
544
+ type FrameNodeOptions = FrameOptions & BaseNodeOptions;
545
+ declare class FrameNode extends BaseNode<Konva.Group> {
546
+ private _rect;
547
+ private _contentGroup;
548
+ private _container;
549
+ constructor(options: FrameNodeOptions);
550
+ getRect(): Konva.Rect;
551
+ getContentGroup(): Konva.Group;
552
+ /**
553
+ * Resize visual frame area without affecting child nodes.
554
+ * Updates rect size and clipping container.
555
+ */
556
+ resize(width: number, height: number): void;
557
+ }
558
+
529
559
  interface MediaPlaceholderOptions {
530
560
  text: string;
531
561
  textColor: string;
@@ -895,9 +925,12 @@ declare class NodeManager {
895
925
  private _nodes;
896
926
  private _stage;
897
927
  private _eventBus;
928
+ private _frameLabels;
929
+ private _selectedFrame;
898
930
  private _batchDrawScheduled;
899
931
  private _listCache;
900
932
  private _listCacheInvalidated;
933
+ private _hadFrameInLastMultiSelection;
901
934
  constructor(stage: Konva.Stage, eventBus: EventBus<CoreEvents>);
902
935
  get layer(): Konva.Layer;
903
936
  get world(): Konva.Group;
@@ -917,6 +950,7 @@ declare class NodeManager {
917
950
  addSvg(options: SvgNodeOptions): SvgNodeHandle;
918
951
  addVideo(options: VideoNodeOptions): VideoNodeHandle;
919
952
  addGif(options: GifNodeOptions): GifNodeHandle;
953
+ addFrame(options: FrameNodeOptions): FrameNode;
920
954
  remove(node: BaseNode): void;
921
955
  findById(id: string): BaseNode | undefined;
922
956
  list(): BaseNode[];
@@ -925,6 +959,14 @@ declare class NodeManager {
925
959
  * CRITICAL OPTIMIZATION: group multiple node additions
926
960
  */
927
961
  private _scheduleBatchDraw;
962
+ private _listFrames;
963
+ private _attachFrameAutogroupHandlers;
964
+ /**
965
+ * Обновить позицию overlay label над соответствующими фреймами
966
+ * (используется при создании и drag фреймов)
967
+ */
968
+ private _updateFrameLabelsPosition;
969
+ private _enforceFrameDraggableInvariant;
928
970
  }
929
971
 
930
972
  interface LODLevel {
@@ -1397,6 +1439,8 @@ declare class AreaSelectionPlugin extends Plugin {
1397
1439
  constructor(options?: AreaSelectionPluginOptions);
1398
1440
  protected onAttach(core: CoreEngine): void;
1399
1441
  protected onDetach(core: CoreEngine): void;
1442
+ /** Проверить, что прямоугольник `inner` полностью содержится внутри `outer`. */
1443
+ private _rectContains;
1400
1444
  private _startAutoPanLoop;
1401
1445
  private _stopAutoPanLoop;
1402
1446
  private _finalizeArea;
@@ -2155,6 +2199,10 @@ declare class SelectionPlugin extends Plugin {
2155
2199
  private _prevStageDraggableBeforeRotate;
2156
2200
  private _worldSyncRafId;
2157
2201
  private _onCameraZoomEvent;
2202
+ private _onFrameChildrenChangedBound;
2203
+ private _onFrameLabelClickedBound;
2204
+ private _onFrameLabelDragStartBound;
2205
+ private _onFrameLabelDragEndBound;
2158
2206
  private _hoverTr;
2159
2207
  private _isPointerDown;
2160
2208
  private _autoPanRafId;
@@ -2171,6 +2219,13 @@ declare class SelectionPlugin extends Plugin {
2171
2219
  private _tempMultiInitialTransforms;
2172
2220
  private _tempMultiGroup;
2173
2221
  private _tempOverlay;
2222
+ /**
2223
+ * Public readonly access to the currently selected BaseNode
2224
+ * (or null if there is no selection). Mutable selection logic
2225
+ * still lives inside SelectionPlugin; this method is used only
2226
+ * for safe inspection from other plugins.
2227
+ */
2228
+ getSelected(): BaseNode | null;
2174
2229
  getMultiGroupController(): MultiGroupController;
2175
2230
  private _multiCtrl;
2176
2231
  private _startAutoPanLoop;
@@ -2188,6 +2243,18 @@ declare class SelectionPlugin extends Plugin {
2188
2243
  private _uiUpdateDebounce;
2189
2244
  constructor(options?: SelectionPluginOptions);
2190
2245
  setOptions(patch: Partial<SelectionPluginOptions>): void;
2246
+ /**
2247
+ * Select a single node from area (lasso) selection, without creating temp-multi.
2248
+ * Used by AreaSelectionPlugin so that single-node selection (including FrameNode)
2249
+ * reuses the same transformer and resize logic as обычный клик.
2250
+ */
2251
+ selectSingleFromArea(node: BaseNode): void;
2252
+ /**
2253
+ * Clear current selection (single + temp-multi) when starting lasso
2254
+ * in special cases (e.g. inside FrameNode background) to mirror
2255
+ * behavior of clicking on empty space in world.
2256
+ */
2257
+ clearSelectionFromAreaLasso(): void;
2191
2258
  protected onAttach(core: CoreEngine): void;
2192
2259
  protected onDetach(core: CoreEngine): void;
2193
2260
  private _onMouseDown;
@@ -2213,10 +2280,26 @@ declare class SelectionPlugin extends Plugin {
2213
2280
  private _ensureTempMulti;
2214
2281
  private _destroyTempMultiOverlayOnly;
2215
2282
  private _destroyTempMulti;
2283
+ /**
2284
+ * FRAME-SPECIFIC: автогруппировка для временной multi-группы.
2285
+ * Для каждой ноды из tempMultiSet повторяет логику
2286
+ * NodeManager._attachFrameAutogroupHandlers:
2287
+ * - если нода была внутри FrameNode и вышла за его пределы, возвращаем её в world;
2288
+ * - если нода была в world и её центр оказался внутри фрейма, переносим в contentGroup.
2289
+ * Поведение вне FrameNode остаётся без изменений.
2290
+ */
2291
+ private _autogroupTempMultiInFrames;
2216
2292
  private _commitTempMultiToGroup;
2217
2293
  private _tryUngroupSelectedGroup;
2218
2294
  private _ensureHoverTr;
2219
2295
  private _destroyHoverTr;
2296
+ /**
2297
+ * Frame-specific selectability rules for direct clicks/hover:
2298
+ * - If the owning BaseNode is a FrameNode and it has at least one child inside contentGroup,
2299
+ * the frame is not directly selectable/hoverable (selection only via lasso).
2300
+ * - Empty frames and all other nodes remain selectable.
2301
+ */
2302
+ private _isSelectableByFrameRules;
2220
2303
  private _onHoverMoveThrottled;
2221
2304
  private _onHoverMove;
2222
2305
  private _onHoverDown;
@@ -2463,4 +2546,13 @@ declare class ThrottleHelper {
2463
2546
  getThrottle(): number;
2464
2547
  }
2465
2548
 
2466
- export { type ArcNodeHandle, type ArcNodeOptions, AreaSelectionPlugin, type AreaSelectionPluginOptions, type ArrowNodeHandle, type ArrowNodeOptions, type BaseNodeOptions, type CameraHotkeysOptions, CameraHotkeysPlugin, CameraManager, type CircleNodeHandle, type CircleNodeOptions, ContentFromClipboardPlugin, type ContentFromClipboardPluginOptions, CoreEngine, type CoreEngineOptions, type CoreEvents, DebounceHelper, type EllipseNodeHandle, type EllipseNodeOptions, EventBus, type GifNodeHandle, type GifNodeOptions, GridPlugin, type GridPluginOptions, type GroupNodeHandle, type GroupNodeOptions, type HistoryAction, HistoryManager, HistoryPlugin, type HistoryPluginOptions, ImageHoverFilterAddon, type ImageNodeHandle, type ImageNodeOptions, type ImageSource, type KonvaArc, type KonvaArrow, type KonvaCircle, type KonvaEllipse, type KonvaGroup, type KonvaGroupConfig, type KonvaImage, type KonvaLayer, type KonvaNode, type KonvaNodeConfig, type KonvaRegularPolygon, type KonvaRing, type KonvaShape, type KonvaStage, type KonvaStar, type KonvaText, type LogoOptions, LogoPlugin, MediaPlaceholder, type MediaPlaceholderOptions, NodeAddon, NodeAddons, type NodeAddonsHandle, type NodeHandle, type NodeHotkeysOptions, NodeHotkeysPlugin, NodeManager, PluginAddon, Plugins, type RegularPolygonNodeHandle, type RegularPolygonNodeOptions, type RingNodeHandle, type RingNodeOptions, RulerGuidesAddon, RulerGuidesPlugin, type RulerGuidesPluginOptions, RulerHighlightAddon, RulerHighlightPlugin, type RulerHighlightPluginOptions, RulerManagerAddon, RulerManagerPlugin, type RulerManagerPluginOptions, RulerPlugin, type RulerPluginOptions, SelectionPlugin, type SelectionPluginOptions, ShapeHoverHighlightAddon, type ShapeNodeHandle, type ShapeNodeOptions, type StarNodeHandle, type StarNodeOptions, type SvgNodeHandle, type SvgNodeOptions, TextAutoTrimAddon, type TextNodeHandle, type TextNodeOptions, ThrottleHelper, type VideoNodeHandle, type VideoNodeOptions, VideoOverlayAddon, type VideoOverlayAddonOptions, VisualGuidesPlugin, type VisualGuidesPluginOptions };
2549
+ declare const frameTemplates: {
2550
+ readonly desktopFrame: {
2551
+ width: number;
2552
+ height: number;
2553
+ template: string;
2554
+ label: string;
2555
+ };
2556
+ };
2557
+
2558
+ export { type ArcNodeHandle, type ArcNodeOptions, AreaSelectionPlugin, type AreaSelectionPluginOptions, type ArrowNodeHandle, type ArrowNodeOptions, type BaseNodeOptions, type CameraHotkeysOptions, CameraHotkeysPlugin, CameraManager, type CircleNodeHandle, type CircleNodeOptions, ContentFromClipboardPlugin, type ContentFromClipboardPluginOptions, CoreEngine, type CoreEngineOptions, type CoreEvents, DebounceHelper, type EllipseNodeHandle, type EllipseNodeOptions, EventBus, FrameNode, type FrameNodeOptions, type FrameOptions, type GifNodeHandle, type GifNodeOptions, GridPlugin, type GridPluginOptions, type GroupNodeHandle, type GroupNodeOptions, type HistoryAction, HistoryManager, HistoryPlugin, type HistoryPluginOptions, ImageHoverFilterAddon, type ImageNodeHandle, type ImageNodeOptions, type ImageSource, type KonvaArc, type KonvaArrow, type KonvaCircle, type KonvaEllipse, type KonvaGroup, type KonvaGroupConfig, type KonvaImage, type KonvaLayer, type KonvaNode, type KonvaNodeConfig, type KonvaRegularPolygon, type KonvaRing, type KonvaShape, type KonvaStage, type KonvaStar, type KonvaText, type LogoOptions, LogoPlugin, MediaPlaceholder, type MediaPlaceholderOptions, NodeAddon, NodeAddons, type NodeAddonsHandle, type NodeHandle, type NodeHotkeysOptions, NodeHotkeysPlugin, NodeManager, PluginAddon, Plugins, type RegularPolygonNodeHandle, type RegularPolygonNodeOptions, type RingNodeHandle, type RingNodeOptions, RulerGuidesAddon, RulerGuidesPlugin, type RulerGuidesPluginOptions, RulerHighlightAddon, RulerHighlightPlugin, type RulerHighlightPluginOptions, RulerManagerAddon, RulerManagerPlugin, type RulerManagerPluginOptions, RulerPlugin, type RulerPluginOptions, SelectionPlugin, type SelectionPluginOptions, ShapeHoverHighlightAddon, type ShapeNodeHandle, type ShapeNodeOptions, type StarNodeHandle, type StarNodeOptions, type SvgNodeHandle, type SvgNodeOptions, TextAutoTrimAddon, type TextNodeHandle, type TextNodeOptions, ThrottleHelper, type VideoNodeHandle, type VideoNodeOptions, VideoOverlayAddon, type VideoOverlayAddonOptions, VisualGuidesPlugin, type VisualGuidesPluginOptions, frameTemplates };
package/dist/index.d.ts CHANGED
@@ -526,6 +526,36 @@ interface EllipseNodeOptions extends BaseNodeOptions {
526
526
  strokeWidth?: number;
527
527
  }
528
528
 
529
+ interface FrameOptions {
530
+ x: number;
531
+ y: number;
532
+ width: number;
533
+ height: number;
534
+ background?: string;
535
+ label?: string;
536
+ labelColor?: string;
537
+ labelHoverColor?: string;
538
+ template?: string;
539
+ draggable?: boolean;
540
+ id?: string;
541
+ name?: string;
542
+ }
543
+
544
+ type FrameNodeOptions = FrameOptions & BaseNodeOptions;
545
+ declare class FrameNode extends BaseNode<Konva.Group> {
546
+ private _rect;
547
+ private _contentGroup;
548
+ private _container;
549
+ constructor(options: FrameNodeOptions);
550
+ getRect(): Konva.Rect;
551
+ getContentGroup(): Konva.Group;
552
+ /**
553
+ * Resize visual frame area without affecting child nodes.
554
+ * Updates rect size and clipping container.
555
+ */
556
+ resize(width: number, height: number): void;
557
+ }
558
+
529
559
  interface MediaPlaceholderOptions {
530
560
  text: string;
531
561
  textColor: string;
@@ -895,9 +925,12 @@ declare class NodeManager {
895
925
  private _nodes;
896
926
  private _stage;
897
927
  private _eventBus;
928
+ private _frameLabels;
929
+ private _selectedFrame;
898
930
  private _batchDrawScheduled;
899
931
  private _listCache;
900
932
  private _listCacheInvalidated;
933
+ private _hadFrameInLastMultiSelection;
901
934
  constructor(stage: Konva.Stage, eventBus: EventBus<CoreEvents>);
902
935
  get layer(): Konva.Layer;
903
936
  get world(): Konva.Group;
@@ -917,6 +950,7 @@ declare class NodeManager {
917
950
  addSvg(options: SvgNodeOptions): SvgNodeHandle;
918
951
  addVideo(options: VideoNodeOptions): VideoNodeHandle;
919
952
  addGif(options: GifNodeOptions): GifNodeHandle;
953
+ addFrame(options: FrameNodeOptions): FrameNode;
920
954
  remove(node: BaseNode): void;
921
955
  findById(id: string): BaseNode | undefined;
922
956
  list(): BaseNode[];
@@ -925,6 +959,14 @@ declare class NodeManager {
925
959
  * CRITICAL OPTIMIZATION: group multiple node additions
926
960
  */
927
961
  private _scheduleBatchDraw;
962
+ private _listFrames;
963
+ private _attachFrameAutogroupHandlers;
964
+ /**
965
+ * Обновить позицию overlay label над соответствующими фреймами
966
+ * (используется при создании и drag фреймов)
967
+ */
968
+ private _updateFrameLabelsPosition;
969
+ private _enforceFrameDraggableInvariant;
928
970
  }
929
971
 
930
972
  interface LODLevel {
@@ -1397,6 +1439,8 @@ declare class AreaSelectionPlugin extends Plugin {
1397
1439
  constructor(options?: AreaSelectionPluginOptions);
1398
1440
  protected onAttach(core: CoreEngine): void;
1399
1441
  protected onDetach(core: CoreEngine): void;
1442
+ /** Проверить, что прямоугольник `inner` полностью содержится внутри `outer`. */
1443
+ private _rectContains;
1400
1444
  private _startAutoPanLoop;
1401
1445
  private _stopAutoPanLoop;
1402
1446
  private _finalizeArea;
@@ -2155,6 +2199,10 @@ declare class SelectionPlugin extends Plugin {
2155
2199
  private _prevStageDraggableBeforeRotate;
2156
2200
  private _worldSyncRafId;
2157
2201
  private _onCameraZoomEvent;
2202
+ private _onFrameChildrenChangedBound;
2203
+ private _onFrameLabelClickedBound;
2204
+ private _onFrameLabelDragStartBound;
2205
+ private _onFrameLabelDragEndBound;
2158
2206
  private _hoverTr;
2159
2207
  private _isPointerDown;
2160
2208
  private _autoPanRafId;
@@ -2171,6 +2219,13 @@ declare class SelectionPlugin extends Plugin {
2171
2219
  private _tempMultiInitialTransforms;
2172
2220
  private _tempMultiGroup;
2173
2221
  private _tempOverlay;
2222
+ /**
2223
+ * Public readonly access to the currently selected BaseNode
2224
+ * (or null if there is no selection). Mutable selection logic
2225
+ * still lives inside SelectionPlugin; this method is used only
2226
+ * for safe inspection from other plugins.
2227
+ */
2228
+ getSelected(): BaseNode | null;
2174
2229
  getMultiGroupController(): MultiGroupController;
2175
2230
  private _multiCtrl;
2176
2231
  private _startAutoPanLoop;
@@ -2188,6 +2243,18 @@ declare class SelectionPlugin extends Plugin {
2188
2243
  private _uiUpdateDebounce;
2189
2244
  constructor(options?: SelectionPluginOptions);
2190
2245
  setOptions(patch: Partial<SelectionPluginOptions>): void;
2246
+ /**
2247
+ * Select a single node from area (lasso) selection, without creating temp-multi.
2248
+ * Used by AreaSelectionPlugin so that single-node selection (including FrameNode)
2249
+ * reuses the same transformer and resize logic as обычный клик.
2250
+ */
2251
+ selectSingleFromArea(node: BaseNode): void;
2252
+ /**
2253
+ * Clear current selection (single + temp-multi) when starting lasso
2254
+ * in special cases (e.g. inside FrameNode background) to mirror
2255
+ * behavior of clicking on empty space in world.
2256
+ */
2257
+ clearSelectionFromAreaLasso(): void;
2191
2258
  protected onAttach(core: CoreEngine): void;
2192
2259
  protected onDetach(core: CoreEngine): void;
2193
2260
  private _onMouseDown;
@@ -2213,10 +2280,26 @@ declare class SelectionPlugin extends Plugin {
2213
2280
  private _ensureTempMulti;
2214
2281
  private _destroyTempMultiOverlayOnly;
2215
2282
  private _destroyTempMulti;
2283
+ /**
2284
+ * FRAME-SPECIFIC: автогруппировка для временной multi-группы.
2285
+ * Для каждой ноды из tempMultiSet повторяет логику
2286
+ * NodeManager._attachFrameAutogroupHandlers:
2287
+ * - если нода была внутри FrameNode и вышла за его пределы, возвращаем её в world;
2288
+ * - если нода была в world и её центр оказался внутри фрейма, переносим в contentGroup.
2289
+ * Поведение вне FrameNode остаётся без изменений.
2290
+ */
2291
+ private _autogroupTempMultiInFrames;
2216
2292
  private _commitTempMultiToGroup;
2217
2293
  private _tryUngroupSelectedGroup;
2218
2294
  private _ensureHoverTr;
2219
2295
  private _destroyHoverTr;
2296
+ /**
2297
+ * Frame-specific selectability rules for direct clicks/hover:
2298
+ * - If the owning BaseNode is a FrameNode and it has at least one child inside contentGroup,
2299
+ * the frame is not directly selectable/hoverable (selection only via lasso).
2300
+ * - Empty frames and all other nodes remain selectable.
2301
+ */
2302
+ private _isSelectableByFrameRules;
2220
2303
  private _onHoverMoveThrottled;
2221
2304
  private _onHoverMove;
2222
2305
  private _onHoverDown;
@@ -2463,4 +2546,13 @@ declare class ThrottleHelper {
2463
2546
  getThrottle(): number;
2464
2547
  }
2465
2548
 
2466
- export { type ArcNodeHandle, type ArcNodeOptions, AreaSelectionPlugin, type AreaSelectionPluginOptions, type ArrowNodeHandle, type ArrowNodeOptions, type BaseNodeOptions, type CameraHotkeysOptions, CameraHotkeysPlugin, CameraManager, type CircleNodeHandle, type CircleNodeOptions, ContentFromClipboardPlugin, type ContentFromClipboardPluginOptions, CoreEngine, type CoreEngineOptions, type CoreEvents, DebounceHelper, type EllipseNodeHandle, type EllipseNodeOptions, EventBus, type GifNodeHandle, type GifNodeOptions, GridPlugin, type GridPluginOptions, type GroupNodeHandle, type GroupNodeOptions, type HistoryAction, HistoryManager, HistoryPlugin, type HistoryPluginOptions, ImageHoverFilterAddon, type ImageNodeHandle, type ImageNodeOptions, type ImageSource, type KonvaArc, type KonvaArrow, type KonvaCircle, type KonvaEllipse, type KonvaGroup, type KonvaGroupConfig, type KonvaImage, type KonvaLayer, type KonvaNode, type KonvaNodeConfig, type KonvaRegularPolygon, type KonvaRing, type KonvaShape, type KonvaStage, type KonvaStar, type KonvaText, type LogoOptions, LogoPlugin, MediaPlaceholder, type MediaPlaceholderOptions, NodeAddon, NodeAddons, type NodeAddonsHandle, type NodeHandle, type NodeHotkeysOptions, NodeHotkeysPlugin, NodeManager, PluginAddon, Plugins, type RegularPolygonNodeHandle, type RegularPolygonNodeOptions, type RingNodeHandle, type RingNodeOptions, RulerGuidesAddon, RulerGuidesPlugin, type RulerGuidesPluginOptions, RulerHighlightAddon, RulerHighlightPlugin, type RulerHighlightPluginOptions, RulerManagerAddon, RulerManagerPlugin, type RulerManagerPluginOptions, RulerPlugin, type RulerPluginOptions, SelectionPlugin, type SelectionPluginOptions, ShapeHoverHighlightAddon, type ShapeNodeHandle, type ShapeNodeOptions, type StarNodeHandle, type StarNodeOptions, type SvgNodeHandle, type SvgNodeOptions, TextAutoTrimAddon, type TextNodeHandle, type TextNodeOptions, ThrottleHelper, type VideoNodeHandle, type VideoNodeOptions, VideoOverlayAddon, type VideoOverlayAddonOptions, VisualGuidesPlugin, type VisualGuidesPluginOptions };
2549
+ declare const frameTemplates: {
2550
+ readonly desktopFrame: {
2551
+ width: number;
2552
+ height: number;
2553
+ template: string;
2554
+ label: string;
2555
+ };
2556
+ };
2557
+
2558
+ export { type ArcNodeHandle, type ArcNodeOptions, AreaSelectionPlugin, type AreaSelectionPluginOptions, type ArrowNodeHandle, type ArrowNodeOptions, type BaseNodeOptions, type CameraHotkeysOptions, CameraHotkeysPlugin, CameraManager, type CircleNodeHandle, type CircleNodeOptions, ContentFromClipboardPlugin, type ContentFromClipboardPluginOptions, CoreEngine, type CoreEngineOptions, type CoreEvents, DebounceHelper, type EllipseNodeHandle, type EllipseNodeOptions, EventBus, FrameNode, type FrameNodeOptions, type FrameOptions, type GifNodeHandle, type GifNodeOptions, GridPlugin, type GridPluginOptions, type GroupNodeHandle, type GroupNodeOptions, type HistoryAction, HistoryManager, HistoryPlugin, type HistoryPluginOptions, ImageHoverFilterAddon, type ImageNodeHandle, type ImageNodeOptions, type ImageSource, type KonvaArc, type KonvaArrow, type KonvaCircle, type KonvaEllipse, type KonvaGroup, type KonvaGroupConfig, type KonvaImage, type KonvaLayer, type KonvaNode, type KonvaNodeConfig, type KonvaRegularPolygon, type KonvaRing, type KonvaShape, type KonvaStage, type KonvaStar, type KonvaText, type LogoOptions, LogoPlugin, MediaPlaceholder, type MediaPlaceholderOptions, NodeAddon, NodeAddons, type NodeAddonsHandle, type NodeHandle, type NodeHotkeysOptions, NodeHotkeysPlugin, NodeManager, PluginAddon, Plugins, type RegularPolygonNodeHandle, type RegularPolygonNodeOptions, type RingNodeHandle, type RingNodeOptions, RulerGuidesAddon, RulerGuidesPlugin, type RulerGuidesPluginOptions, RulerHighlightAddon, RulerHighlightPlugin, type RulerHighlightPluginOptions, RulerManagerAddon, RulerManagerPlugin, type RulerManagerPluginOptions, RulerPlugin, type RulerPluginOptions, SelectionPlugin, type SelectionPluginOptions, ShapeHoverHighlightAddon, type ShapeNodeHandle, type ShapeNodeOptions, type StarNodeHandle, type StarNodeOptions, type SvgNodeHandle, type SvgNodeOptions, TextAutoTrimAddon, type TextNodeHandle, type TextNodeOptions, ThrottleHelper, type VideoNodeHandle, type VideoNodeOptions, VideoOverlayAddon, type VideoOverlayAddonOptions, VisualGuidesPlugin, type VisualGuidesPluginOptions, frameTemplates };