@bylqwjc/media-editor-image 1.0.26

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 (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +48 -0
  3. package/dist/chunk-5TBO732O.js +1 -0
  4. package/dist/index-CU3vkvDR.d.ts +44 -0
  5. package/dist/index.css +1 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +36 -0
  8. package/dist/lazy.css +1 -0
  9. package/dist/lazy.d.ts +8 -0
  10. package/dist/lazy.js +1 -0
  11. package/node_modules/@media-editor/core/LICENSE +21 -0
  12. package/node_modules/@media-editor/core/README.md +14 -0
  13. package/node_modules/@media-editor/core/dist/browser.cjs +1 -0
  14. package/node_modules/@media-editor/core/dist/browser.d.ts +117 -0
  15. package/node_modules/@media-editor/core/dist/browser.js +1 -0
  16. package/node_modules/@media-editor/core/dist/chunk-7D4QE3R2.js +1 -0
  17. package/node_modules/@media-editor/core/dist/chunk-7PSQLYXL.js +1 -0
  18. package/node_modules/@media-editor/core/dist/chunk-FAFKY4LX.js +1 -0
  19. package/node_modules/@media-editor/core/dist/chunk-VDEZTXEA.js +1 -0
  20. package/node_modules/@media-editor/core/dist/engine.cjs +1 -0
  21. package/node_modules/@media-editor/core/dist/engine.d.ts +663 -0
  22. package/node_modules/@media-editor/core/dist/engine.js +1 -0
  23. package/node_modules/@media-editor/core/dist/filerobot.cjs +1 -0
  24. package/node_modules/@media-editor/core/dist/filerobot.d.ts +88 -0
  25. package/node_modules/@media-editor/core/dist/filerobot.js +1 -0
  26. package/node_modules/@media-editor/core/dist/index.cjs +1 -0
  27. package/node_modules/@media-editor/core/dist/index.d.ts +250 -0
  28. package/node_modules/@media-editor/core/dist/index.js +1 -0
  29. package/node_modules/@media-editor/core/dist/platform-presets-Ca2LbKQ3.d.ts +80 -0
  30. package/node_modules/@media-editor/core/dist/state-D2oM5s1a.d.ts +2098 -0
  31. package/node_modules/@media-editor/core/node_modules/zod/LICENSE +21 -0
  32. package/node_modules/@media-editor/core/node_modules/zod/README.md +208 -0
  33. package/node_modules/@media-editor/core/node_modules/zod/index.cjs +1 -0
  34. package/node_modules/@media-editor/core/node_modules/zod/index.d.cts +4 -0
  35. package/node_modules/@media-editor/core/node_modules/zod/index.js +1 -0
  36. package/node_modules/@media-editor/core/node_modules/zod/package.json +76 -0
  37. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.cjs +1 -0
  38. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.d.cts +164 -0
  39. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.js +1 -0
  40. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.cjs +1 -0
  41. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.d.cts +5 -0
  42. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.js +1 -0
  43. package/node_modules/@media-editor/core/node_modules/zod/v3/external.cjs +1 -0
  44. package/node_modules/@media-editor/core/node_modules/zod/v3/external.d.cts +6 -0
  45. package/node_modules/@media-editor/core/node_modules/zod/v3/external.js +1 -0
  46. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.cjs +1 -0
  47. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  48. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  49. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.cjs +1 -0
  50. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  51. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.js +1 -0
  52. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.cjs +1 -0
  53. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  54. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.js +1 -0
  55. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.cjs +1 -0
  56. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  57. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  58. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.cjs +1 -0
  59. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  60. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  61. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.cjs +1 -0
  62. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.d.cts +85 -0
  63. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.js +1 -0
  64. package/node_modules/@media-editor/core/node_modules/zod/v3/index.cjs +1 -0
  65. package/node_modules/@media-editor/core/node_modules/zod/v3/index.d.cts +4 -0
  66. package/node_modules/@media-editor/core/node_modules/zod/v3/index.js +1 -0
  67. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.cjs +1 -0
  68. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.d.cts +3 -0
  69. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.js +1 -0
  70. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.cjs +1 -0
  71. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.d.cts +102 -0
  72. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.js +1 -0
  73. package/node_modules/@media-editor/core/node_modules/zod/v3/types.cjs +1 -0
  74. package/node_modules/@media-editor/core/node_modules/zod/v3/types.d.cts +1031 -0
  75. package/node_modules/@media-editor/core/node_modules/zod/v3/types.js +1 -0
  76. package/node_modules/@media-editor/core/package.json +42 -0
  77. package/package.json +34 -0
@@ -0,0 +1,2098 @@
1
+ import { z } from 'zod';
2
+
3
+ /**
4
+ * editor-core/state —— 视频编辑状态模型 v2(纯 TS,零框架依赖)
5
+ *
6
+ * SDK 分层约定:本目录(editor-core)是未来 Vue/任意框架适配的共享核心,
7
+ * 只允许纯 TS + zod,禁止 import React/Next/DOM 类型。
8
+ *
9
+ * v2 = 多素材输出时间轴(CapCut 简化版):
10
+ * - clips:视频片段列表,**数组顺序 = 输出拼接顺序**(x 轴是输出时间,不是源时间)。
11
+ * 每个片段 = { srcIdx: 第几个上传的视频文件, in/out: 该源内的时间区间 }。
12
+ * EditState 只存索引引用——File/objectURL 是浏览器运行时的事,不进状态。
13
+ * - audioClips:音乐轨。startAt = 在输出时间轴上的落点;volume 0-10(导出真值,预览钳 1)。
14
+ * - canvas:输出画布 = 第一个素材的分辨率(偶数)。所有片段先 cover 居中裁剪铺满画布,
15
+ * 再统一过全局效果链 —— crop/rotation/outputSize 的「源 dims」一律指 canvas。
16
+ * - 全局效果(crop/scale/rotation/flips/filters/overlays)作用于拼接后的整条输出。
17
+ * - poster.time = 输出时间轴时刻。
18
+ * overlays 坐标存「最终输出空间」,导出时客户端渲染成输出分辨率透明 PNG 烧入。
19
+ */
20
+
21
+ declare const Overlay: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
22
+ rotation: z.ZodOptional<z.ZodNumber>;
23
+ startAt: z.ZodOptional<z.ZodNumber>;
24
+ endAt: z.ZodOptional<z.ZodNumber>;
25
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
26
+ hidden: z.ZodOptional<z.ZodBoolean>;
27
+ locked: z.ZodOptional<z.ZodBoolean>;
28
+ color: z.ZodString;
29
+ width: z.ZodNumber;
30
+ type: z.ZodLiteral<"pen">;
31
+ points: z.ZodArray<z.ZodNumber, "many">;
32
+ }, "strip", z.ZodTypeAny, {
33
+ type: "pen";
34
+ points: number[];
35
+ color: string;
36
+ width: number;
37
+ rotation?: number | undefined;
38
+ startAt?: number | undefined;
39
+ endAt?: number | undefined;
40
+ timelineTrack?: number | undefined;
41
+ hidden?: boolean | undefined;
42
+ locked?: boolean | undefined;
43
+ }, {
44
+ type: "pen";
45
+ points: number[];
46
+ color: string;
47
+ width: number;
48
+ rotation?: number | undefined;
49
+ startAt?: number | undefined;
50
+ endAt?: number | undefined;
51
+ timelineTrack?: number | undefined;
52
+ hidden?: boolean | undefined;
53
+ locked?: boolean | undefined;
54
+ }>, z.ZodObject<{
55
+ rotation: z.ZodOptional<z.ZodNumber>;
56
+ startAt: z.ZodOptional<z.ZodNumber>;
57
+ endAt: z.ZodOptional<z.ZodNumber>;
58
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
59
+ hidden: z.ZodOptional<z.ZodBoolean>;
60
+ locked: z.ZodOptional<z.ZodBoolean>;
61
+ color: z.ZodString;
62
+ width: z.ZodNumber;
63
+ type: z.ZodLiteral<"line">;
64
+ x1: z.ZodNumber;
65
+ y1: z.ZodNumber;
66
+ x2: z.ZodNumber;
67
+ y2: z.ZodNumber;
68
+ }, "strip", z.ZodTypeAny, {
69
+ type: "line";
70
+ color: string;
71
+ width: number;
72
+ x1: number;
73
+ y1: number;
74
+ x2: number;
75
+ y2: number;
76
+ rotation?: number | undefined;
77
+ startAt?: number | undefined;
78
+ endAt?: number | undefined;
79
+ timelineTrack?: number | undefined;
80
+ hidden?: boolean | undefined;
81
+ locked?: boolean | undefined;
82
+ }, {
83
+ type: "line";
84
+ color: string;
85
+ width: number;
86
+ x1: number;
87
+ y1: number;
88
+ x2: number;
89
+ y2: number;
90
+ rotation?: number | undefined;
91
+ startAt?: number | undefined;
92
+ endAt?: number | undefined;
93
+ timelineTrack?: number | undefined;
94
+ hidden?: boolean | undefined;
95
+ locked?: boolean | undefined;
96
+ }>, z.ZodObject<{
97
+ rotation: z.ZodOptional<z.ZodNumber>;
98
+ startAt: z.ZodOptional<z.ZodNumber>;
99
+ endAt: z.ZodOptional<z.ZodNumber>;
100
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
101
+ hidden: z.ZodOptional<z.ZodBoolean>;
102
+ locked: z.ZodOptional<z.ZodBoolean>;
103
+ color: z.ZodString;
104
+ width: z.ZodNumber;
105
+ type: z.ZodLiteral<"arrow">;
106
+ x1: z.ZodNumber;
107
+ y1: z.ZodNumber;
108
+ x2: z.ZodNumber;
109
+ y2: z.ZodNumber;
110
+ }, "strip", z.ZodTypeAny, {
111
+ type: "arrow";
112
+ color: string;
113
+ width: number;
114
+ x1: number;
115
+ y1: number;
116
+ x2: number;
117
+ y2: number;
118
+ rotation?: number | undefined;
119
+ startAt?: number | undefined;
120
+ endAt?: number | undefined;
121
+ timelineTrack?: number | undefined;
122
+ hidden?: boolean | undefined;
123
+ locked?: boolean | undefined;
124
+ }, {
125
+ type: "arrow";
126
+ color: string;
127
+ width: number;
128
+ x1: number;
129
+ y1: number;
130
+ x2: number;
131
+ y2: number;
132
+ rotation?: number | undefined;
133
+ startAt?: number | undefined;
134
+ endAt?: number | undefined;
135
+ timelineTrack?: number | undefined;
136
+ hidden?: boolean | undefined;
137
+ locked?: boolean | undefined;
138
+ }>, z.ZodObject<{
139
+ rotation: z.ZodOptional<z.ZodNumber>;
140
+ startAt: z.ZodOptional<z.ZodNumber>;
141
+ endAt: z.ZodOptional<z.ZodNumber>;
142
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
143
+ hidden: z.ZodOptional<z.ZodBoolean>;
144
+ locked: z.ZodOptional<z.ZodBoolean>;
145
+ color: z.ZodString;
146
+ width: z.ZodNumber;
147
+ type: z.ZodLiteral<"rect">;
148
+ x: z.ZodNumber;
149
+ y: z.ZodNumber;
150
+ w: z.ZodNumber;
151
+ h: z.ZodNumber;
152
+ }, "strip", z.ZodTypeAny, {
153
+ type: "rect";
154
+ color: string;
155
+ width: number;
156
+ x: number;
157
+ y: number;
158
+ w: number;
159
+ h: number;
160
+ rotation?: number | undefined;
161
+ startAt?: number | undefined;
162
+ endAt?: number | undefined;
163
+ timelineTrack?: number | undefined;
164
+ hidden?: boolean | undefined;
165
+ locked?: boolean | undefined;
166
+ }, {
167
+ type: "rect";
168
+ color: string;
169
+ width: number;
170
+ x: number;
171
+ y: number;
172
+ w: number;
173
+ h: number;
174
+ rotation?: number | undefined;
175
+ startAt?: number | undefined;
176
+ endAt?: number | undefined;
177
+ timelineTrack?: number | undefined;
178
+ hidden?: boolean | undefined;
179
+ locked?: boolean | undefined;
180
+ }>, z.ZodObject<{
181
+ rotation: z.ZodOptional<z.ZodNumber>;
182
+ startAt: z.ZodOptional<z.ZodNumber>;
183
+ endAt: z.ZodOptional<z.ZodNumber>;
184
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
185
+ hidden: z.ZodOptional<z.ZodBoolean>;
186
+ locked: z.ZodOptional<z.ZodBoolean>;
187
+ color: z.ZodString;
188
+ width: z.ZodNumber;
189
+ type: z.ZodLiteral<"ellipse">;
190
+ x: z.ZodNumber;
191
+ y: z.ZodNumber;
192
+ w: z.ZodNumber;
193
+ h: z.ZodNumber;
194
+ }, "strip", z.ZodTypeAny, {
195
+ type: "ellipse";
196
+ color: string;
197
+ width: number;
198
+ x: number;
199
+ y: number;
200
+ w: number;
201
+ h: number;
202
+ rotation?: number | undefined;
203
+ startAt?: number | undefined;
204
+ endAt?: number | undefined;
205
+ timelineTrack?: number | undefined;
206
+ hidden?: boolean | undefined;
207
+ locked?: boolean | undefined;
208
+ }, {
209
+ type: "ellipse";
210
+ color: string;
211
+ width: number;
212
+ x: number;
213
+ y: number;
214
+ w: number;
215
+ h: number;
216
+ rotation?: number | undefined;
217
+ startAt?: number | undefined;
218
+ endAt?: number | undefined;
219
+ timelineTrack?: number | undefined;
220
+ hidden?: boolean | undefined;
221
+ locked?: boolean | undefined;
222
+ }>, z.ZodObject<{
223
+ rotation: z.ZodOptional<z.ZodNumber>;
224
+ startAt: z.ZodOptional<z.ZodNumber>;
225
+ endAt: z.ZodOptional<z.ZodNumber>;
226
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
227
+ hidden: z.ZodOptional<z.ZodBoolean>;
228
+ locked: z.ZodOptional<z.ZodBoolean>;
229
+ type: z.ZodLiteral<"text">;
230
+ x: z.ZodNumber;
231
+ y: z.ZodNumber;
232
+ text: z.ZodString;
233
+ color: z.ZodString;
234
+ fontSize: z.ZodNumber;
235
+ fontFamily: z.ZodOptional<z.ZodString>;
236
+ fontWeight: z.ZodOptional<z.ZodString>;
237
+ italic: z.ZodOptional<z.ZodBoolean>;
238
+ underline: z.ZodOptional<z.ZodBoolean>;
239
+ strikethrough: z.ZodOptional<z.ZodBoolean>;
240
+ align: z.ZodOptional<z.ZodEnum<["left", "center", "right"]>>;
241
+ width: z.ZodOptional<z.ZodNumber>;
242
+ backgroundColor: z.ZodOptional<z.ZodString>;
243
+ strokeColor: z.ZodOptional<z.ZodString>;
244
+ borderWidth: z.ZodOptional<z.ZodNumber>;
245
+ paddingX: z.ZodOptional<z.ZodNumber>;
246
+ paddingY: z.ZodOptional<z.ZodNumber>;
247
+ lineHeight: z.ZodOptional<z.ZodNumber>;
248
+ opacity: z.ZodOptional<z.ZodNumber>;
249
+ }, "strip", z.ZodTypeAny, {
250
+ type: "text";
251
+ color: string;
252
+ x: number;
253
+ y: number;
254
+ text: string;
255
+ fontSize: number;
256
+ rotation?: number | undefined;
257
+ startAt?: number | undefined;
258
+ endAt?: number | undefined;
259
+ timelineTrack?: number | undefined;
260
+ hidden?: boolean | undefined;
261
+ locked?: boolean | undefined;
262
+ width?: number | undefined;
263
+ fontFamily?: string | undefined;
264
+ fontWeight?: string | undefined;
265
+ italic?: boolean | undefined;
266
+ underline?: boolean | undefined;
267
+ strikethrough?: boolean | undefined;
268
+ align?: "left" | "center" | "right" | undefined;
269
+ backgroundColor?: string | undefined;
270
+ strokeColor?: string | undefined;
271
+ borderWidth?: number | undefined;
272
+ paddingX?: number | undefined;
273
+ paddingY?: number | undefined;
274
+ lineHeight?: number | undefined;
275
+ opacity?: number | undefined;
276
+ }, {
277
+ type: "text";
278
+ color: string;
279
+ x: number;
280
+ y: number;
281
+ text: string;
282
+ fontSize: number;
283
+ rotation?: number | undefined;
284
+ startAt?: number | undefined;
285
+ endAt?: number | undefined;
286
+ timelineTrack?: number | undefined;
287
+ hidden?: boolean | undefined;
288
+ locked?: boolean | undefined;
289
+ width?: number | undefined;
290
+ fontFamily?: string | undefined;
291
+ fontWeight?: string | undefined;
292
+ italic?: boolean | undefined;
293
+ underline?: boolean | undefined;
294
+ strikethrough?: boolean | undefined;
295
+ align?: "left" | "center" | "right" | undefined;
296
+ backgroundColor?: string | undefined;
297
+ strokeColor?: string | undefined;
298
+ borderWidth?: number | undefined;
299
+ paddingX?: number | undefined;
300
+ paddingY?: number | undefined;
301
+ lineHeight?: number | undefined;
302
+ opacity?: number | undefined;
303
+ }>, z.ZodObject<{
304
+ rotation: z.ZodOptional<z.ZodNumber>;
305
+ startAt: z.ZodOptional<z.ZodNumber>;
306
+ endAt: z.ZodOptional<z.ZodNumber>;
307
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
308
+ hidden: z.ZodOptional<z.ZodBoolean>;
309
+ locked: z.ZodOptional<z.ZodBoolean>;
310
+ type: z.ZodLiteral<"sticker">;
311
+ x: z.ZodNumber;
312
+ y: z.ZodNumber;
313
+ w: z.ZodNumber;
314
+ h: z.ZodNumber;
315
+ emoji: z.ZodOptional<z.ZodString>;
316
+ src: z.ZodOptional<z.ZodString>;
317
+ }, "strip", z.ZodTypeAny, {
318
+ type: "sticker";
319
+ x: number;
320
+ y: number;
321
+ w: number;
322
+ h: number;
323
+ rotation?: number | undefined;
324
+ startAt?: number | undefined;
325
+ endAt?: number | undefined;
326
+ timelineTrack?: number | undefined;
327
+ hidden?: boolean | undefined;
328
+ locked?: boolean | undefined;
329
+ emoji?: string | undefined;
330
+ src?: string | undefined;
331
+ }, {
332
+ type: "sticker";
333
+ x: number;
334
+ y: number;
335
+ w: number;
336
+ h: number;
337
+ rotation?: number | undefined;
338
+ startAt?: number | undefined;
339
+ endAt?: number | undefined;
340
+ timelineTrack?: number | undefined;
341
+ hidden?: boolean | undefined;
342
+ locked?: boolean | undefined;
343
+ emoji?: string | undefined;
344
+ src?: string | undefined;
345
+ }>, z.ZodObject<{
346
+ rotation: z.ZodOptional<z.ZodNumber>;
347
+ startAt: z.ZodOptional<z.ZodNumber>;
348
+ endAt: z.ZodOptional<z.ZodNumber>;
349
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
350
+ hidden: z.ZodOptional<z.ZodBoolean>;
351
+ locked: z.ZodOptional<z.ZodBoolean>;
352
+ brightness: z.ZodDefault<z.ZodNumber>;
353
+ contrast: z.ZodDefault<z.ZodNumber>;
354
+ saturation: z.ZodDefault<z.ZodNumber>;
355
+ temperature: z.ZodDefault<z.ZodNumber>;
356
+ tint: z.ZodDefault<z.ZodNumber>;
357
+ vibrance: z.ZodDefault<z.ZodNumber>;
358
+ gamma: z.ZodDefault<z.ZodNumber>;
359
+ highlights: z.ZodDefault<z.ZodNumber>;
360
+ shadows: z.ZodDefault<z.ZodNumber>;
361
+ whites: z.ZodDefault<z.ZodNumber>;
362
+ blacks: z.ZodDefault<z.ZodNumber>;
363
+ lightSense: z.ZodDefault<z.ZodNumber>;
364
+ sharpen: z.ZodDefault<z.ZodNumber>;
365
+ clarity: z.ZodDefault<z.ZodNumber>;
366
+ grain: z.ZodDefault<z.ZodNumber>;
367
+ fade: z.ZodDefault<z.ZodNumber>;
368
+ vignette: z.ZodDefault<z.ZodNumber>;
369
+ type: z.ZodLiteral<"adjust">;
370
+ x: z.ZodNumber;
371
+ y: z.ZodNumber;
372
+ w: z.ZodNumber;
373
+ h: z.ZodNumber;
374
+ layerKind: z.ZodOptional<z.ZodEnum<["adjust", "filter"]>>;
375
+ filterPreset: z.ZodOptional<z.ZodString>;
376
+ }, "strip", z.ZodTypeAny, {
377
+ type: "adjust";
378
+ x: number;
379
+ y: number;
380
+ w: number;
381
+ h: number;
382
+ brightness: number;
383
+ contrast: number;
384
+ saturation: number;
385
+ temperature: number;
386
+ tint: number;
387
+ vibrance: number;
388
+ gamma: number;
389
+ highlights: number;
390
+ shadows: number;
391
+ whites: number;
392
+ blacks: number;
393
+ lightSense: number;
394
+ sharpen: number;
395
+ clarity: number;
396
+ grain: number;
397
+ fade: number;
398
+ vignette: number;
399
+ rotation?: number | undefined;
400
+ startAt?: number | undefined;
401
+ endAt?: number | undefined;
402
+ timelineTrack?: number | undefined;
403
+ hidden?: boolean | undefined;
404
+ locked?: boolean | undefined;
405
+ layerKind?: "filter" | "adjust" | undefined;
406
+ filterPreset?: string | undefined;
407
+ }, {
408
+ type: "adjust";
409
+ x: number;
410
+ y: number;
411
+ w: number;
412
+ h: number;
413
+ rotation?: number | undefined;
414
+ startAt?: number | undefined;
415
+ endAt?: number | undefined;
416
+ timelineTrack?: number | undefined;
417
+ hidden?: boolean | undefined;
418
+ locked?: boolean | undefined;
419
+ layerKind?: "filter" | "adjust" | undefined;
420
+ filterPreset?: string | undefined;
421
+ brightness?: number | undefined;
422
+ contrast?: number | undefined;
423
+ saturation?: number | undefined;
424
+ temperature?: number | undefined;
425
+ tint?: number | undefined;
426
+ vibrance?: number | undefined;
427
+ gamma?: number | undefined;
428
+ highlights?: number | undefined;
429
+ shadows?: number | undefined;
430
+ whites?: number | undefined;
431
+ blacks?: number | undefined;
432
+ lightSense?: number | undefined;
433
+ sharpen?: number | undefined;
434
+ clarity?: number | undefined;
435
+ grain?: number | undefined;
436
+ fade?: number | undefined;
437
+ vignette?: number | undefined;
438
+ }>]>;
439
+ type OverlayT = z.infer<typeof Overlay>;
440
+ /** 视频片段:srcIdx 指向上传文件序(服务端交叉校验 < 实际文件数) */
441
+ declare const Clip: z.ZodObject<{
442
+ srcIdx: z.ZodNumber;
443
+ in: z.ZodNumber;
444
+ out: z.ZodNumber;
445
+ hidden: z.ZodOptional<z.ZodBoolean>;
446
+ locked: z.ZodOptional<z.ZodBoolean>;
447
+ }, "strip", z.ZodTypeAny, {
448
+ srcIdx: number;
449
+ in: number;
450
+ out: number;
451
+ hidden?: boolean | undefined;
452
+ locked?: boolean | undefined;
453
+ }, {
454
+ srcIdx: number;
455
+ in: number;
456
+ out: number;
457
+ hidden?: boolean | undefined;
458
+ locked?: boolean | undefined;
459
+ }>;
460
+ type ClipT = z.infer<typeof Clip>;
461
+ /** 音乐片段:startAt = 输出时间轴落点;in/out = 音频源内区间 */
462
+ declare const AudioClip: z.ZodObject<{
463
+ srcIdx: z.ZodNumber;
464
+ track: z.ZodDefault<z.ZodNumber>;
465
+ startAt: z.ZodNumber;
466
+ in: z.ZodNumber;
467
+ out: z.ZodNumber;
468
+ speed: z.ZodDefault<z.ZodNumber>;
469
+ volume: z.ZodNumber;
470
+ muted: z.ZodOptional<z.ZodBoolean>;
471
+ locked: z.ZodOptional<z.ZodBoolean>;
472
+ fadeIn: z.ZodDefault<z.ZodNumber>;
473
+ fadeOut: z.ZodDefault<z.ZodNumber>;
474
+ }, "strip", z.ZodTypeAny, {
475
+ startAt: number;
476
+ srcIdx: number;
477
+ in: number;
478
+ out: number;
479
+ track: number;
480
+ speed: number;
481
+ volume: number;
482
+ fadeIn: number;
483
+ fadeOut: number;
484
+ locked?: boolean | undefined;
485
+ muted?: boolean | undefined;
486
+ }, {
487
+ startAt: number;
488
+ srcIdx: number;
489
+ in: number;
490
+ out: number;
491
+ volume: number;
492
+ locked?: boolean | undefined;
493
+ track?: number | undefined;
494
+ speed?: number | undefined;
495
+ muted?: boolean | undefined;
496
+ fadeIn?: number | undefined;
497
+ fadeOut?: number | undefined;
498
+ }>;
499
+ type AudioClipT = z.infer<typeof AudioClip>;
500
+ declare const Transition: z.ZodObject<{
501
+ type: z.ZodDefault<z.ZodEnum<["none", "fade", "slide", "wipe", "flip", "clockWipe", "star", "circle", "rectangle"]>>;
502
+ duration: z.ZodDefault<z.ZodNumber>;
503
+ }, "strip", z.ZodTypeAny, {
504
+ type: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle";
505
+ duration: number;
506
+ }, {
507
+ type?: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle" | undefined;
508
+ duration?: number | undefined;
509
+ }>;
510
+ type TransitionT = z.infer<typeof Transition>;
511
+ declare const ExportSettings: z.ZodOptional<z.ZodObject<{
512
+ fileName: z.ZodOptional<z.ZodString>;
513
+ format: z.ZodDefault<z.ZodEnum<["mp4", "mov", "mxf"]>>;
514
+ width: z.ZodOptional<z.ZodNumber>;
515
+ height: z.ZodOptional<z.ZodNumber>;
516
+ frameRate: z.ZodDefault<z.ZodNumber>;
517
+ bitrateMode: z.ZodOptional<z.ZodEnum<["auto", "custom"]>>;
518
+ videoBitrateKbps: z.ZodOptional<z.ZodNumber>;
519
+ audioBitrateKbps: z.ZodOptional<z.ZodNumber>;
520
+ audioCodec: z.ZodDefault<z.ZodEnum<["aac", "mp3"]>>;
521
+ }, "strip", z.ZodTypeAny, {
522
+ format: "mp4" | "mov" | "mxf";
523
+ frameRate: number;
524
+ audioCodec: "aac" | "mp3";
525
+ width?: number | undefined;
526
+ fileName?: string | undefined;
527
+ height?: number | undefined;
528
+ bitrateMode?: "custom" | "auto" | undefined;
529
+ videoBitrateKbps?: number | undefined;
530
+ audioBitrateKbps?: number | undefined;
531
+ }, {
532
+ width?: number | undefined;
533
+ fileName?: string | undefined;
534
+ format?: "mp4" | "mov" | "mxf" | undefined;
535
+ height?: number | undefined;
536
+ frameRate?: number | undefined;
537
+ bitrateMode?: "custom" | "auto" | undefined;
538
+ videoBitrateKbps?: number | undefined;
539
+ audioBitrateKbps?: number | undefined;
540
+ audioCodec?: "aac" | "mp3" | undefined;
541
+ }>>;
542
+ type ExportSettingsT = z.infer<typeof ExportSettings>;
543
+ declare const DEFAULT_FILTERS: {
544
+ brightness: number;
545
+ contrast: number;
546
+ saturation: number;
547
+ temperature: number;
548
+ tint: number;
549
+ vibrance: number;
550
+ gamma: number;
551
+ highlights: number;
552
+ shadows: number;
553
+ whites: number;
554
+ blacks: number;
555
+ lightSense: number;
556
+ sharpen: number;
557
+ clarity: number;
558
+ grain: number;
559
+ fade: number;
560
+ vignette: number;
561
+ };
562
+ declare const VideoEditState: z.ZodEffects<z.ZodObject<{
563
+ clips: z.ZodArray<z.ZodObject<{
564
+ srcIdx: z.ZodNumber;
565
+ in: z.ZodNumber;
566
+ out: z.ZodNumber;
567
+ hidden: z.ZodOptional<z.ZodBoolean>;
568
+ locked: z.ZodOptional<z.ZodBoolean>;
569
+ }, "strip", z.ZodTypeAny, {
570
+ srcIdx: number;
571
+ in: number;
572
+ out: number;
573
+ hidden?: boolean | undefined;
574
+ locked?: boolean | undefined;
575
+ }, {
576
+ srcIdx: number;
577
+ in: number;
578
+ out: number;
579
+ hidden?: boolean | undefined;
580
+ locked?: boolean | undefined;
581
+ }>, "many">;
582
+ audioClips: z.ZodDefault<z.ZodArray<z.ZodObject<{
583
+ srcIdx: z.ZodNumber;
584
+ track: z.ZodDefault<z.ZodNumber>;
585
+ startAt: z.ZodNumber;
586
+ in: z.ZodNumber;
587
+ out: z.ZodNumber;
588
+ speed: z.ZodDefault<z.ZodNumber>;
589
+ volume: z.ZodNumber;
590
+ muted: z.ZodOptional<z.ZodBoolean>;
591
+ locked: z.ZodOptional<z.ZodBoolean>;
592
+ fadeIn: z.ZodDefault<z.ZodNumber>;
593
+ fadeOut: z.ZodDefault<z.ZodNumber>;
594
+ }, "strip", z.ZodTypeAny, {
595
+ startAt: number;
596
+ srcIdx: number;
597
+ in: number;
598
+ out: number;
599
+ track: number;
600
+ speed: number;
601
+ volume: number;
602
+ fadeIn: number;
603
+ fadeOut: number;
604
+ locked?: boolean | undefined;
605
+ muted?: boolean | undefined;
606
+ }, {
607
+ startAt: number;
608
+ srcIdx: number;
609
+ in: number;
610
+ out: number;
611
+ volume: number;
612
+ locked?: boolean | undefined;
613
+ track?: number | undefined;
614
+ speed?: number | undefined;
615
+ muted?: boolean | undefined;
616
+ fadeIn?: number | undefined;
617
+ fadeOut?: number | undefined;
618
+ }>, "many">>;
619
+ /** 输出画布(=首素材分辨率,偶数);全局 crop/rotation 的"源 dims" */
620
+ canvas: z.ZodObject<{
621
+ w: z.ZodNumber;
622
+ h: z.ZodNumber;
623
+ }, "strip", z.ZodTypeAny, {
624
+ w: number;
625
+ h: number;
626
+ }, {
627
+ w: number;
628
+ h: number;
629
+ }>;
630
+ crop: z.ZodOptional<z.ZodObject<{
631
+ x: z.ZodNumber;
632
+ y: z.ZodNumber;
633
+ width: z.ZodNumber;
634
+ height: z.ZodNumber;
635
+ }, "strip", z.ZodTypeAny, {
636
+ width: number;
637
+ x: number;
638
+ y: number;
639
+ height: number;
640
+ }, {
641
+ width: number;
642
+ x: number;
643
+ y: number;
644
+ height: number;
645
+ }>>;
646
+ scale: z.ZodOptional<z.ZodObject<{
647
+ width: z.ZodNumber;
648
+ height: z.ZodNumber;
649
+ fit: z.ZodEnum<["contain", "cover", "force"]>;
650
+ backgroundColor: z.ZodOptional<z.ZodString>;
651
+ }, "strip", z.ZodTypeAny, {
652
+ width: number;
653
+ height: number;
654
+ fit: "contain" | "cover" | "force";
655
+ backgroundColor?: string | undefined;
656
+ }, {
657
+ width: number;
658
+ height: number;
659
+ fit: "contain" | "cover" | "force";
660
+ backgroundColor?: string | undefined;
661
+ }>>;
662
+ /** 任意角度(度)。UI = 90° 步进按钮 + ±45° 刻度盘叠加 */
663
+ rotation: z.ZodDefault<z.ZodNumber>;
664
+ flipX: z.ZodDefault<z.ZodBoolean>;
665
+ flipY: z.ZodDefault<z.ZodBoolean>;
666
+ filters: z.ZodDefault<z.ZodObject<{
667
+ brightness: z.ZodDefault<z.ZodNumber>;
668
+ contrast: z.ZodDefault<z.ZodNumber>;
669
+ saturation: z.ZodDefault<z.ZodNumber>;
670
+ temperature: z.ZodDefault<z.ZodNumber>;
671
+ tint: z.ZodDefault<z.ZodNumber>;
672
+ vibrance: z.ZodDefault<z.ZodNumber>;
673
+ gamma: z.ZodDefault<z.ZodNumber>;
674
+ highlights: z.ZodDefault<z.ZodNumber>;
675
+ shadows: z.ZodDefault<z.ZodNumber>;
676
+ whites: z.ZodDefault<z.ZodNumber>;
677
+ blacks: z.ZodDefault<z.ZodNumber>;
678
+ lightSense: z.ZodDefault<z.ZodNumber>;
679
+ sharpen: z.ZodDefault<z.ZodNumber>;
680
+ clarity: z.ZodDefault<z.ZodNumber>;
681
+ grain: z.ZodDefault<z.ZodNumber>;
682
+ fade: z.ZodDefault<z.ZodNumber>;
683
+ vignette: z.ZodDefault<z.ZodNumber>;
684
+ }, "strip", z.ZodTypeAny, {
685
+ brightness: number;
686
+ contrast: number;
687
+ saturation: number;
688
+ temperature: number;
689
+ tint: number;
690
+ vibrance: number;
691
+ gamma: number;
692
+ highlights: number;
693
+ shadows: number;
694
+ whites: number;
695
+ blacks: number;
696
+ lightSense: number;
697
+ sharpen: number;
698
+ clarity: number;
699
+ grain: number;
700
+ fade: number;
701
+ vignette: number;
702
+ }, {
703
+ brightness?: number | undefined;
704
+ contrast?: number | undefined;
705
+ saturation?: number | undefined;
706
+ temperature?: number | undefined;
707
+ tint?: number | undefined;
708
+ vibrance?: number | undefined;
709
+ gamma?: number | undefined;
710
+ highlights?: number | undefined;
711
+ shadows?: number | undefined;
712
+ whites?: number | undefined;
713
+ blacks?: number | undefined;
714
+ lightSense?: number | undefined;
715
+ sharpen?: number | undefined;
716
+ clarity?: number | undefined;
717
+ grain?: number | undefined;
718
+ fade?: number | undefined;
719
+ vignette?: number | undefined;
720
+ }>>;
721
+ /** 预设滤镜 id(见 filters.ts);与 filters 手调叠加 */
722
+ filterPreset: z.ZodOptional<z.ZodString>;
723
+ overlays: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
724
+ rotation: z.ZodOptional<z.ZodNumber>;
725
+ startAt: z.ZodOptional<z.ZodNumber>;
726
+ endAt: z.ZodOptional<z.ZodNumber>;
727
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
728
+ hidden: z.ZodOptional<z.ZodBoolean>;
729
+ locked: z.ZodOptional<z.ZodBoolean>;
730
+ color: z.ZodString;
731
+ width: z.ZodNumber;
732
+ type: z.ZodLiteral<"pen">;
733
+ points: z.ZodArray<z.ZodNumber, "many">;
734
+ }, "strip", z.ZodTypeAny, {
735
+ type: "pen";
736
+ points: number[];
737
+ color: string;
738
+ width: number;
739
+ rotation?: number | undefined;
740
+ startAt?: number | undefined;
741
+ endAt?: number | undefined;
742
+ timelineTrack?: number | undefined;
743
+ hidden?: boolean | undefined;
744
+ locked?: boolean | undefined;
745
+ }, {
746
+ type: "pen";
747
+ points: number[];
748
+ color: string;
749
+ width: number;
750
+ rotation?: number | undefined;
751
+ startAt?: number | undefined;
752
+ endAt?: number | undefined;
753
+ timelineTrack?: number | undefined;
754
+ hidden?: boolean | undefined;
755
+ locked?: boolean | undefined;
756
+ }>, z.ZodObject<{
757
+ rotation: z.ZodOptional<z.ZodNumber>;
758
+ startAt: z.ZodOptional<z.ZodNumber>;
759
+ endAt: z.ZodOptional<z.ZodNumber>;
760
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
761
+ hidden: z.ZodOptional<z.ZodBoolean>;
762
+ locked: z.ZodOptional<z.ZodBoolean>;
763
+ color: z.ZodString;
764
+ width: z.ZodNumber;
765
+ type: z.ZodLiteral<"line">;
766
+ x1: z.ZodNumber;
767
+ y1: z.ZodNumber;
768
+ x2: z.ZodNumber;
769
+ y2: z.ZodNumber;
770
+ }, "strip", z.ZodTypeAny, {
771
+ type: "line";
772
+ color: string;
773
+ width: number;
774
+ x1: number;
775
+ y1: number;
776
+ x2: number;
777
+ y2: number;
778
+ rotation?: number | undefined;
779
+ startAt?: number | undefined;
780
+ endAt?: number | undefined;
781
+ timelineTrack?: number | undefined;
782
+ hidden?: boolean | undefined;
783
+ locked?: boolean | undefined;
784
+ }, {
785
+ type: "line";
786
+ color: string;
787
+ width: number;
788
+ x1: number;
789
+ y1: number;
790
+ x2: number;
791
+ y2: number;
792
+ rotation?: number | undefined;
793
+ startAt?: number | undefined;
794
+ endAt?: number | undefined;
795
+ timelineTrack?: number | undefined;
796
+ hidden?: boolean | undefined;
797
+ locked?: boolean | undefined;
798
+ }>, z.ZodObject<{
799
+ rotation: z.ZodOptional<z.ZodNumber>;
800
+ startAt: z.ZodOptional<z.ZodNumber>;
801
+ endAt: z.ZodOptional<z.ZodNumber>;
802
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
803
+ hidden: z.ZodOptional<z.ZodBoolean>;
804
+ locked: z.ZodOptional<z.ZodBoolean>;
805
+ color: z.ZodString;
806
+ width: z.ZodNumber;
807
+ type: z.ZodLiteral<"arrow">;
808
+ x1: z.ZodNumber;
809
+ y1: z.ZodNumber;
810
+ x2: z.ZodNumber;
811
+ y2: z.ZodNumber;
812
+ }, "strip", z.ZodTypeAny, {
813
+ type: "arrow";
814
+ color: string;
815
+ width: number;
816
+ x1: number;
817
+ y1: number;
818
+ x2: number;
819
+ y2: number;
820
+ rotation?: number | undefined;
821
+ startAt?: number | undefined;
822
+ endAt?: number | undefined;
823
+ timelineTrack?: number | undefined;
824
+ hidden?: boolean | undefined;
825
+ locked?: boolean | undefined;
826
+ }, {
827
+ type: "arrow";
828
+ color: string;
829
+ width: number;
830
+ x1: number;
831
+ y1: number;
832
+ x2: number;
833
+ y2: number;
834
+ rotation?: number | undefined;
835
+ startAt?: number | undefined;
836
+ endAt?: number | undefined;
837
+ timelineTrack?: number | undefined;
838
+ hidden?: boolean | undefined;
839
+ locked?: boolean | undefined;
840
+ }>, z.ZodObject<{
841
+ rotation: z.ZodOptional<z.ZodNumber>;
842
+ startAt: z.ZodOptional<z.ZodNumber>;
843
+ endAt: z.ZodOptional<z.ZodNumber>;
844
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
845
+ hidden: z.ZodOptional<z.ZodBoolean>;
846
+ locked: z.ZodOptional<z.ZodBoolean>;
847
+ color: z.ZodString;
848
+ width: z.ZodNumber;
849
+ type: z.ZodLiteral<"rect">;
850
+ x: z.ZodNumber;
851
+ y: z.ZodNumber;
852
+ w: z.ZodNumber;
853
+ h: z.ZodNumber;
854
+ }, "strip", z.ZodTypeAny, {
855
+ type: "rect";
856
+ color: string;
857
+ width: number;
858
+ x: number;
859
+ y: number;
860
+ w: number;
861
+ h: number;
862
+ rotation?: number | undefined;
863
+ startAt?: number | undefined;
864
+ endAt?: number | undefined;
865
+ timelineTrack?: number | undefined;
866
+ hidden?: boolean | undefined;
867
+ locked?: boolean | undefined;
868
+ }, {
869
+ type: "rect";
870
+ color: string;
871
+ width: number;
872
+ x: number;
873
+ y: number;
874
+ w: number;
875
+ h: number;
876
+ rotation?: number | undefined;
877
+ startAt?: number | undefined;
878
+ endAt?: number | undefined;
879
+ timelineTrack?: number | undefined;
880
+ hidden?: boolean | undefined;
881
+ locked?: boolean | undefined;
882
+ }>, z.ZodObject<{
883
+ rotation: z.ZodOptional<z.ZodNumber>;
884
+ startAt: z.ZodOptional<z.ZodNumber>;
885
+ endAt: z.ZodOptional<z.ZodNumber>;
886
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
887
+ hidden: z.ZodOptional<z.ZodBoolean>;
888
+ locked: z.ZodOptional<z.ZodBoolean>;
889
+ color: z.ZodString;
890
+ width: z.ZodNumber;
891
+ type: z.ZodLiteral<"ellipse">;
892
+ x: z.ZodNumber;
893
+ y: z.ZodNumber;
894
+ w: z.ZodNumber;
895
+ h: z.ZodNumber;
896
+ }, "strip", z.ZodTypeAny, {
897
+ type: "ellipse";
898
+ color: string;
899
+ width: number;
900
+ x: number;
901
+ y: number;
902
+ w: number;
903
+ h: number;
904
+ rotation?: number | undefined;
905
+ startAt?: number | undefined;
906
+ endAt?: number | undefined;
907
+ timelineTrack?: number | undefined;
908
+ hidden?: boolean | undefined;
909
+ locked?: boolean | undefined;
910
+ }, {
911
+ type: "ellipse";
912
+ color: string;
913
+ width: number;
914
+ x: number;
915
+ y: number;
916
+ w: number;
917
+ h: number;
918
+ rotation?: number | undefined;
919
+ startAt?: number | undefined;
920
+ endAt?: number | undefined;
921
+ timelineTrack?: number | undefined;
922
+ hidden?: boolean | undefined;
923
+ locked?: boolean | undefined;
924
+ }>, z.ZodObject<{
925
+ rotation: z.ZodOptional<z.ZodNumber>;
926
+ startAt: z.ZodOptional<z.ZodNumber>;
927
+ endAt: z.ZodOptional<z.ZodNumber>;
928
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
929
+ hidden: z.ZodOptional<z.ZodBoolean>;
930
+ locked: z.ZodOptional<z.ZodBoolean>;
931
+ type: z.ZodLiteral<"text">;
932
+ x: z.ZodNumber;
933
+ y: z.ZodNumber;
934
+ text: z.ZodString;
935
+ color: z.ZodString;
936
+ fontSize: z.ZodNumber;
937
+ fontFamily: z.ZodOptional<z.ZodString>;
938
+ fontWeight: z.ZodOptional<z.ZodString>;
939
+ italic: z.ZodOptional<z.ZodBoolean>;
940
+ underline: z.ZodOptional<z.ZodBoolean>;
941
+ strikethrough: z.ZodOptional<z.ZodBoolean>;
942
+ align: z.ZodOptional<z.ZodEnum<["left", "center", "right"]>>;
943
+ width: z.ZodOptional<z.ZodNumber>;
944
+ backgroundColor: z.ZodOptional<z.ZodString>;
945
+ strokeColor: z.ZodOptional<z.ZodString>;
946
+ borderWidth: z.ZodOptional<z.ZodNumber>;
947
+ paddingX: z.ZodOptional<z.ZodNumber>;
948
+ paddingY: z.ZodOptional<z.ZodNumber>;
949
+ lineHeight: z.ZodOptional<z.ZodNumber>;
950
+ opacity: z.ZodOptional<z.ZodNumber>;
951
+ }, "strip", z.ZodTypeAny, {
952
+ type: "text";
953
+ color: string;
954
+ x: number;
955
+ y: number;
956
+ text: string;
957
+ fontSize: number;
958
+ rotation?: number | undefined;
959
+ startAt?: number | undefined;
960
+ endAt?: number | undefined;
961
+ timelineTrack?: number | undefined;
962
+ hidden?: boolean | undefined;
963
+ locked?: boolean | undefined;
964
+ width?: number | undefined;
965
+ fontFamily?: string | undefined;
966
+ fontWeight?: string | undefined;
967
+ italic?: boolean | undefined;
968
+ underline?: boolean | undefined;
969
+ strikethrough?: boolean | undefined;
970
+ align?: "left" | "center" | "right" | undefined;
971
+ backgroundColor?: string | undefined;
972
+ strokeColor?: string | undefined;
973
+ borderWidth?: number | undefined;
974
+ paddingX?: number | undefined;
975
+ paddingY?: number | undefined;
976
+ lineHeight?: number | undefined;
977
+ opacity?: number | undefined;
978
+ }, {
979
+ type: "text";
980
+ color: string;
981
+ x: number;
982
+ y: number;
983
+ text: string;
984
+ fontSize: number;
985
+ rotation?: number | undefined;
986
+ startAt?: number | undefined;
987
+ endAt?: number | undefined;
988
+ timelineTrack?: number | undefined;
989
+ hidden?: boolean | undefined;
990
+ locked?: boolean | undefined;
991
+ width?: number | undefined;
992
+ fontFamily?: string | undefined;
993
+ fontWeight?: string | undefined;
994
+ italic?: boolean | undefined;
995
+ underline?: boolean | undefined;
996
+ strikethrough?: boolean | undefined;
997
+ align?: "left" | "center" | "right" | undefined;
998
+ backgroundColor?: string | undefined;
999
+ strokeColor?: string | undefined;
1000
+ borderWidth?: number | undefined;
1001
+ paddingX?: number | undefined;
1002
+ paddingY?: number | undefined;
1003
+ lineHeight?: number | undefined;
1004
+ opacity?: number | undefined;
1005
+ }>, z.ZodObject<{
1006
+ rotation: z.ZodOptional<z.ZodNumber>;
1007
+ startAt: z.ZodOptional<z.ZodNumber>;
1008
+ endAt: z.ZodOptional<z.ZodNumber>;
1009
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
1010
+ hidden: z.ZodOptional<z.ZodBoolean>;
1011
+ locked: z.ZodOptional<z.ZodBoolean>;
1012
+ type: z.ZodLiteral<"sticker">;
1013
+ x: z.ZodNumber;
1014
+ y: z.ZodNumber;
1015
+ w: z.ZodNumber;
1016
+ h: z.ZodNumber;
1017
+ emoji: z.ZodOptional<z.ZodString>;
1018
+ src: z.ZodOptional<z.ZodString>;
1019
+ }, "strip", z.ZodTypeAny, {
1020
+ type: "sticker";
1021
+ x: number;
1022
+ y: number;
1023
+ w: number;
1024
+ h: number;
1025
+ rotation?: number | undefined;
1026
+ startAt?: number | undefined;
1027
+ endAt?: number | undefined;
1028
+ timelineTrack?: number | undefined;
1029
+ hidden?: boolean | undefined;
1030
+ locked?: boolean | undefined;
1031
+ emoji?: string | undefined;
1032
+ src?: string | undefined;
1033
+ }, {
1034
+ type: "sticker";
1035
+ x: number;
1036
+ y: number;
1037
+ w: number;
1038
+ h: number;
1039
+ rotation?: number | undefined;
1040
+ startAt?: number | undefined;
1041
+ endAt?: number | undefined;
1042
+ timelineTrack?: number | undefined;
1043
+ hidden?: boolean | undefined;
1044
+ locked?: boolean | undefined;
1045
+ emoji?: string | undefined;
1046
+ src?: string | undefined;
1047
+ }>, z.ZodObject<{
1048
+ rotation: z.ZodOptional<z.ZodNumber>;
1049
+ startAt: z.ZodOptional<z.ZodNumber>;
1050
+ endAt: z.ZodOptional<z.ZodNumber>;
1051
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
1052
+ hidden: z.ZodOptional<z.ZodBoolean>;
1053
+ locked: z.ZodOptional<z.ZodBoolean>;
1054
+ brightness: z.ZodDefault<z.ZodNumber>;
1055
+ contrast: z.ZodDefault<z.ZodNumber>;
1056
+ saturation: z.ZodDefault<z.ZodNumber>;
1057
+ temperature: z.ZodDefault<z.ZodNumber>;
1058
+ tint: z.ZodDefault<z.ZodNumber>;
1059
+ vibrance: z.ZodDefault<z.ZodNumber>;
1060
+ gamma: z.ZodDefault<z.ZodNumber>;
1061
+ highlights: z.ZodDefault<z.ZodNumber>;
1062
+ shadows: z.ZodDefault<z.ZodNumber>;
1063
+ whites: z.ZodDefault<z.ZodNumber>;
1064
+ blacks: z.ZodDefault<z.ZodNumber>;
1065
+ lightSense: z.ZodDefault<z.ZodNumber>;
1066
+ sharpen: z.ZodDefault<z.ZodNumber>;
1067
+ clarity: z.ZodDefault<z.ZodNumber>;
1068
+ grain: z.ZodDefault<z.ZodNumber>;
1069
+ fade: z.ZodDefault<z.ZodNumber>;
1070
+ vignette: z.ZodDefault<z.ZodNumber>;
1071
+ type: z.ZodLiteral<"adjust">;
1072
+ x: z.ZodNumber;
1073
+ y: z.ZodNumber;
1074
+ w: z.ZodNumber;
1075
+ h: z.ZodNumber;
1076
+ layerKind: z.ZodOptional<z.ZodEnum<["adjust", "filter"]>>;
1077
+ filterPreset: z.ZodOptional<z.ZodString>;
1078
+ }, "strip", z.ZodTypeAny, {
1079
+ type: "adjust";
1080
+ x: number;
1081
+ y: number;
1082
+ w: number;
1083
+ h: number;
1084
+ brightness: number;
1085
+ contrast: number;
1086
+ saturation: number;
1087
+ temperature: number;
1088
+ tint: number;
1089
+ vibrance: number;
1090
+ gamma: number;
1091
+ highlights: number;
1092
+ shadows: number;
1093
+ whites: number;
1094
+ blacks: number;
1095
+ lightSense: number;
1096
+ sharpen: number;
1097
+ clarity: number;
1098
+ grain: number;
1099
+ fade: number;
1100
+ vignette: number;
1101
+ rotation?: number | undefined;
1102
+ startAt?: number | undefined;
1103
+ endAt?: number | undefined;
1104
+ timelineTrack?: number | undefined;
1105
+ hidden?: boolean | undefined;
1106
+ locked?: boolean | undefined;
1107
+ layerKind?: "filter" | "adjust" | undefined;
1108
+ filterPreset?: string | undefined;
1109
+ }, {
1110
+ type: "adjust";
1111
+ x: number;
1112
+ y: number;
1113
+ w: number;
1114
+ h: number;
1115
+ rotation?: number | undefined;
1116
+ startAt?: number | undefined;
1117
+ endAt?: number | undefined;
1118
+ timelineTrack?: number | undefined;
1119
+ hidden?: boolean | undefined;
1120
+ locked?: boolean | undefined;
1121
+ layerKind?: "filter" | "adjust" | undefined;
1122
+ filterPreset?: string | undefined;
1123
+ brightness?: number | undefined;
1124
+ contrast?: number | undefined;
1125
+ saturation?: number | undefined;
1126
+ temperature?: number | undefined;
1127
+ tint?: number | undefined;
1128
+ vibrance?: number | undefined;
1129
+ gamma?: number | undefined;
1130
+ highlights?: number | undefined;
1131
+ shadows?: number | undefined;
1132
+ whites?: number | undefined;
1133
+ blacks?: number | undefined;
1134
+ lightSense?: number | undefined;
1135
+ sharpen?: number | undefined;
1136
+ clarity?: number | undefined;
1137
+ grain?: number | undefined;
1138
+ fade?: number | undefined;
1139
+ vignette?: number | undefined;
1140
+ }>]>, "many">>;
1141
+ transitions: z.ZodDefault<z.ZodArray<z.ZodObject<{
1142
+ type: z.ZodDefault<z.ZodEnum<["none", "fade", "slide", "wipe", "flip", "clockWipe", "star", "circle", "rectangle"]>>;
1143
+ duration: z.ZodDefault<z.ZodNumber>;
1144
+ }, "strip", z.ZodTypeAny, {
1145
+ type: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle";
1146
+ duration: number;
1147
+ }, {
1148
+ type?: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle" | undefined;
1149
+ duration?: number | undefined;
1150
+ }>, "many">>;
1151
+ /** 原视频声音开关(与音乐混音共存) */
1152
+ keepAudio: z.ZodDefault<z.ZodBoolean>;
1153
+ /** 封面时刻 = 输出时间轴 */
1154
+ poster: z.ZodOptional<z.ZodObject<{
1155
+ time: z.ZodNumber;
1156
+ src: z.ZodOptional<z.ZodString>;
1157
+ useAsVideoCover: z.ZodOptional<z.ZodBoolean>;
1158
+ preview: z.ZodOptional<z.ZodString>;
1159
+ }, "strip", z.ZodTypeAny, {
1160
+ time: number;
1161
+ src?: string | undefined;
1162
+ useAsVideoCover?: boolean | undefined;
1163
+ preview?: string | undefined;
1164
+ }, {
1165
+ time: number;
1166
+ src?: string | undefined;
1167
+ useAsVideoCover?: boolean | undefined;
1168
+ preview?: string | undefined;
1169
+ }>>;
1170
+ exportSettings: z.ZodOptional<z.ZodObject<{
1171
+ fileName: z.ZodOptional<z.ZodString>;
1172
+ format: z.ZodDefault<z.ZodEnum<["mp4", "mov", "mxf"]>>;
1173
+ width: z.ZodOptional<z.ZodNumber>;
1174
+ height: z.ZodOptional<z.ZodNumber>;
1175
+ frameRate: z.ZodDefault<z.ZodNumber>;
1176
+ bitrateMode: z.ZodOptional<z.ZodEnum<["auto", "custom"]>>;
1177
+ videoBitrateKbps: z.ZodOptional<z.ZodNumber>;
1178
+ audioBitrateKbps: z.ZodOptional<z.ZodNumber>;
1179
+ audioCodec: z.ZodDefault<z.ZodEnum<["aac", "mp3"]>>;
1180
+ }, "strip", z.ZodTypeAny, {
1181
+ format: "mp4" | "mov" | "mxf";
1182
+ frameRate: number;
1183
+ audioCodec: "aac" | "mp3";
1184
+ width?: number | undefined;
1185
+ fileName?: string | undefined;
1186
+ height?: number | undefined;
1187
+ bitrateMode?: "custom" | "auto" | undefined;
1188
+ videoBitrateKbps?: number | undefined;
1189
+ audioBitrateKbps?: number | undefined;
1190
+ }, {
1191
+ width?: number | undefined;
1192
+ fileName?: string | undefined;
1193
+ format?: "mp4" | "mov" | "mxf" | undefined;
1194
+ height?: number | undefined;
1195
+ frameRate?: number | undefined;
1196
+ bitrateMode?: "custom" | "auto" | undefined;
1197
+ videoBitrateKbps?: number | undefined;
1198
+ audioBitrateKbps?: number | undefined;
1199
+ audioCodec?: "aac" | "mp3" | undefined;
1200
+ }>>;
1201
+ }, "strip", z.ZodTypeAny, {
1202
+ rotation: number;
1203
+ clips: {
1204
+ srcIdx: number;
1205
+ in: number;
1206
+ out: number;
1207
+ hidden?: boolean | undefined;
1208
+ locked?: boolean | undefined;
1209
+ }[];
1210
+ audioClips: {
1211
+ startAt: number;
1212
+ srcIdx: number;
1213
+ in: number;
1214
+ out: number;
1215
+ track: number;
1216
+ speed: number;
1217
+ volume: number;
1218
+ fadeIn: number;
1219
+ fadeOut: number;
1220
+ locked?: boolean | undefined;
1221
+ muted?: boolean | undefined;
1222
+ }[];
1223
+ canvas: {
1224
+ w: number;
1225
+ h: number;
1226
+ };
1227
+ flipX: boolean;
1228
+ flipY: boolean;
1229
+ filters: {
1230
+ brightness: number;
1231
+ contrast: number;
1232
+ saturation: number;
1233
+ temperature: number;
1234
+ tint: number;
1235
+ vibrance: number;
1236
+ gamma: number;
1237
+ highlights: number;
1238
+ shadows: number;
1239
+ whites: number;
1240
+ blacks: number;
1241
+ lightSense: number;
1242
+ sharpen: number;
1243
+ clarity: number;
1244
+ grain: number;
1245
+ fade: number;
1246
+ vignette: number;
1247
+ };
1248
+ transitions: {
1249
+ type: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle";
1250
+ duration: number;
1251
+ }[];
1252
+ keepAudio: boolean;
1253
+ filterPreset?: string | undefined;
1254
+ crop?: {
1255
+ width: number;
1256
+ x: number;
1257
+ y: number;
1258
+ height: number;
1259
+ } | undefined;
1260
+ scale?: {
1261
+ width: number;
1262
+ height: number;
1263
+ fit: "contain" | "cover" | "force";
1264
+ backgroundColor?: string | undefined;
1265
+ } | undefined;
1266
+ overlays?: ({
1267
+ type: "pen";
1268
+ points: number[];
1269
+ color: string;
1270
+ width: number;
1271
+ rotation?: number | undefined;
1272
+ startAt?: number | undefined;
1273
+ endAt?: number | undefined;
1274
+ timelineTrack?: number | undefined;
1275
+ hidden?: boolean | undefined;
1276
+ locked?: boolean | undefined;
1277
+ } | {
1278
+ type: "line";
1279
+ color: string;
1280
+ width: number;
1281
+ x1: number;
1282
+ y1: number;
1283
+ x2: number;
1284
+ y2: number;
1285
+ rotation?: number | undefined;
1286
+ startAt?: number | undefined;
1287
+ endAt?: number | undefined;
1288
+ timelineTrack?: number | undefined;
1289
+ hidden?: boolean | undefined;
1290
+ locked?: boolean | undefined;
1291
+ } | {
1292
+ type: "arrow";
1293
+ color: string;
1294
+ width: number;
1295
+ x1: number;
1296
+ y1: number;
1297
+ x2: number;
1298
+ y2: number;
1299
+ rotation?: number | undefined;
1300
+ startAt?: number | undefined;
1301
+ endAt?: number | undefined;
1302
+ timelineTrack?: number | undefined;
1303
+ hidden?: boolean | undefined;
1304
+ locked?: boolean | undefined;
1305
+ } | {
1306
+ type: "rect";
1307
+ color: string;
1308
+ width: number;
1309
+ x: number;
1310
+ y: number;
1311
+ w: number;
1312
+ h: number;
1313
+ rotation?: number | undefined;
1314
+ startAt?: number | undefined;
1315
+ endAt?: number | undefined;
1316
+ timelineTrack?: number | undefined;
1317
+ hidden?: boolean | undefined;
1318
+ locked?: boolean | undefined;
1319
+ } | {
1320
+ type: "ellipse";
1321
+ color: string;
1322
+ width: number;
1323
+ x: number;
1324
+ y: number;
1325
+ w: number;
1326
+ h: number;
1327
+ rotation?: number | undefined;
1328
+ startAt?: number | undefined;
1329
+ endAt?: number | undefined;
1330
+ timelineTrack?: number | undefined;
1331
+ hidden?: boolean | undefined;
1332
+ locked?: boolean | undefined;
1333
+ } | {
1334
+ type: "text";
1335
+ color: string;
1336
+ x: number;
1337
+ y: number;
1338
+ text: string;
1339
+ fontSize: number;
1340
+ rotation?: number | undefined;
1341
+ startAt?: number | undefined;
1342
+ endAt?: number | undefined;
1343
+ timelineTrack?: number | undefined;
1344
+ hidden?: boolean | undefined;
1345
+ locked?: boolean | undefined;
1346
+ width?: number | undefined;
1347
+ fontFamily?: string | undefined;
1348
+ fontWeight?: string | undefined;
1349
+ italic?: boolean | undefined;
1350
+ underline?: boolean | undefined;
1351
+ strikethrough?: boolean | undefined;
1352
+ align?: "left" | "center" | "right" | undefined;
1353
+ backgroundColor?: string | undefined;
1354
+ strokeColor?: string | undefined;
1355
+ borderWidth?: number | undefined;
1356
+ paddingX?: number | undefined;
1357
+ paddingY?: number | undefined;
1358
+ lineHeight?: number | undefined;
1359
+ opacity?: number | undefined;
1360
+ } | {
1361
+ type: "sticker";
1362
+ x: number;
1363
+ y: number;
1364
+ w: number;
1365
+ h: number;
1366
+ rotation?: number | undefined;
1367
+ startAt?: number | undefined;
1368
+ endAt?: number | undefined;
1369
+ timelineTrack?: number | undefined;
1370
+ hidden?: boolean | undefined;
1371
+ locked?: boolean | undefined;
1372
+ emoji?: string | undefined;
1373
+ src?: string | undefined;
1374
+ } | {
1375
+ type: "adjust";
1376
+ x: number;
1377
+ y: number;
1378
+ w: number;
1379
+ h: number;
1380
+ brightness: number;
1381
+ contrast: number;
1382
+ saturation: number;
1383
+ temperature: number;
1384
+ tint: number;
1385
+ vibrance: number;
1386
+ gamma: number;
1387
+ highlights: number;
1388
+ shadows: number;
1389
+ whites: number;
1390
+ blacks: number;
1391
+ lightSense: number;
1392
+ sharpen: number;
1393
+ clarity: number;
1394
+ grain: number;
1395
+ fade: number;
1396
+ vignette: number;
1397
+ rotation?: number | undefined;
1398
+ startAt?: number | undefined;
1399
+ endAt?: number | undefined;
1400
+ timelineTrack?: number | undefined;
1401
+ hidden?: boolean | undefined;
1402
+ locked?: boolean | undefined;
1403
+ layerKind?: "filter" | "adjust" | undefined;
1404
+ filterPreset?: string | undefined;
1405
+ })[] | undefined;
1406
+ poster?: {
1407
+ time: number;
1408
+ src?: string | undefined;
1409
+ useAsVideoCover?: boolean | undefined;
1410
+ preview?: string | undefined;
1411
+ } | undefined;
1412
+ exportSettings?: {
1413
+ format: "mp4" | "mov" | "mxf";
1414
+ frameRate: number;
1415
+ audioCodec: "aac" | "mp3";
1416
+ width?: number | undefined;
1417
+ fileName?: string | undefined;
1418
+ height?: number | undefined;
1419
+ bitrateMode?: "custom" | "auto" | undefined;
1420
+ videoBitrateKbps?: number | undefined;
1421
+ audioBitrateKbps?: number | undefined;
1422
+ } | undefined;
1423
+ }, {
1424
+ clips: {
1425
+ srcIdx: number;
1426
+ in: number;
1427
+ out: number;
1428
+ hidden?: boolean | undefined;
1429
+ locked?: boolean | undefined;
1430
+ }[];
1431
+ canvas: {
1432
+ w: number;
1433
+ h: number;
1434
+ };
1435
+ rotation?: number | undefined;
1436
+ filterPreset?: string | undefined;
1437
+ audioClips?: {
1438
+ startAt: number;
1439
+ srcIdx: number;
1440
+ in: number;
1441
+ out: number;
1442
+ volume: number;
1443
+ locked?: boolean | undefined;
1444
+ track?: number | undefined;
1445
+ speed?: number | undefined;
1446
+ muted?: boolean | undefined;
1447
+ fadeIn?: number | undefined;
1448
+ fadeOut?: number | undefined;
1449
+ }[] | undefined;
1450
+ crop?: {
1451
+ width: number;
1452
+ x: number;
1453
+ y: number;
1454
+ height: number;
1455
+ } | undefined;
1456
+ scale?: {
1457
+ width: number;
1458
+ height: number;
1459
+ fit: "contain" | "cover" | "force";
1460
+ backgroundColor?: string | undefined;
1461
+ } | undefined;
1462
+ flipX?: boolean | undefined;
1463
+ flipY?: boolean | undefined;
1464
+ filters?: {
1465
+ brightness?: number | undefined;
1466
+ contrast?: number | undefined;
1467
+ saturation?: number | undefined;
1468
+ temperature?: number | undefined;
1469
+ tint?: number | undefined;
1470
+ vibrance?: number | undefined;
1471
+ gamma?: number | undefined;
1472
+ highlights?: number | undefined;
1473
+ shadows?: number | undefined;
1474
+ whites?: number | undefined;
1475
+ blacks?: number | undefined;
1476
+ lightSense?: number | undefined;
1477
+ sharpen?: number | undefined;
1478
+ clarity?: number | undefined;
1479
+ grain?: number | undefined;
1480
+ fade?: number | undefined;
1481
+ vignette?: number | undefined;
1482
+ } | undefined;
1483
+ overlays?: ({
1484
+ type: "pen";
1485
+ points: number[];
1486
+ color: string;
1487
+ width: number;
1488
+ rotation?: number | undefined;
1489
+ startAt?: number | undefined;
1490
+ endAt?: number | undefined;
1491
+ timelineTrack?: number | undefined;
1492
+ hidden?: boolean | undefined;
1493
+ locked?: boolean | undefined;
1494
+ } | {
1495
+ type: "line";
1496
+ color: string;
1497
+ width: number;
1498
+ x1: number;
1499
+ y1: number;
1500
+ x2: number;
1501
+ y2: number;
1502
+ rotation?: number | undefined;
1503
+ startAt?: number | undefined;
1504
+ endAt?: number | undefined;
1505
+ timelineTrack?: number | undefined;
1506
+ hidden?: boolean | undefined;
1507
+ locked?: boolean | undefined;
1508
+ } | {
1509
+ type: "arrow";
1510
+ color: string;
1511
+ width: number;
1512
+ x1: number;
1513
+ y1: number;
1514
+ x2: number;
1515
+ y2: number;
1516
+ rotation?: number | undefined;
1517
+ startAt?: number | undefined;
1518
+ endAt?: number | undefined;
1519
+ timelineTrack?: number | undefined;
1520
+ hidden?: boolean | undefined;
1521
+ locked?: boolean | undefined;
1522
+ } | {
1523
+ type: "rect";
1524
+ color: string;
1525
+ width: number;
1526
+ x: number;
1527
+ y: number;
1528
+ w: number;
1529
+ h: number;
1530
+ rotation?: number | undefined;
1531
+ startAt?: number | undefined;
1532
+ endAt?: number | undefined;
1533
+ timelineTrack?: number | undefined;
1534
+ hidden?: boolean | undefined;
1535
+ locked?: boolean | undefined;
1536
+ } | {
1537
+ type: "ellipse";
1538
+ color: string;
1539
+ width: number;
1540
+ x: number;
1541
+ y: number;
1542
+ w: number;
1543
+ h: number;
1544
+ rotation?: number | undefined;
1545
+ startAt?: number | undefined;
1546
+ endAt?: number | undefined;
1547
+ timelineTrack?: number | undefined;
1548
+ hidden?: boolean | undefined;
1549
+ locked?: boolean | undefined;
1550
+ } | {
1551
+ type: "text";
1552
+ color: string;
1553
+ x: number;
1554
+ y: number;
1555
+ text: string;
1556
+ fontSize: number;
1557
+ rotation?: number | undefined;
1558
+ startAt?: number | undefined;
1559
+ endAt?: number | undefined;
1560
+ timelineTrack?: number | undefined;
1561
+ hidden?: boolean | undefined;
1562
+ locked?: boolean | undefined;
1563
+ width?: number | undefined;
1564
+ fontFamily?: string | undefined;
1565
+ fontWeight?: string | undefined;
1566
+ italic?: boolean | undefined;
1567
+ underline?: boolean | undefined;
1568
+ strikethrough?: boolean | undefined;
1569
+ align?: "left" | "center" | "right" | undefined;
1570
+ backgroundColor?: string | undefined;
1571
+ strokeColor?: string | undefined;
1572
+ borderWidth?: number | undefined;
1573
+ paddingX?: number | undefined;
1574
+ paddingY?: number | undefined;
1575
+ lineHeight?: number | undefined;
1576
+ opacity?: number | undefined;
1577
+ } | {
1578
+ type: "sticker";
1579
+ x: number;
1580
+ y: number;
1581
+ w: number;
1582
+ h: number;
1583
+ rotation?: number | undefined;
1584
+ startAt?: number | undefined;
1585
+ endAt?: number | undefined;
1586
+ timelineTrack?: number | undefined;
1587
+ hidden?: boolean | undefined;
1588
+ locked?: boolean | undefined;
1589
+ emoji?: string | undefined;
1590
+ src?: string | undefined;
1591
+ } | {
1592
+ type: "adjust";
1593
+ x: number;
1594
+ y: number;
1595
+ w: number;
1596
+ h: number;
1597
+ rotation?: number | undefined;
1598
+ startAt?: number | undefined;
1599
+ endAt?: number | undefined;
1600
+ timelineTrack?: number | undefined;
1601
+ hidden?: boolean | undefined;
1602
+ locked?: boolean | undefined;
1603
+ layerKind?: "filter" | "adjust" | undefined;
1604
+ filterPreset?: string | undefined;
1605
+ brightness?: number | undefined;
1606
+ contrast?: number | undefined;
1607
+ saturation?: number | undefined;
1608
+ temperature?: number | undefined;
1609
+ tint?: number | undefined;
1610
+ vibrance?: number | undefined;
1611
+ gamma?: number | undefined;
1612
+ highlights?: number | undefined;
1613
+ shadows?: number | undefined;
1614
+ whites?: number | undefined;
1615
+ blacks?: number | undefined;
1616
+ lightSense?: number | undefined;
1617
+ sharpen?: number | undefined;
1618
+ clarity?: number | undefined;
1619
+ grain?: number | undefined;
1620
+ fade?: number | undefined;
1621
+ vignette?: number | undefined;
1622
+ })[] | undefined;
1623
+ transitions?: {
1624
+ type?: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle" | undefined;
1625
+ duration?: number | undefined;
1626
+ }[] | undefined;
1627
+ keepAudio?: boolean | undefined;
1628
+ poster?: {
1629
+ time: number;
1630
+ src?: string | undefined;
1631
+ useAsVideoCover?: boolean | undefined;
1632
+ preview?: string | undefined;
1633
+ } | undefined;
1634
+ exportSettings?: {
1635
+ width?: number | undefined;
1636
+ fileName?: string | undefined;
1637
+ format?: "mp4" | "mov" | "mxf" | undefined;
1638
+ height?: number | undefined;
1639
+ frameRate?: number | undefined;
1640
+ bitrateMode?: "custom" | "auto" | undefined;
1641
+ videoBitrateKbps?: number | undefined;
1642
+ audioBitrateKbps?: number | undefined;
1643
+ audioCodec?: "aac" | "mp3" | undefined;
1644
+ } | undefined;
1645
+ }>, {
1646
+ rotation: number;
1647
+ clips: {
1648
+ srcIdx: number;
1649
+ in: number;
1650
+ out: number;
1651
+ hidden?: boolean | undefined;
1652
+ locked?: boolean | undefined;
1653
+ }[];
1654
+ audioClips: {
1655
+ startAt: number;
1656
+ srcIdx: number;
1657
+ in: number;
1658
+ out: number;
1659
+ track: number;
1660
+ speed: number;
1661
+ volume: number;
1662
+ fadeIn: number;
1663
+ fadeOut: number;
1664
+ locked?: boolean | undefined;
1665
+ muted?: boolean | undefined;
1666
+ }[];
1667
+ canvas: {
1668
+ w: number;
1669
+ h: number;
1670
+ };
1671
+ flipX: boolean;
1672
+ flipY: boolean;
1673
+ filters: {
1674
+ brightness: number;
1675
+ contrast: number;
1676
+ saturation: number;
1677
+ temperature: number;
1678
+ tint: number;
1679
+ vibrance: number;
1680
+ gamma: number;
1681
+ highlights: number;
1682
+ shadows: number;
1683
+ whites: number;
1684
+ blacks: number;
1685
+ lightSense: number;
1686
+ sharpen: number;
1687
+ clarity: number;
1688
+ grain: number;
1689
+ fade: number;
1690
+ vignette: number;
1691
+ };
1692
+ transitions: {
1693
+ type: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle";
1694
+ duration: number;
1695
+ }[];
1696
+ keepAudio: boolean;
1697
+ filterPreset?: string | undefined;
1698
+ crop?: {
1699
+ width: number;
1700
+ x: number;
1701
+ y: number;
1702
+ height: number;
1703
+ } | undefined;
1704
+ scale?: {
1705
+ width: number;
1706
+ height: number;
1707
+ fit: "contain" | "cover" | "force";
1708
+ backgroundColor?: string | undefined;
1709
+ } | undefined;
1710
+ overlays?: ({
1711
+ type: "pen";
1712
+ points: number[];
1713
+ color: string;
1714
+ width: number;
1715
+ rotation?: number | undefined;
1716
+ startAt?: number | undefined;
1717
+ endAt?: number | undefined;
1718
+ timelineTrack?: number | undefined;
1719
+ hidden?: boolean | undefined;
1720
+ locked?: boolean | undefined;
1721
+ } | {
1722
+ type: "line";
1723
+ color: string;
1724
+ width: number;
1725
+ x1: number;
1726
+ y1: number;
1727
+ x2: number;
1728
+ y2: number;
1729
+ rotation?: number | undefined;
1730
+ startAt?: number | undefined;
1731
+ endAt?: number | undefined;
1732
+ timelineTrack?: number | undefined;
1733
+ hidden?: boolean | undefined;
1734
+ locked?: boolean | undefined;
1735
+ } | {
1736
+ type: "arrow";
1737
+ color: string;
1738
+ width: number;
1739
+ x1: number;
1740
+ y1: number;
1741
+ x2: number;
1742
+ y2: number;
1743
+ rotation?: number | undefined;
1744
+ startAt?: number | undefined;
1745
+ endAt?: number | undefined;
1746
+ timelineTrack?: number | undefined;
1747
+ hidden?: boolean | undefined;
1748
+ locked?: boolean | undefined;
1749
+ } | {
1750
+ type: "rect";
1751
+ color: string;
1752
+ width: number;
1753
+ x: number;
1754
+ y: number;
1755
+ w: number;
1756
+ h: number;
1757
+ rotation?: number | undefined;
1758
+ startAt?: number | undefined;
1759
+ endAt?: number | undefined;
1760
+ timelineTrack?: number | undefined;
1761
+ hidden?: boolean | undefined;
1762
+ locked?: boolean | undefined;
1763
+ } | {
1764
+ type: "ellipse";
1765
+ color: string;
1766
+ width: number;
1767
+ x: number;
1768
+ y: number;
1769
+ w: number;
1770
+ h: number;
1771
+ rotation?: number | undefined;
1772
+ startAt?: number | undefined;
1773
+ endAt?: number | undefined;
1774
+ timelineTrack?: number | undefined;
1775
+ hidden?: boolean | undefined;
1776
+ locked?: boolean | undefined;
1777
+ } | {
1778
+ type: "text";
1779
+ color: string;
1780
+ x: number;
1781
+ y: number;
1782
+ text: string;
1783
+ fontSize: number;
1784
+ rotation?: number | undefined;
1785
+ startAt?: number | undefined;
1786
+ endAt?: number | undefined;
1787
+ timelineTrack?: number | undefined;
1788
+ hidden?: boolean | undefined;
1789
+ locked?: boolean | undefined;
1790
+ width?: number | undefined;
1791
+ fontFamily?: string | undefined;
1792
+ fontWeight?: string | undefined;
1793
+ italic?: boolean | undefined;
1794
+ underline?: boolean | undefined;
1795
+ strikethrough?: boolean | undefined;
1796
+ align?: "left" | "center" | "right" | undefined;
1797
+ backgroundColor?: string | undefined;
1798
+ strokeColor?: string | undefined;
1799
+ borderWidth?: number | undefined;
1800
+ paddingX?: number | undefined;
1801
+ paddingY?: number | undefined;
1802
+ lineHeight?: number | undefined;
1803
+ opacity?: number | undefined;
1804
+ } | {
1805
+ type: "sticker";
1806
+ x: number;
1807
+ y: number;
1808
+ w: number;
1809
+ h: number;
1810
+ rotation?: number | undefined;
1811
+ startAt?: number | undefined;
1812
+ endAt?: number | undefined;
1813
+ timelineTrack?: number | undefined;
1814
+ hidden?: boolean | undefined;
1815
+ locked?: boolean | undefined;
1816
+ emoji?: string | undefined;
1817
+ src?: string | undefined;
1818
+ } | {
1819
+ type: "adjust";
1820
+ x: number;
1821
+ y: number;
1822
+ w: number;
1823
+ h: number;
1824
+ brightness: number;
1825
+ contrast: number;
1826
+ saturation: number;
1827
+ temperature: number;
1828
+ tint: number;
1829
+ vibrance: number;
1830
+ gamma: number;
1831
+ highlights: number;
1832
+ shadows: number;
1833
+ whites: number;
1834
+ blacks: number;
1835
+ lightSense: number;
1836
+ sharpen: number;
1837
+ clarity: number;
1838
+ grain: number;
1839
+ fade: number;
1840
+ vignette: number;
1841
+ rotation?: number | undefined;
1842
+ startAt?: number | undefined;
1843
+ endAt?: number | undefined;
1844
+ timelineTrack?: number | undefined;
1845
+ hidden?: boolean | undefined;
1846
+ locked?: boolean | undefined;
1847
+ layerKind?: "filter" | "adjust" | undefined;
1848
+ filterPreset?: string | undefined;
1849
+ })[] | undefined;
1850
+ poster?: {
1851
+ time: number;
1852
+ src?: string | undefined;
1853
+ useAsVideoCover?: boolean | undefined;
1854
+ preview?: string | undefined;
1855
+ } | undefined;
1856
+ exportSettings?: {
1857
+ format: "mp4" | "mov" | "mxf";
1858
+ frameRate: number;
1859
+ audioCodec: "aac" | "mp3";
1860
+ width?: number | undefined;
1861
+ fileName?: string | undefined;
1862
+ height?: number | undefined;
1863
+ bitrateMode?: "custom" | "auto" | undefined;
1864
+ videoBitrateKbps?: number | undefined;
1865
+ audioBitrateKbps?: number | undefined;
1866
+ } | undefined;
1867
+ }, {
1868
+ clips: {
1869
+ srcIdx: number;
1870
+ in: number;
1871
+ out: number;
1872
+ hidden?: boolean | undefined;
1873
+ locked?: boolean | undefined;
1874
+ }[];
1875
+ canvas: {
1876
+ w: number;
1877
+ h: number;
1878
+ };
1879
+ rotation?: number | undefined;
1880
+ filterPreset?: string | undefined;
1881
+ audioClips?: {
1882
+ startAt: number;
1883
+ srcIdx: number;
1884
+ in: number;
1885
+ out: number;
1886
+ volume: number;
1887
+ locked?: boolean | undefined;
1888
+ track?: number | undefined;
1889
+ speed?: number | undefined;
1890
+ muted?: boolean | undefined;
1891
+ fadeIn?: number | undefined;
1892
+ fadeOut?: number | undefined;
1893
+ }[] | undefined;
1894
+ crop?: {
1895
+ width: number;
1896
+ x: number;
1897
+ y: number;
1898
+ height: number;
1899
+ } | undefined;
1900
+ scale?: {
1901
+ width: number;
1902
+ height: number;
1903
+ fit: "contain" | "cover" | "force";
1904
+ backgroundColor?: string | undefined;
1905
+ } | undefined;
1906
+ flipX?: boolean | undefined;
1907
+ flipY?: boolean | undefined;
1908
+ filters?: {
1909
+ brightness?: number | undefined;
1910
+ contrast?: number | undefined;
1911
+ saturation?: number | undefined;
1912
+ temperature?: number | undefined;
1913
+ tint?: number | undefined;
1914
+ vibrance?: number | undefined;
1915
+ gamma?: number | undefined;
1916
+ highlights?: number | undefined;
1917
+ shadows?: number | undefined;
1918
+ whites?: number | undefined;
1919
+ blacks?: number | undefined;
1920
+ lightSense?: number | undefined;
1921
+ sharpen?: number | undefined;
1922
+ clarity?: number | undefined;
1923
+ grain?: number | undefined;
1924
+ fade?: number | undefined;
1925
+ vignette?: number | undefined;
1926
+ } | undefined;
1927
+ overlays?: ({
1928
+ type: "pen";
1929
+ points: number[];
1930
+ color: string;
1931
+ width: number;
1932
+ rotation?: number | undefined;
1933
+ startAt?: number | undefined;
1934
+ endAt?: number | undefined;
1935
+ timelineTrack?: number | undefined;
1936
+ hidden?: boolean | undefined;
1937
+ locked?: boolean | undefined;
1938
+ } | {
1939
+ type: "line";
1940
+ color: string;
1941
+ width: number;
1942
+ x1: number;
1943
+ y1: number;
1944
+ x2: number;
1945
+ y2: number;
1946
+ rotation?: number | undefined;
1947
+ startAt?: number | undefined;
1948
+ endAt?: number | undefined;
1949
+ timelineTrack?: number | undefined;
1950
+ hidden?: boolean | undefined;
1951
+ locked?: boolean | undefined;
1952
+ } | {
1953
+ type: "arrow";
1954
+ color: string;
1955
+ width: number;
1956
+ x1: number;
1957
+ y1: number;
1958
+ x2: number;
1959
+ y2: number;
1960
+ rotation?: number | undefined;
1961
+ startAt?: number | undefined;
1962
+ endAt?: number | undefined;
1963
+ timelineTrack?: number | undefined;
1964
+ hidden?: boolean | undefined;
1965
+ locked?: boolean | undefined;
1966
+ } | {
1967
+ type: "rect";
1968
+ color: string;
1969
+ width: number;
1970
+ x: number;
1971
+ y: number;
1972
+ w: number;
1973
+ h: number;
1974
+ rotation?: number | undefined;
1975
+ startAt?: number | undefined;
1976
+ endAt?: number | undefined;
1977
+ timelineTrack?: number | undefined;
1978
+ hidden?: boolean | undefined;
1979
+ locked?: boolean | undefined;
1980
+ } | {
1981
+ type: "ellipse";
1982
+ color: string;
1983
+ width: number;
1984
+ x: number;
1985
+ y: number;
1986
+ w: number;
1987
+ h: number;
1988
+ rotation?: number | undefined;
1989
+ startAt?: number | undefined;
1990
+ endAt?: number | undefined;
1991
+ timelineTrack?: number | undefined;
1992
+ hidden?: boolean | undefined;
1993
+ locked?: boolean | undefined;
1994
+ } | {
1995
+ type: "text";
1996
+ color: string;
1997
+ x: number;
1998
+ y: number;
1999
+ text: string;
2000
+ fontSize: number;
2001
+ rotation?: number | undefined;
2002
+ startAt?: number | undefined;
2003
+ endAt?: number | undefined;
2004
+ timelineTrack?: number | undefined;
2005
+ hidden?: boolean | undefined;
2006
+ locked?: boolean | undefined;
2007
+ width?: number | undefined;
2008
+ fontFamily?: string | undefined;
2009
+ fontWeight?: string | undefined;
2010
+ italic?: boolean | undefined;
2011
+ underline?: boolean | undefined;
2012
+ strikethrough?: boolean | undefined;
2013
+ align?: "left" | "center" | "right" | undefined;
2014
+ backgroundColor?: string | undefined;
2015
+ strokeColor?: string | undefined;
2016
+ borderWidth?: number | undefined;
2017
+ paddingX?: number | undefined;
2018
+ paddingY?: number | undefined;
2019
+ lineHeight?: number | undefined;
2020
+ opacity?: number | undefined;
2021
+ } | {
2022
+ type: "sticker";
2023
+ x: number;
2024
+ y: number;
2025
+ w: number;
2026
+ h: number;
2027
+ rotation?: number | undefined;
2028
+ startAt?: number | undefined;
2029
+ endAt?: number | undefined;
2030
+ timelineTrack?: number | undefined;
2031
+ hidden?: boolean | undefined;
2032
+ locked?: boolean | undefined;
2033
+ emoji?: string | undefined;
2034
+ src?: string | undefined;
2035
+ } | {
2036
+ type: "adjust";
2037
+ x: number;
2038
+ y: number;
2039
+ w: number;
2040
+ h: number;
2041
+ rotation?: number | undefined;
2042
+ startAt?: number | undefined;
2043
+ endAt?: number | undefined;
2044
+ timelineTrack?: number | undefined;
2045
+ hidden?: boolean | undefined;
2046
+ locked?: boolean | undefined;
2047
+ layerKind?: "filter" | "adjust" | undefined;
2048
+ filterPreset?: string | undefined;
2049
+ brightness?: number | undefined;
2050
+ contrast?: number | undefined;
2051
+ saturation?: number | undefined;
2052
+ temperature?: number | undefined;
2053
+ tint?: number | undefined;
2054
+ vibrance?: number | undefined;
2055
+ gamma?: number | undefined;
2056
+ highlights?: number | undefined;
2057
+ shadows?: number | undefined;
2058
+ whites?: number | undefined;
2059
+ blacks?: number | undefined;
2060
+ lightSense?: number | undefined;
2061
+ sharpen?: number | undefined;
2062
+ clarity?: number | undefined;
2063
+ grain?: number | undefined;
2064
+ fade?: number | undefined;
2065
+ vignette?: number | undefined;
2066
+ })[] | undefined;
2067
+ transitions?: {
2068
+ type?: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle" | undefined;
2069
+ duration?: number | undefined;
2070
+ }[] | undefined;
2071
+ keepAudio?: boolean | undefined;
2072
+ poster?: {
2073
+ time: number;
2074
+ src?: string | undefined;
2075
+ useAsVideoCover?: boolean | undefined;
2076
+ preview?: string | undefined;
2077
+ } | undefined;
2078
+ exportSettings?: {
2079
+ width?: number | undefined;
2080
+ fileName?: string | undefined;
2081
+ format?: "mp4" | "mov" | "mxf" | undefined;
2082
+ height?: number | undefined;
2083
+ frameRate?: number | undefined;
2084
+ bitrateMode?: "custom" | "auto" | undefined;
2085
+ videoBitrateKbps?: number | undefined;
2086
+ audioBitrateKbps?: number | undefined;
2087
+ audioCodec?: "aac" | "mp3" | undefined;
2088
+ } | undefined;
2089
+ }>;
2090
+ type VideoEditStateT = z.infer<typeof VideoEditState>;
2091
+ /**
2092
+ * 客户端初始占位:首个素材 metadata 加载前 clips 为空、canvas 为最小值,
2093
+ * **不过 schema**(clips min1)——服务端只收显式提交的完整状态,不受影响;
2094
+ * 首源加载完成后编辑器会用真实 clips/canvas 重建 history。
2095
+ */
2096
+ declare function defaultVideoEditState(): VideoEditStateT;
2097
+
2098
+ export { type AudioClipT as A, type ClipT as C, DEFAULT_FILTERS as D, ExportSettings as E, type OverlayT as O, Transition as T, type VideoEditStateT as V, AudioClip as a, Clip as b, type ExportSettingsT as c, Overlay as d, type TransitionT as e, VideoEditState as f, defaultVideoEditState as g };