@vvfx/artis 0.0.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/LICENSE +22 -0
  2. package/dist/artis/artis.d.ts +44 -0
  3. package/dist/artis/base-artis.d.ts +520 -0
  4. package/dist/artis/canvas-layer-order.d.ts +19 -0
  5. package/dist/artis/create-info-to-schema.d.ts +21 -0
  6. package/dist/artis/index.d.ts +15 -0
  7. package/dist/artis/operations/index.d.ts +3 -0
  8. package/dist/artis/operations/operations.d.ts +362 -0
  9. package/dist/artis/operations/scene-operations.d.ts +26 -0
  10. package/dist/artis/operations/types.d.ts +39 -0
  11. package/dist/artis/scene-artis.d.ts +386 -0
  12. package/dist/artis/screenshot-service.d.ts +83 -0
  13. package/dist/artis/types.d.ts +130 -0
  14. package/dist/artis/wiring/index.d.ts +17 -0
  15. package/dist/artis/wiring/register-commands.d.ts +44 -0
  16. package/dist/artis/wiring/setup-commands.d.ts +5 -0
  17. package/dist/artis/wiring/setup-event-bindings.d.ts +16 -0
  18. package/dist/artis/wiring/setup-keybindings.d.ts +38 -0
  19. package/dist/artis/wiring/setup-plugins.d.ts +5 -0
  20. package/dist/artis/wiring/wiring-context.d.ts +34 -0
  21. package/dist/artis-sdk/artis-sdk.d.ts +1117 -0
  22. package/dist/artis-sdk/index.d.ts +1 -0
  23. package/dist/core/asset/asset-manager.d.ts +288 -0
  24. package/dist/core/asset/index.d.ts +3 -0
  25. package/dist/core/command/command-service.d.ts +315 -0
  26. package/dist/core/command/commands/composite-command.d.ts +45 -0
  27. package/dist/core/command/commands/frame-layout-command.d.ts +81 -0
  28. package/dist/core/command/commands/frame-layout-mode-command.d.ts +55 -0
  29. package/dist/core/command/commands/frame-move-in-command.d.ts +54 -0
  30. package/dist/core/command/commands/frame-move-out-command.d.ts +54 -0
  31. package/dist/core/command/commands/group-children-detach-command.d.ts +28 -0
  32. package/dist/core/command/commands/index.d.ts +98 -0
  33. package/dist/core/command/commands/item-align-command.d.ts +52 -0
  34. package/dist/core/command/commands/item-create-command.d.ts +66 -0
  35. package/dist/core/command/commands/item-delete-command.d.ts +40 -0
  36. package/dist/core/command/commands/item-distribute-command.d.ts +53 -0
  37. package/dist/core/command/commands/item-group-command.d.ts +41 -0
  38. package/dist/core/command/commands/item-reorder-command.d.ts +41 -0
  39. package/dist/core/command/commands/item-replace-source-command.d.ts +48 -0
  40. package/dist/core/command/commands/item-set-font-family-command.d.ts +46 -0
  41. package/dist/core/command/commands/item-set-generator-resource-command.d.ts +40 -0
  42. package/dist/core/command/commands/item-transform-command.d.ts +51 -0
  43. package/dist/core/command/commands/item-ungroup-command.d.ts +34 -0
  44. package/dist/core/command/commands/item-update-property-by-create-info-command.d.ts +41 -0
  45. package/dist/core/command/commands/item-update-property-command.d.ts +82 -0
  46. package/dist/core/command/commands/mask-commit-command.d.ts +53 -0
  47. package/dist/core/command/commands/page-auto-layout-command.d.ts +53 -0
  48. package/dist/core/command/commands/picture-cut-commit-command.d.ts +43 -0
  49. package/dist/core/command/commands/picture-expand-commit-command.d.ts +35 -0
  50. package/dist/core/command/commands/scene-switch-command.d.ts +35 -0
  51. package/dist/core/command/commands/selection-set-command.d.ts +38 -0
  52. package/dist/core/command/commands/sprite-image-command.d.ts +36 -0
  53. package/dist/core/command/commands/sprite-text-edit-commit-command.d.ts +43 -0
  54. package/dist/core/command/commands/state-hand-command.d.ts +14 -0
  55. package/dist/core/command/commands/state-image-cut-command.d.ts +14 -0
  56. package/dist/core/command/commands/state-image-expand-command.d.ts +14 -0
  57. package/dist/core/command/commands/state-image-mask-command.d.ts +15 -0
  58. package/dist/core/command/commands/state-image-text-edit-command.d.ts +14 -0
  59. package/dist/core/command/commands/state-item-create-command.d.ts +34 -0
  60. package/dist/core/command/commands/state-move-command.d.ts +14 -0
  61. package/dist/core/command/commands/state-switch-command-base.d.ts +41 -0
  62. package/dist/core/command/commands/text-move-command.d.ts +47 -0
  63. package/dist/core/command/commands/text-rotate-command.d.ts +52 -0
  64. package/dist/core/command/commands/text-scale-command.d.ts +56 -0
  65. package/dist/core/command/commands/text-update-content-command.d.ts +51 -0
  66. package/dist/core/command/commands/transform-move-command.d.ts +56 -0
  67. package/dist/core/command/commands/transform-move-with-frame-change-command.d.ts +80 -0
  68. package/dist/core/command/commands/transform-move-with-layout-command.d.ts +56 -0
  69. package/dist/core/command/commands/transform-rotate-command.d.ts +51 -0
  70. package/dist/core/command/commands/transform-scale-command.d.ts +54 -0
  71. package/dist/core/command/commands/video-play-command.d.ts +28 -0
  72. package/dist/core/command/commands/video-source-command.d.ts +39 -0
  73. package/dist/core/command/commands/viewport-fit-to-box-command.d.ts +37 -0
  74. package/dist/core/command/commands/viewport-fit-to-items-command.d.ts +43 -0
  75. package/dist/core/command/commands/viewport-move-command.d.ts +34 -0
  76. package/dist/core/command/commands/viewport-zoom-command.d.ts +35 -0
  77. package/dist/core/command/index.d.ts +5 -0
  78. package/dist/core/command/registry.d.ts +246 -0
  79. package/dist/core/command/types.d.ts +124 -0
  80. package/dist/core/element-registry/element-facade.d.ts +35 -0
  81. package/dist/core/element-registry/element-identity-strategy.d.ts +75 -0
  82. package/dist/core/element-registry/element-registry.d.ts +72 -0
  83. package/dist/core/element-registry/index.d.ts +5 -0
  84. package/dist/core/element-registry/types.d.ts +15 -0
  85. package/dist/core/gizmo/gizmo-bootstrap.d.ts +70 -0
  86. package/dist/core/gizmo/gizmo-command-binder.d.ts +55 -0
  87. package/dist/core/gizmo/gizmo-config-override.d.ts +24 -0
  88. package/dist/core/gizmo/gizmo-registry.d.ts +39 -0
  89. package/dist/core/gizmo/index.d.ts +19 -0
  90. package/dist/core/gizmo/register-gizmo-command-bindings.d.ts +20 -0
  91. package/dist/core/gizmo/state-gizmo-controller.d.ts +20 -0
  92. package/dist/core/history/history-manager.d.ts +174 -0
  93. package/dist/core/history/index.d.ts +1 -0
  94. package/dist/core/index.d.ts +25 -0
  95. package/dist/core/item/base-item.d.ts +154 -0
  96. package/dist/core/item/card-item.d.ts +91 -0
  97. package/dist/core/item/default-item-schema.d.ts +20 -0
  98. package/dist/core/item/effects-item.d.ts +99 -0
  99. package/dist/core/item/frame-item.d.ts +153 -0
  100. package/dist/core/item/generator-item.d.ts +114 -0
  101. package/dist/core/item/group-item.d.ts +51 -0
  102. package/dist/core/item/index.d.ts +25 -0
  103. package/dist/core/item/sprite-item.d.ts +80 -0
  104. package/dist/core/item/text-item.d.ts +171 -0
  105. package/dist/core/item/types.d.ts +158 -0
  106. package/dist/core/item/video-item.d.ts +120 -0
  107. package/dist/core/keybinding/index.d.ts +11 -0
  108. package/dist/core/keybinding/key-binding-controller.d.ts +44 -0
  109. package/dist/core/keybinding/key-binding-registry.d.ts +92 -0
  110. package/dist/core/keybinding/key-binding-store.d.ts +29 -0
  111. package/dist/core/keybinding/key-matcher.d.ts +24 -0
  112. package/dist/core/keybinding/types.d.ts +84 -0
  113. package/dist/core/plugin/index.d.ts +3 -0
  114. package/dist/core/plugin/io-plugin.d.ts +167 -0
  115. package/dist/core/plugin/plugin-system.d.ts +77 -0
  116. package/dist/core/predict/align-predict.d.ts +20 -0
  117. package/dist/core/predict/base/box-ops.d.ts +40 -0
  118. package/dist/core/predict/base/index.d.ts +14 -0
  119. package/dist/core/predict/base/parent-coord.d.ts +29 -0
  120. package/dist/core/predict/base/schema-box.d.ts +21 -0
  121. package/dist/core/predict/distribute-predict.d.ts +19 -0
  122. package/dist/core/predict/frame-layout-predict.d.ts +24 -0
  123. package/dist/core/predict/index.d.ts +12 -0
  124. package/dist/core/preferences/index.d.ts +2 -0
  125. package/dist/core/preferences/user-preferences-manager.d.ts +130 -0
  126. package/dist/core/quality/error-monitor/error-monitor-facade.d.ts +73 -0
  127. package/dist/core/quality/error-monitor/error-monitor.d.ts +106 -0
  128. package/dist/core/quality/error-monitor/index.d.ts +4 -0
  129. package/dist/core/quality/error-monitor/types.d.ts +198 -0
  130. package/dist/core/quality/index.d.ts +3 -0
  131. package/dist/core/quality/perf-monitor/index.d.ts +5 -0
  132. package/dist/core/quality/perf-monitor/perf-monitor-facade.d.ts +45 -0
  133. package/dist/core/quality/perf-monitor/perf-monitor.d.ts +60 -0
  134. package/dist/core/quality/perf-monitor/types.d.ts +66 -0
  135. package/dist/core/quality/stability-monitor/index.d.ts +5 -0
  136. package/dist/core/quality/stability-monitor/stability-monitor-facade.d.ts +50 -0
  137. package/dist/core/quality/stability-monitor/stability-monitor.d.ts +61 -0
  138. package/dist/core/quality/stability-monitor/types.d.ts +69 -0
  139. package/dist/core/renderer/background-controller.d.ts +56 -0
  140. package/dist/core/renderer/index.d.ts +5 -0
  141. package/dist/core/renderer/player-adapter.d.ts +129 -0
  142. package/dist/core/renderer/renderer.d.ts +134 -0
  143. package/dist/core/service/frame-service.d.ts +116 -0
  144. package/dist/core/service/index.d.ts +9 -0
  145. package/dist/core/service/interaction-providers.d.ts +20 -0
  146. package/dist/core/service/interaction-service.d.ts +211 -0
  147. package/dist/core/service/item-asset-service.d.ts +120 -0
  148. package/dist/core/service/item-creator-service.d.ts +211 -0
  149. package/dist/core/service/item-service.d.ts +641 -0
  150. package/dist/core/service/item-sync-service.d.ts +66 -0
  151. package/dist/core/service/json-scene-sync-service.d.ts +140 -0
  152. package/dist/core/service/refresh-animation-base-service.d.ts +1 -0
  153. package/dist/core/service/scene-data-assembler.d.ts +166 -0
  154. package/dist/core/service/view-service.d.ts +202 -0
  155. package/dist/core/state/base-state.d.ts +28 -0
  156. package/dist/core/state/index.d.ts +6 -0
  157. package/dist/core/state/presets.d.ts +25 -0
  158. package/dist/core/state/state-manager.d.ts +50 -0
  159. package/dist/core/state/types.d.ts +52 -0
  160. package/dist/core/store/index.d.ts +3 -0
  161. package/dist/core/store/scene-store.d.ts +194 -0
  162. package/dist/core/store/store.d.ts +36 -0
  163. package/dist/core/types/artis-config.d.ts +186 -0
  164. package/dist/core/types/artis-events.d.ts +101 -0
  165. package/dist/core/types/frame.d.ts +3 -0
  166. package/dist/core/types/generator.d.ts +28 -0
  167. package/dist/core/types/index.d.ts +15 -0
  168. package/dist/core/types/item-create-info.d.ts +205 -0
  169. package/dist/core/types/item-property.d.ts +149 -0
  170. package/dist/core/types/item-reorder.d.ts +12 -0
  171. package/dist/core/types/item-schema.d.ts +263 -0
  172. package/dist/core/types/item-set-property.d.ts +48 -0
  173. package/dist/core/types/page.d.ts +40 -0
  174. package/dist/core/types/sdk.d.ts +28 -0
  175. package/dist/core/types/view.d.ts +39 -0
  176. package/dist/helper/exporter/config.d.ts +18 -0
  177. package/dist/helper/exporter/const.d.ts +71 -0
  178. package/dist/helper/exporter/export-media.d.ts +189 -0
  179. package/dist/helper/exporter/exporter.d.ts +58 -0
  180. package/dist/helper/exporter/index.d.ts +2 -0
  181. package/dist/helper/exporter/types.d.ts +194 -0
  182. package/dist/helper/exporter/utils.d.ts +71 -0
  183. package/dist/helper/exporter/wav-audio.d.ts +35 -0
  184. package/dist/helper/html-overlay/anchor-navigation-runtime.d.ts +1 -0
  185. package/dist/helper/html-overlay/auto-height-layout.d.ts +16 -0
  186. package/dist/helper/html-overlay/auto-height-runtime.d.ts +40 -0
  187. package/dist/helper/html-overlay/document-runtime.d.ts +18 -0
  188. package/dist/helper/html-overlay/document-transform.d.ts +46 -0
  189. package/dist/helper/html-overlay/dom-order.d.ts +5 -0
  190. package/dist/helper/html-overlay/host-message-runtime.d.ts +15 -0
  191. package/dist/helper/html-overlay/html-capture-runtime.d.ts +12 -0
  192. package/dist/helper/html-overlay/html-card-service.d.ts +287 -0
  193. package/dist/helper/html-overlay/html-viewport-style.d.ts +6 -0
  194. package/dist/helper/html-overlay/index.d.ts +1 -0
  195. package/dist/helper/html-overlay/inline-script-json.d.ts +1 -0
  196. package/dist/helper/html-overlay/mime-utils.d.ts +13 -0
  197. package/dist/helper/html-overlay/overlay-transform.d.ts +30 -0
  198. package/dist/helper/html-overlay/path-utils.d.ts +34 -0
  199. package/dist/helper/html-overlay/runtime-context.d.ts +2 -0
  200. package/dist/helper/html-overlay/shell-runtime.d.ts +13 -0
  201. package/dist/helper/index.d.ts +5 -0
  202. package/dist/helper/scene-builder.d.ts +111 -0
  203. package/dist/helper/screen-shot.d.ts +51 -0
  204. package/dist/helper/size-adapt.d.ts +88 -0
  205. package/dist/index.cjs +69350 -0
  206. package/dist/index.cjs.map +1 -0
  207. package/dist/index.d.ts +19 -0
  208. package/dist/index.mjs +68963 -0
  209. package/dist/index.mjs.map +1 -0
  210. package/dist/shared/index.d.ts +1 -0
  211. package/dist/shared/player.d.ts +9 -0
  212. package/dist/utils/background-manager.d.ts +76 -0
  213. package/dist/utils/common-utils.d.ts +39 -0
  214. package/dist/utils/container-size.d.ts +7 -0
  215. package/dist/utils/find-player-item.d.ts +9 -0
  216. package/dist/utils/index.d.ts +11 -0
  217. package/dist/utils/json-data-utils.d.ts +198 -0
  218. package/dist/utils/layout-utils.d.ts +144 -0
  219. package/dist/utils/pixel-box-utils.d.ts +26 -0
  220. package/dist/utils/player-data-utils.d.ts +9 -0
  221. package/dist/utils/player-utils.d.ts +42 -0
  222. package/dist/utils/replay-utils.d.ts +22 -0
  223. package/dist/utils/types.d.ts +130 -0
  224. package/package.json +66 -0
@@ -0,0 +1,641 @@
1
+ import { spec, VFXItem } from '../../shared';
2
+ import type { AnyArtisErrorInfo, ErrorPhase } from '../quality/error-monitor/types';
3
+ import { ArtisItem } from '../item';
4
+ import type { FrameManager, Selection } from '@vvfx/gizmo';
5
+ import { Vector2, Box2, LoadingManager } from '@vvfx/gizmo';
6
+ import { type InteractionService } from './interaction-service';
7
+ import { type Store } from '../store';
8
+ import { type AssetManager } from '../asset';
9
+ import { type UserPreferencesManager } from '../preferences';
10
+ import { GeneratorType, type ItemSchema, type LayoutInfo, type PageAutoLayoutParam, type AssetLoadResult } from '../types';
11
+ import { Renderer } from '../renderer';
12
+ import { type ViewService } from './view-service';
13
+ import { type PerfMonitor } from '../quality/perf-monitor';
14
+ import { type ElementIdentityStrategy } from '../element-registry';
15
+ /**
16
+ * ItemService - 元素 CRUD 门面服务
17
+ *
18
+ * 对外保持稳定的统一 API,内部将职责委托给三个子服务:
19
+ * - ItemCreatorService:各类型元素的 ArtisItem + VFXItem 创建工厂
20
+ * - ItemAssetService:资源加载与切换(带引用计数)
21
+ * - ItemSyncService:Player → Store 数据同步
22
+ *
23
+ * 原有公共方法签名不变,外部调用方无需修改。
24
+ */
25
+ export declare class ItemService {
26
+ private _store;
27
+ private _renderer;
28
+ private _viewService;
29
+ private _selection?;
30
+ private _interactionService;
31
+ private readonly _loadingManager;
32
+ private _frameService;
33
+ private _frameManager;
34
+ /** 资源换源请求代次:同一元素只允许最后一次请求提交运行态与资源引用。 */
35
+ private _resourceRequestSequence;
36
+ private readonly _resourceRequestByItem;
37
+ /** 编辑后刷新 GE 动画基线,避免带动画元素编辑器内播放回弹(见服务注释) */
38
+ private readonly _animBaseRefresher;
39
+ /**
40
+ * 初始化各子服务并注入跨服务依赖回调
41
+ *
42
+ * selection 在 GizmoManager 装配后才存在,故构造时不传,
43
+ * 由 {@link setSelection} 在装配后回填(同时下发给 ItemSyncService)。
44
+ * @param options 构造选项
45
+ */
46
+ constructor(options: {
47
+ renderer: Renderer;
48
+ viewService: ViewService;
49
+ store: Store;
50
+ assetManager: AssetManager;
51
+ userPreferences: UserPreferencesManager;
52
+ interactionService: InteractionService;
53
+ frameManager: FrameManager;
54
+ /** 元素身份策略(统一 id 基准与映射翻译),由 BaseArtis._createIdentityStrategy 注入 */
55
+ identityStrategy: ElementIdentityStrategy;
56
+ loadingManager: LoadingManager;
57
+ /** 尺寸 0 兜底尺寸 [width, height],默认 1024×1024;显式 0 时经此兜底并 emit warning */
58
+ fallbackSize?: [number, number];
59
+ });
60
+ /**
61
+ * 注入性能监测器(enablePerfMonitor / options.perf 装配后调用)。
62
+ * 注入后 withLoading 内的资源加载会按元素记录 RESOURCE_LOAD 耗时。
63
+ * @param monitor 性能监测器;undefined 可用于解绑
64
+ */
65
+ setPerfMonitor(monitor?: PerfMonitor): void;
66
+ /**
67
+ * 配置尺寸 0 兜底尺寸。
68
+ *
69
+ * 外部传入显式 0 的 width/height 创建元素时,{@link createItemCore} 用此尺寸兜底(回写 property 落盘)
70
+ * 并 emit warning,避免 0 透传给 LoadingGizmo/interactionService 导致除零 NaN 挂死。
71
+ * 默认 1024×1024;宿主可按业务场景自行配置。两分量均须 > 0,非正值忽略并告警。
72
+ * @param size [width, height],均须 > 0
73
+ */
74
+ setFallbackSize(size: [number, number]): void;
75
+ /**
76
+ * 注入事件 emit 与错误快照捕获回调(由 BaseArtis 装配后注入,避免 core 反向依赖 artis 事件总线)。
77
+ *
78
+ * - emit:warning(可降级,如尺寸 0 兜底)/ error(真失败,如资源加载失败、运算抛错)事件发散出口。
79
+ * - captureErrorSnapshot:桥接 ErrorMonitor.captureSnapshot,产出含场景快照 + 最近 5 条 Command 的
80
+ * {@link AnyArtisErrorInfo},供 error 事件载荷复现/调试。惰性读 monitor,未装配时由注入方返回降级最小结构。
81
+ *
82
+ * 未注入时(core 独立运行/测试),warning 与 error 降级为 console,保证 core 不依赖 artis 层即可工作。
83
+ * @param emit 事件 emit 回调
84
+ * @param captureErrorSnapshot 错误快照捕获回调
85
+ */
86
+ setEventEmitter(emit?: <K extends keyof import('../types/artis-events').BaseArtisEvents>(event: K, ...args: import('../types/artis-events').BaseArtisEvents[K]) => void, captureErrorSnapshot?: (error: unknown, phase: ErrorPhase, ctx?: {
87
+ gizmoType?: string;
88
+ commandId?: string;
89
+ methodName?: string;
90
+ }) => AnyArtisErrorInfo | undefined): void;
91
+ /**
92
+ * 元素ID 查重预检(决策 D1):命中已占用 ID 抛 DuplicateElementIdError,错误携带可用候选 suggestedId。
93
+ * 不自动改名、不创建——调用方可拿 suggestedId 重试。供 ItemCreateCommand 构造时预检,
94
+ * 避免 execute 的 `void createItem(...)` 吞掉 async reject。
95
+ * @param elementId 待检元素ID
96
+ */
97
+ assertElementIdUnique(elementId: string): void;
98
+ /**
99
+ * 清空元素ID ↔ vfxItemId 映射注册表。
100
+ */
101
+ clearElementRegistry(): void;
102
+ /**
103
+ * 回填 Selection 实例(由 BaseArtis 在 GizmoManager 装配后注入)。
104
+ *
105
+ * Selection 由 GizmoManager 持有,构造晚于 ItemService,故构造时不传、装配后回填。
106
+ * 同时下发给 ItemSyncService,供其 syncSelectedItemsTransform 读取选中集。
107
+ * @param selection 选中态真源(来自 GizmoManager)
108
+ */
109
+ setSelection(selection: Selection): void;
110
+ /**
111
+ * 资源加载过程的 loading 包络:add → 执行 fn → finally delete。
112
+ *
113
+ * loading 态收敛到本层管理,子服务 ItemAssetService 只管资源加载本身、不感知 gizmo。
114
+ * 调用 add 时 shimmer VFXItem 由 LoadingGizmo 每帧按实时包围盒刷新位置/尺寸,故即便此时
115
+ * 元素 transform 尚未就绪(取到空盒),下一帧也会自动修正——无需调用方控制 add 时机。
116
+ * @param id 目标元素 ID
117
+ * @param fn 实际资源加载逻辑
118
+ * @returns fn 的返回值
119
+ */
120
+ private withLoading;
121
+ /**
122
+ * 统一图片/视频/特效换源闭环。
123
+ *
124
+ * 空白资源不发起网络请求,直接进入 pending + loading;非空资源仅在当前请求仍为最后一次时提交,
125
+ * 因而并发换源、删除中加载、undo 回空值都不会被较早完成的请求反向覆盖。
126
+ */
127
+ private _replaceResource;
128
+ /** 特效换源事务:新子合成成功挂载后才释放旧子合成与旧 effect 资源。 */
129
+ private _replaceEffectsResource;
130
+ /**
131
+ * 创建元素核心(同步):建 ArtisItem + Player VFXItem + resolveItemId + registerMapping + goto,
132
+ * 同步返回真实 id(Artis=schemaId,SceneArtis=instanceId)与可选的资源加载 Promise。
133
+ *
134
+ * 同步性是 Command id 契约的前提——{@link ItemCreateCommand} 需 execute 后即得真实 id,
135
+ * 服务于 ArtisSDK._createByInfo 的同步返回契约(addXxxItem 同步返回新元素 id)。
136
+ * frame/effects 的资源加载为异步,经 resourcePromise 返回由调用方决定是否 await。
137
+ * @param info 元素 Schema 描述
138
+ * @returns 真实 id 与可选资源 Promise
139
+ */
140
+ createItemCore(info: ItemSchema, options?: {
141
+ goto?: boolean;
142
+ }): {
143
+ id: string;
144
+ resourcePromise?: Promise<void>;
145
+ };
146
+ /**
147
+ * 创建元素(异步):执行 {@link createItemCore} 并等待异步资源(frame 预合成)加载完成。
148
+ * @param info 元素 Schema 描述
149
+ * @returns 新建元素的真实 ID
150
+ */
151
+ createItem(info: ItemSchema): Promise<string>;
152
+ /**
153
+ * 加载元素资源(异步)— 委托给 ItemAssetService
154
+ * @param id 元素 ID
155
+ * @param url 资源 URL
156
+ * @param assetType 资源类型,默认 image
157
+ * @returns 资源加载结果
158
+ */
159
+ loadItemAsset(id: string, url: string, assetType?: 'image' | 'video'): Promise<AssetLoadResult>;
160
+ /**
161
+ * auto 尺寸收敛:sprite/video 处于 sizeMode='auto' 时,按其当前绑定资源的原生尺寸
162
+ * (AssetManager entry 的 width/height,由 loadItemAsset/换源 register 时填入)回写元素尺寸
163
+ * (property.width/height + transform.setSize 经 getWorldSizeByPixelSize 重算世界尺寸)。
164
+ *
165
+ * 触发时机:① create 后首帧 loadItemAsset 完成;② 换源成功后。仅在尺寸真正变化时写并 gotoEdit。
166
+ * 兜底:entry 宽高为 0(视频跨域/损坏未读到 metadata)→ 维持占位 + console.warn,状态仍 auto,不抛。
167
+ * 不进 undo:create 内首次收敛属创建流程;换源收敛由换源入口各自决定 undo 粒度(图片走 sprite.image、
168
+ * 视频走 video.source command,URL 与尺寸在同一 command 单元)。
169
+ * @param id 元素 ID
170
+ */
171
+ applyAutoSizeByElementAsset(id: string): void;
172
+ /**
173
+ * 退出 auto → fixed:仅对 sprite/video 且当前 sizeMode='auto' 生效。由 {@link ItemTransformCommand}
174
+ * 在用户显式设尺寸(patch 含 width/height)时调用;gizmo 拖拽走 transform.scale 改 scale,
175
+ * 不触此方法,故 auto 状态保留。状态翻转本身不单独进 undo(尺寸变更已在该 command 的 undo 范围内)。
176
+ * @param id 元素 ID
177
+ */
178
+ markFixedSizeIfAuto(id: string): void;
179
+ /**
180
+ * 查询元素资源加载错误(运行态,不落盘/不进 undo)。
181
+ *
182
+ * loadItemAsset 失败时由创建/换源回调写入 `_loadError`(Error),成功后清空为 null。
183
+ * 供 `artis.item.getLoadError(id)` 门面查询 + loading/failure gizmo 显示,避免静默白板无法排查。
184
+ * @returns 加载失败返回 Error;从未加载或加载成功返回 null;元素不存在返回 undefined
185
+ */
186
+ getLoadError(id: string): Error | string | null | undefined;
187
+ /**
188
+ * 把视频元素的初始 property(muted/transparent/playbackRate/volume)下沉到 Player VideoComponent。
189
+ *
190
+ * create 时占位 VFXItem 的 VideoComponent 默认值可能与 ArtisItem.property 不一致(refactor 此前
191
+ * 只在用户后改 updateVideoContent 时才下沉)。对齐 master:create/资源就绪后立即下沉,保证
192
+ * property 与 component 一致;transparent 默认 false 防普通视频持久化后二次加载走 alpha 合成白板。
193
+ * @param id 元素 ID
194
+ * @param artisItem 视频元素(已校验 isVideoItem)
195
+ */
196
+ private _applyVideoInitProps;
197
+ /**
198
+ * 计算新元素的空闲落位 [x,y](纯计算,不改任何元素)。
199
+ *
200
+ * 收口 packages/artis/docs/artis-functions.ts 的 initPositionByFree / initPositionByRow 两个布局算法:
201
+ * 业务方在 create 元素前调 `artis.item.getInitPosition(nodeSize, { layout })` 取得不与已有元素重叠的落位,
202
+ * 再用于 create schema 的 property.position。算法口径与原函数一致;依赖由原外部 commandBridge.artis
203
+ * 全局句柄改为直接读 store.items(等价旧 SDK 的 getSDKItems)+ ArtisItem.property。
204
+ *
205
+ * - 'free'(默认):找已有元素最右下角作参照 → 超过 wrapThreshold 或显式 wrap 时换行 → Y 轴碰撞下移。
206
+ * 忽略画板父级的子元素与组元素。wrapMode:'wrap'(立即换行)|'nowrap'(禁换行);wrapThreshold 默认 12000px。
207
+ * - 'row':从 rowAnchor 往右避让,sprite/video 碰撞框按 scale 算实际占位,横向重叠则右移;带 10s 超时防死循环。
208
+ *
209
+ * @param nodeSize 新节点尺寸(宽高,用于落位中心偏移与碰撞框)
210
+ * @param options layout/wrapMode/wrapThreshold/excludeIds/rowAnchor/rowScale,见上
211
+ * @returns [x, y] 像素坐标;无已有元素时返回 [0,0]
212
+ */
213
+ getInitPosition(nodeSize: Vector2, options?: {
214
+ layout?: 'free' | 'row';
215
+ wrapMode?: 'wrap' | 'nowrap';
216
+ wrapThreshold?: number;
217
+ excludeIds?: string[];
218
+ rowAnchor?: Vector2;
219
+ rowScale?: Vector2;
220
+ shift?: number;
221
+ }): [number, number];
222
+ /** 两矩形是否相交(中心坐标+宽高) */
223
+ private _haveIntersection;
224
+ /** 自由落位:参考已有元素最右下角 → 换行 → Y 碰撞下移。忽略画板父级的子元素与组元素。 */
225
+ private _initPositionByFree;
226
+ /** 横向布局:从 rowAnchor 往右避让,sprite/video 碰撞框按 scale 算实际占位,横向重叠则右移;10s 超时防死循环。 */
227
+ private _initPositionByRow;
228
+ /**
229
+ * 同步 Store.items 的顺序到 Player 层的 renderOrder — 委托给 ItemSyncService
230
+ */
231
+ syncRenderOrder(): void;
232
+ /**
233
+ * 同步选中元素的变换信息(VFXItem.transform → ArtisItem.property)— 委托给 ItemSyncService
234
+ */
235
+ syncSelectedItemsTransform(): void;
236
+ /**
237
+ * 同步所有元素的变换(VFXItem.transform → ArtisItem.property)— 委托给 ItemSyncService
238
+ */
239
+ syncAllItemsFromPlayer(): void;
240
+ /**
241
+ * 同步单个元素的变换(VFXItem.transform → ArtisItem.property)— 委托给 ItemSyncService
242
+ * @param id 元素 ID
243
+ */
244
+ syncItemTransform(id: string): void;
245
+ /** 交互计算服务实例 */
246
+ get interactionService(): InteractionService;
247
+ /** Canonical Frame data owned by the gizmo package. */
248
+ get frames(): FrameManager;
249
+ /** 当前激活的合成(场景未加载时返回 undefined) */
250
+ get composition(): import("@galacean/effects").Composition;
251
+ /**
252
+ * 按像素增量平移元素,同步到 Player 与 ArtisItem
253
+ * @param id 元素 ID
254
+ * @param deltaPixel 像素坐标系下的位移增量 [dx, dy]
255
+ */
256
+ moveItem(id: string, deltaPixel: [number, number]): void;
257
+ /**
258
+ * 修改元素变换属性(像素坐标系)
259
+ *
260
+ * 更新流程:ArtisItem.property → VFXItem.transform → Scene JSON
261
+ * @param id 元素 ID
262
+ * @param transform 变换字段增量(仅提供需要变更的字段)
263
+ */
264
+ updateItemTransform(id: string, transform: Partial<{
265
+ position: [number, number];
266
+ rotation: number;
267
+ scale: [number, number];
268
+ width: number;
269
+ height: number;
270
+ }>): void;
271
+ /**
272
+ * 修改图片元素的图片源
273
+ *
274
+ * 经统一资源协调器进入 loading,再委托 `ItemAssetService` 准备新 Texture、提交贴图并释放旧资源。
275
+ * 贴图成功应用后才写 `ArtisItem.property.image`;空值则转入 pending,等待后续 replace。
276
+ * @param id 元素 ID
277
+ * @param imageUrl 新图片 URL
278
+ */
279
+ updateSpriteImage(id: string, imageUrl: string): Promise<void>;
280
+ /**
281
+ * 修改文本元素内容
282
+ * @param id 元素 ID
283
+ * @param content 文本属性增量(仅提供需要变更的字段)
284
+ */
285
+ updateTextContent(id: string, content: Partial<{
286
+ text: string;
287
+ fontSize: number;
288
+ fontFamily: string;
289
+ lineHeight: number;
290
+ color: spec.vec4;
291
+ fontWeight: spec.TextWeight;
292
+ fontStyle: spec.FontStyle;
293
+ textAlign: spec.TextAlignment;
294
+ outlineColor: spec.vec4;
295
+ outlineWidth: number;
296
+ outlineEnabled: boolean;
297
+ }>): void;
298
+ /**
299
+ * 实时修改固定宽度文字的排版宽度和中心点。
300
+ *
301
+ * 宽度只写 TextComponent,位置只做增量平移;不走 updateItemTransform,避免它重写
302
+ * transform.size 后与文字自身 scale 叠加,造成拖拽过程中字号视觉缩小。
303
+ * @param id 文本元素 ID
304
+ * @param position 目标像素中心点
305
+ * @param width 目标像素宽度
306
+ * @param resizeSnapshot Undo/Redo 文本缩放时需要一并恢复的排版与变换快照
307
+ */
308
+ updateTextItemBox(id: string, position: [number, number], width: number, resizeSnapshot?: {
309
+ scale: [number, number];
310
+ height: number;
311
+ fontSize: number;
312
+ lineHeight: number;
313
+ }): void;
314
+ /**
315
+ * 修改视频元素属性
316
+ * @param id 元素 ID
317
+ * @param content 视频属性增量(仅提供需要变更的字段)
318
+ */
319
+ updateVideoContent(id: string, content: Partial<{
320
+ videoUrl: string;
321
+ muted: boolean;
322
+ transparent: boolean;
323
+ playbackRate: number;
324
+ volume: number;
325
+ }>): void;
326
+ /**
327
+ * 修改生成器元素类型
328
+ * @param id 元素 ID
329
+ * @param generatorType 生成器类型
330
+ */
331
+ updateGeneratorType(id: string, generatorType: GeneratorType): void;
332
+ /**
333
+ * 设置生成器资源:将生成器元素原地替换为对应的 sprite / video 元素(复用同一 ID)。
334
+ *
335
+ * 对齐旧版 `setGeneratorResource`:generator 元素本身不承载资源,拿到资源后需转换为
336
+ * 真正的图片 / 视频元素。转换规则按 generatorType 决定(image → sprite,video → video)。
337
+ *
338
+ * @param id 生成器元素 ID
339
+ * @param resourceUrl 资源地址
340
+ * @returns 转换后的元素 ID(与入参 id 相同);元素不存在或非生成器时返回 undefined
341
+ */
342
+ setGeneratorResource(id: string, resourceUrl: string): string | undefined;
343
+ /**
344
+ * 设置生成器资源的同步核心:将生成器元素原地替换为 sprite / video 元素(复用同一 Schema 种子 ID)。
345
+ *
346
+ * 同步版供 {@link ItemSetGeneratorResourceCommand} execute/redo 捕获转换后的真实 id
347
+ * (SceneArtis 下为 instanceId)。sprite/video 无预合成资源,createItemCore 的 resourcePromise
348
+ * 为 undefined,与原 async createItem 行为等价。
349
+ * @param id 生成器元素 ID
350
+ * @param resourceUrl 资源地址
351
+ * @returns 转换后的元素真实 ID;非生成器元素返回 undefined
352
+ */
353
+ setGeneratorResourceCore(id: string, resourceUrl: string): string | undefined;
354
+ /**
355
+ * 修改特效元素资源
356
+ * @param id 元素 ID
357
+ * @param effectsUrl 特效资源 URL
358
+ */
359
+ updateEffectsSource(id: string, effectsUrl: string): Promise<void>;
360
+ /**
361
+ * 静默替换在线资源(ready 元素不显示 loading,pending/error 元素复用 loading 闭环)。
362
+ *
363
+ * 与 {@link updateSpriteImage} / {@link updateVideoContent} / {@link updateEffectsSource} 的区别:
364
+ * 后三者始终进入 loading(gizmo 覆盖)。本方法对正常在线资源热替换保持静默;若元素来自空资源
365
+ * placeholder 或上次加载失败,则维持已有 loading,直到本次成功或失败后关闭。供 `item.replaceSource` command 调用。
366
+ *
367
+ * 按元素类型自动分发:sprite→image、video→video、effects→effects。auto 状态下换源后按新资源原生尺寸收敛
368
+ * (effects 走 autoFit 主合成 previewSize)。尺寸随换源实时算,故 undo URL 即可原子回退尺寸。
369
+ *
370
+ * effects 采用准备后提交:新子合成完整挂载后才释放旧子合成与旧资源;失败保留旧画面和旧 property。
371
+ * @param id 元素 ID
372
+ * @param newUrl 新资源 URL
373
+ * @returns true 表示换源已发起/完成;元素不存在或类型不支持返回 false
374
+ */
375
+ replaceSourceSilent(id: string, newUrl: string): Promise<boolean>;
376
+ /**
377
+ * 修改画板布局模式
378
+ * @param id 画板 ID
379
+ * @param layoutMode 布局模式 'auto' | 'free'
380
+ */
381
+ updateFrameLayoutMode(id: string, layoutMode: 'auto' | 'free'): void;
382
+ /**
383
+ * 计算「单元素行列变更」后的完整 layoutInfos(纯计算,不修改任何数据)
384
+ *
385
+ * @param frameId 画板 ID
386
+ * @param draggedItemId 被拖拽元素 ID
387
+ * @param fromRow 起始行
388
+ * @param fromColumn 起始列
389
+ * @param toRow 目标行
390
+ * @param toColumn 目标列
391
+ * @returns 完整的新 layoutInfos;Frame 或被拖拽元素不存在时返回 undefined
392
+ */
393
+ computeLayoutInfosAfterReorder(frameId: string, draggedItemId: string, fromRow: number, fromColumn: number, toRow: number, toColumn: number): Record<string, LayoutInfo> | undefined;
394
+ /**
395
+ * 调整 Frame 内元素行列顺序并重新自动排布
396
+ * @param frameId 画板 ID
397
+ * @param draggedItemId 被拖拽元素 ID
398
+ * @param fromRow 起始行
399
+ * @param fromColumn 起始列
400
+ * @param toRow 目标行
401
+ * @param toColumn 目标列
402
+ */
403
+ adjustFrameLayoutOrder(frameId: string, draggedItemId: string, fromRow: number, fromColumn: number, toRow: number, toColumn: number): void;
404
+ /**
405
+ * 修改画板子元素
406
+ * @param id 画板 ID
407
+ * @param children 子元素 ID 列表
408
+ */
409
+ updateFrameChildren(id: string, children: string[]): void;
410
+ /**
411
+ * 修改卡片元素属性
412
+ * @param id 元素 ID
413
+ * @param content 卡片属性增量
414
+ */
415
+ updateCardContent(id: string, content: Partial<{
416
+ cardType: string;
417
+ autoHeight: boolean;
418
+ }>): void;
419
+ /**
420
+ * 将元素移动到 Frame 中
421
+ * @param itemIds 要移动的元素ID列表
422
+ * @param frameId 目标 Frame ID
423
+ */
424
+ moveItemsToFrame(itemIds: string[], frameId: string): void;
425
+ /**
426
+ * 按 ID 获取 ArtisItem
427
+ * @param id 元素 ID
428
+ * @returns 对应的 ArtisItem;不存在时返回 undefined
429
+ */
430
+ getArtisItem(id: string): ArtisItem | undefined;
431
+ /**
432
+ * 获取元素的 ItemSchema(用于复制/导出/局部建场景)
433
+ *
434
+ * 委托各 ArtisItem 的 `toSchema`,元素不存在时返回 undefined。
435
+ *
436
+ * @param id 元素 ID
437
+ * @param withParent 是否在 Schema 中携带 parentId(默认 false)
438
+ * @returns 元素 Schema;元素不存在时返回 undefined
439
+ */
440
+ getItemSchema(id: string, withParent?: boolean): ItemSchema | undefined;
441
+ /**
442
+ * 批量获取元素 ItemSchema,ids 缺省时取场景内全部元素。
443
+ *
444
+ * @param ids 元素 ID 列表,缺省取全部
445
+ * @param withParent 是否携带 parentId(默认 true)
446
+ * @returns Schema 列表(跳过不存在的元素)
447
+ */
448
+ getItemSchemas(ids?: string[], withParent?: boolean): ItemSchema[];
449
+ /**
450
+ * 按 ItemSchema 批量更新元素属性(仅更新已存在元素的属性,不创建新元素)。
451
+ *
452
+ * 根据 schema.id 找到对应元素,用 schema.property 中提供的字段更新属性并同步到 Player。
453
+ * 资源类字段(image/video)走对应的资源切换逻辑。
454
+ * @param schema 单个或多个 ItemSchema
455
+ * @returns 实际被更新的元素 ID 列表
456
+ */
457
+ changeItemPropertyBySchema(schema: ItemSchema | ItemSchema[]): Promise<string[]>;
458
+ /**
459
+ * 将单个 ItemSchema 的 property 应用到已存在元素,按类型分派到对应的同步方法。
460
+ * @param id 元素 ID
461
+ * @param info 元素 Schema
462
+ */
463
+ private _applySchemaProperty;
464
+ /**
465
+ * 将元素从 Frame 移出到主场景根节点
466
+ *
467
+ * 父子关系保留规则:
468
+ * - Group 整组移出:只改 Group.parentId = undefined,内部子元素 parentId 保持不变
469
+ * - 单个元素脱离 Group 后移出:先从 Group.children 中移除,再移到根节点
470
+ * - Player 层只对顶层元素 setParent(子元素在场景图中自动跟随)
471
+ * @param itemIds 要移出的元素 ID 列表
472
+ */
473
+ moveItemsOutOfFrame(itemIds: string[]): void;
474
+ /**
475
+ * 将 Frame 内 Group 的部分直属子元素分离到主场景根节点,并保持世界变换。
476
+ * AssistedLayout 只生成该决策,实际模型与 Player 修改统一收口到此。
477
+ */
478
+ detachGroupChildrenToRoot(groupId: string, itemIds: readonly string[]): void;
479
+ /**
480
+ * 恢复 Group 的直属 children 顺序,并把指定子元素从当前位置挂回 Group,保持世界变换。
481
+ */
482
+ restoreGroupChildren(groupId: string, children: readonly string[], itemIdsToRestore?: readonly string[]): void;
483
+ /**
484
+ * 解除元素与父节点的父子关系
485
+ * 如果父节点是 Group,同时从 Group.children 中移除
486
+ * @param itemId 元素 ID
487
+ * @param parentId 父元素 ID
488
+ */
489
+ removeItemParent(itemId: string, parentId: string): void;
490
+ /**
491
+ * 对 Frame 内子元素执行自动布局(Shelf 算法,复用 layout-utils.autoLayout)
492
+ * @param frameId 画板 ID
493
+ */
494
+ applyFrameAutoLayout(frameId: string): void;
495
+ /**
496
+ * 对页面顶层元素执行全局自动排布(复用 layout-utils.globalAutoLayout)
497
+ *
498
+ * @param param 自动布局参数
499
+ * @param param.mode 排布模式,默认 'adaptive'
500
+ * @param param.ids 参与排布的元素 ID;不传则排布所有顶层元素
501
+ * @param param.focus 排布后是否聚焦,默认 true
502
+ * @param param.gap 元素间隔(像素),默认 10
503
+ * @param param.padding 聚焦后内容与容器的上下左右间距(像素),仅 focus 开启时生效
504
+ */
505
+ autoLayoutPage(param?: PageAutoLayoutParam): void;
506
+ /**
507
+ * 计算选中元素排布的锚点偏移:保持原始包围盒左上角位置不变
508
+ * @param layoutElements 参与排布的元素列表
509
+ * @param layoutBoundingBox 排布算法输出的包围盒
510
+ * @returns 锚点偏移量
511
+ */
512
+ private getPartialLayoutAnchor;
513
+ /**
514
+ * 计算全量排布的锚点偏移:以视口中心为锚点
515
+ * @param layoutBoundingBox 排布算法输出的包围盒
516
+ * @returns 锚点偏移量
517
+ */
518
+ private getGlobalLayoutAnchor;
519
+ /**
520
+ * 修改画板元素大小(仅 Player + ArtisItem,不涉及 JSON 层)
521
+ *
522
+ * @param id Frame 元素 ID
523
+ * @param size 目标大小 [width, height](像素)
524
+ */
525
+ updateFrameItemSize(id: string, size: [number, number]): void;
526
+ /**
527
+ * 刷新 Frame 子元素列表:从 Player 层父子关系反向同步到 Frame.property.children
528
+ * @param frameId 画板 ID
529
+ */
530
+ refreshFrameChildren(frameId: string): void;
531
+ /**
532
+ * 递归收集元素及其所有嵌套子元素(处理 Group/Frame 容器)
533
+ * @param itemIds 起始元素 ID 列表
534
+ * @returns 含子元素的全部元素 ID 列表(去重)
535
+ */
536
+ collectItemsWithChildren(itemIds: string[]): string[];
537
+ /**
538
+ * 删除元素
539
+ *
540
+ * 按类型差异化处理子元素:
541
+ * - Group(空节点/编组):解除编组,把所有子元素 parentId 清空提升到根节点
542
+ * - Frame(画板):把子元素移出 Frame 到根节点,保持画布世界位置不变
543
+ * - Effects(特效):递归删除所有子元素
544
+ * - 其他:直接删除
545
+ *
546
+ * 通用兜底:删除元素时从其 parent(Group/Frame)的 children 中移除自身 id
547
+ *
548
+ * 清理顺序:前置处理子元素 → 从 parent.children 移除 → Store → Player VFXItem → 选中列表
549
+ * @param id 要删除的元素 ID
550
+ */
551
+ removeItem(id: string): void;
552
+ /**
553
+ * vfxItemId / instanceId → 元素ID(elementId)。
554
+ *
555
+ * artis↔gizmo 边界翻译:gizmo 运行时全程用 VFXItem.instanceId,
556
+ * artis 数据侧(store 里 ArtisItem.id)是 elementId。本方法把传入的 instanceId
557
+ * 翻译回 elementId,供「按 id 查 store」类调用统一入口。
558
+ * 未注册时兜底原值(SceneArtis 走 identity 直返原值、Artis 理论上应命中 registry)。
559
+ */
560
+ toElementId(id: string): string;
561
+ /**
562
+ * 元素ID(elementId)→ vfxItemId / instanceId。
563
+ *
564
+ * 边界翻译的反向:artis 对外/数据侧用 elementId,需要喂给 gizmo 或查 Player 维度
565
+ * VFXItem 时翻译成 instanceId。未注册时兜底原值。
566
+ */
567
+ toVfxItemId(id: string): string;
568
+ /**
569
+ * 按 ID 查找 Player 层 VFXItem
570
+ * @param id 元素 ID
571
+ * @returns 对应的 VFXItem;不存在时返回 undefined
572
+ */
573
+ findPlayerItemById(id: string): VFXItem | undefined;
574
+ /**
575
+ * 按 ID 获取元素的像素包围盒。
576
+ *
577
+ * 走 {@link getItemSchema} 取 ItemSchema 后委托纯函数 `getPixelBoxBySchema`
578
+ * (utils/pixel-box-utils)按数据算盒(基准像素空间、size 补乘 scale、含 rotation)。
579
+ * GROUP 等空节点无自身尺寸,返回空盒。
580
+ *
581
+ * @param id 元素 ID
582
+ * @returns 元素像素包围盒;元素不存在时返回空包围盒
583
+ */
584
+ getPixelBox(id: string): Box2;
585
+ /**
586
+ * 按 ID 获取「画板子元素」像素包围盒:叶子走 {@link getPixelBox};
587
+ * Group(空节点)取其所有后代包围盒的递归并集(用于画板自动布局把组当作单个 cell)。
588
+ *
589
+ * @param id 元素 ID
590
+ * @param visited 环路保护(内部递归用)
591
+ * @returns 元素像素包围盒;元素不存在或空组时返回空包围盒
592
+ */
593
+ getFrameChildPixelBox(id: string, visited?: Set<string>): Box2;
594
+ /**
595
+ * 按 ID 获取元素在视口坐标系下的包围盒
596
+ * @param id 元素 ID
597
+ * @returns 视口坐标系包围盒;元素不存在时返回空包围盒
598
+ */
599
+ getViewBox(id: string): Box2;
600
+ /**
601
+ * 读取视频元素当前播放时间(秒)。元素不存在或非视频时返回 0。
602
+ * @param id 视频元素 ID
603
+ * @returns 当前播放时间;读取失败返回 0
604
+ */
605
+ getVideoItemPlayTime(id: string): number;
606
+ /**
607
+ * 设置视频元素播放时间(秒),底层自动 clamp 到 [0, duration]。
608
+ * 静默定位到该帧,不动播放态与其他元素。
609
+ * @param id 视频元素 ID
610
+ * @param time 目标时间(秒)
611
+ */
612
+ setVideoItemPlayTime(id: string, time: number): void;
613
+ /**
614
+ * 暂停视频元素
615
+ * @param id 元素ID
616
+ */
617
+ pauseVideoItem(id: string): void;
618
+ /**
619
+ * 播放视频元素
620
+ * @param id 元素ID
621
+ */
622
+ playVideoItem(id: string): void;
623
+ /**
624
+ * 读取动效元素当前播放时间(秒)。元素不存在或非动效时返回 0。
625
+ *
626
+ * 动效元素在底层是 composition 子项,ArtisItem 经
627
+ * {@link EffectsItem.subCompositionItemId} 持有该子项 instanceId,
628
+ * 据此取 CompositionComponent.getTime。
629
+ * @param id 动效元素 ID
630
+ * @returns 当前播放时间;读取失败返回 0
631
+ */
632
+ getEffectsItemPlayTime(id: string): number;
633
+ /**
634
+ * 设置动效元素播放时间(秒)。静默定位到该帧,不动其他元素播放态。
635
+ * @param id 动效元素 ID
636
+ * @param time 目标时间(秒)
637
+ */
638
+ setEffectsItemPlayTime(id: string, time: number): void;
639
+ pauseEffectsItem(id: string): void;
640
+ playEffectsItem(id: string): void;
641
+ }