@bylqwjc/media-editor-server 1.0.22 → 1.0.23

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.
@@ -0,0 +1,2088 @@
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
+ videoBitrateKbps: z.ZodOptional<z.ZodNumber>;
518
+ audioBitrateKbps: z.ZodOptional<z.ZodNumber>;
519
+ audioCodec: z.ZodDefault<z.ZodEnum<["aac", "mp3"]>>;
520
+ }, "strip", z.ZodTypeAny, {
521
+ format: "mp4" | "mov" | "mxf";
522
+ frameRate: number;
523
+ audioCodec: "aac" | "mp3";
524
+ width?: number | undefined;
525
+ fileName?: string | undefined;
526
+ height?: number | undefined;
527
+ videoBitrateKbps?: number | undefined;
528
+ audioBitrateKbps?: number | undefined;
529
+ }, {
530
+ width?: number | undefined;
531
+ fileName?: string | undefined;
532
+ format?: "mp4" | "mov" | "mxf" | undefined;
533
+ height?: number | undefined;
534
+ frameRate?: number | undefined;
535
+ videoBitrateKbps?: number | undefined;
536
+ audioBitrateKbps?: number | undefined;
537
+ audioCodec?: "aac" | "mp3" | undefined;
538
+ }>>;
539
+ type ExportSettingsT = z.infer<typeof ExportSettings>;
540
+ declare const DEFAULT_FILTERS: {
541
+ brightness: number;
542
+ contrast: number;
543
+ saturation: number;
544
+ temperature: number;
545
+ tint: number;
546
+ vibrance: number;
547
+ gamma: number;
548
+ highlights: number;
549
+ shadows: number;
550
+ whites: number;
551
+ blacks: number;
552
+ lightSense: number;
553
+ sharpen: number;
554
+ clarity: number;
555
+ grain: number;
556
+ fade: number;
557
+ vignette: number;
558
+ };
559
+ declare const VideoEditState: z.ZodEffects<z.ZodObject<{
560
+ clips: z.ZodArray<z.ZodObject<{
561
+ srcIdx: z.ZodNumber;
562
+ in: z.ZodNumber;
563
+ out: z.ZodNumber;
564
+ hidden: z.ZodOptional<z.ZodBoolean>;
565
+ locked: z.ZodOptional<z.ZodBoolean>;
566
+ }, "strip", z.ZodTypeAny, {
567
+ srcIdx: number;
568
+ in: number;
569
+ out: number;
570
+ hidden?: boolean | undefined;
571
+ locked?: boolean | undefined;
572
+ }, {
573
+ srcIdx: number;
574
+ in: number;
575
+ out: number;
576
+ hidden?: boolean | undefined;
577
+ locked?: boolean | undefined;
578
+ }>, "many">;
579
+ audioClips: z.ZodDefault<z.ZodArray<z.ZodObject<{
580
+ srcIdx: z.ZodNumber;
581
+ track: z.ZodDefault<z.ZodNumber>;
582
+ startAt: z.ZodNumber;
583
+ in: z.ZodNumber;
584
+ out: z.ZodNumber;
585
+ speed: z.ZodDefault<z.ZodNumber>;
586
+ volume: z.ZodNumber;
587
+ muted: z.ZodOptional<z.ZodBoolean>;
588
+ locked: z.ZodOptional<z.ZodBoolean>;
589
+ fadeIn: z.ZodDefault<z.ZodNumber>;
590
+ fadeOut: z.ZodDefault<z.ZodNumber>;
591
+ }, "strip", z.ZodTypeAny, {
592
+ startAt: number;
593
+ srcIdx: number;
594
+ in: number;
595
+ out: number;
596
+ track: number;
597
+ speed: number;
598
+ volume: number;
599
+ fadeIn: number;
600
+ fadeOut: number;
601
+ locked?: boolean | undefined;
602
+ muted?: boolean | undefined;
603
+ }, {
604
+ startAt: number;
605
+ srcIdx: number;
606
+ in: number;
607
+ out: number;
608
+ volume: number;
609
+ locked?: boolean | undefined;
610
+ track?: number | undefined;
611
+ speed?: number | undefined;
612
+ muted?: boolean | undefined;
613
+ fadeIn?: number | undefined;
614
+ fadeOut?: number | undefined;
615
+ }>, "many">>;
616
+ /** 输出画布(=首素材分辨率,偶数);全局 crop/rotation 的"源 dims" */
617
+ canvas: z.ZodObject<{
618
+ w: z.ZodNumber;
619
+ h: z.ZodNumber;
620
+ }, "strip", z.ZodTypeAny, {
621
+ w: number;
622
+ h: number;
623
+ }, {
624
+ w: number;
625
+ h: number;
626
+ }>;
627
+ crop: z.ZodOptional<z.ZodObject<{
628
+ x: z.ZodNumber;
629
+ y: z.ZodNumber;
630
+ width: z.ZodNumber;
631
+ height: z.ZodNumber;
632
+ }, "strip", z.ZodTypeAny, {
633
+ width: number;
634
+ x: number;
635
+ y: number;
636
+ height: number;
637
+ }, {
638
+ width: number;
639
+ x: number;
640
+ y: number;
641
+ height: number;
642
+ }>>;
643
+ scale: z.ZodOptional<z.ZodObject<{
644
+ width: z.ZodNumber;
645
+ height: z.ZodNumber;
646
+ fit: z.ZodEnum<["contain", "cover", "force"]>;
647
+ backgroundColor: z.ZodOptional<z.ZodString>;
648
+ }, "strip", z.ZodTypeAny, {
649
+ width: number;
650
+ height: number;
651
+ fit: "contain" | "cover" | "force";
652
+ backgroundColor?: string | undefined;
653
+ }, {
654
+ width: number;
655
+ height: number;
656
+ fit: "contain" | "cover" | "force";
657
+ backgroundColor?: string | undefined;
658
+ }>>;
659
+ /** 任意角度(度)。UI = 90° 步进按钮 + ±45° 刻度盘叠加 */
660
+ rotation: z.ZodDefault<z.ZodNumber>;
661
+ flipX: z.ZodDefault<z.ZodBoolean>;
662
+ flipY: z.ZodDefault<z.ZodBoolean>;
663
+ filters: z.ZodDefault<z.ZodObject<{
664
+ brightness: z.ZodDefault<z.ZodNumber>;
665
+ contrast: z.ZodDefault<z.ZodNumber>;
666
+ saturation: z.ZodDefault<z.ZodNumber>;
667
+ temperature: z.ZodDefault<z.ZodNumber>;
668
+ tint: z.ZodDefault<z.ZodNumber>;
669
+ vibrance: z.ZodDefault<z.ZodNumber>;
670
+ gamma: z.ZodDefault<z.ZodNumber>;
671
+ highlights: z.ZodDefault<z.ZodNumber>;
672
+ shadows: z.ZodDefault<z.ZodNumber>;
673
+ whites: z.ZodDefault<z.ZodNumber>;
674
+ blacks: z.ZodDefault<z.ZodNumber>;
675
+ lightSense: z.ZodDefault<z.ZodNumber>;
676
+ sharpen: z.ZodDefault<z.ZodNumber>;
677
+ clarity: z.ZodDefault<z.ZodNumber>;
678
+ grain: z.ZodDefault<z.ZodNumber>;
679
+ fade: z.ZodDefault<z.ZodNumber>;
680
+ vignette: z.ZodDefault<z.ZodNumber>;
681
+ }, "strip", z.ZodTypeAny, {
682
+ brightness: number;
683
+ contrast: number;
684
+ saturation: number;
685
+ temperature: number;
686
+ tint: number;
687
+ vibrance: number;
688
+ gamma: number;
689
+ highlights: number;
690
+ shadows: number;
691
+ whites: number;
692
+ blacks: number;
693
+ lightSense: number;
694
+ sharpen: number;
695
+ clarity: number;
696
+ grain: number;
697
+ fade: number;
698
+ vignette: number;
699
+ }, {
700
+ brightness?: number | undefined;
701
+ contrast?: number | undefined;
702
+ saturation?: number | undefined;
703
+ temperature?: number | undefined;
704
+ tint?: number | undefined;
705
+ vibrance?: number | undefined;
706
+ gamma?: number | undefined;
707
+ highlights?: number | undefined;
708
+ shadows?: number | undefined;
709
+ whites?: number | undefined;
710
+ blacks?: number | undefined;
711
+ lightSense?: number | undefined;
712
+ sharpen?: number | undefined;
713
+ clarity?: number | undefined;
714
+ grain?: number | undefined;
715
+ fade?: number | undefined;
716
+ vignette?: number | undefined;
717
+ }>>;
718
+ /** 预设滤镜 id(见 filters.ts);与 filters 手调叠加 */
719
+ filterPreset: z.ZodOptional<z.ZodString>;
720
+ overlays: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
721
+ rotation: z.ZodOptional<z.ZodNumber>;
722
+ startAt: z.ZodOptional<z.ZodNumber>;
723
+ endAt: z.ZodOptional<z.ZodNumber>;
724
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
725
+ hidden: z.ZodOptional<z.ZodBoolean>;
726
+ locked: z.ZodOptional<z.ZodBoolean>;
727
+ color: z.ZodString;
728
+ width: z.ZodNumber;
729
+ type: z.ZodLiteral<"pen">;
730
+ points: z.ZodArray<z.ZodNumber, "many">;
731
+ }, "strip", z.ZodTypeAny, {
732
+ type: "pen";
733
+ points: number[];
734
+ color: string;
735
+ width: number;
736
+ rotation?: number | undefined;
737
+ startAt?: number | undefined;
738
+ endAt?: number | undefined;
739
+ timelineTrack?: number | undefined;
740
+ hidden?: boolean | undefined;
741
+ locked?: boolean | undefined;
742
+ }, {
743
+ type: "pen";
744
+ points: number[];
745
+ color: string;
746
+ width: number;
747
+ rotation?: number | undefined;
748
+ startAt?: number | undefined;
749
+ endAt?: number | undefined;
750
+ timelineTrack?: number | undefined;
751
+ hidden?: boolean | undefined;
752
+ locked?: boolean | undefined;
753
+ }>, z.ZodObject<{
754
+ rotation: z.ZodOptional<z.ZodNumber>;
755
+ startAt: z.ZodOptional<z.ZodNumber>;
756
+ endAt: z.ZodOptional<z.ZodNumber>;
757
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
758
+ hidden: z.ZodOptional<z.ZodBoolean>;
759
+ locked: z.ZodOptional<z.ZodBoolean>;
760
+ color: z.ZodString;
761
+ width: z.ZodNumber;
762
+ type: z.ZodLiteral<"line">;
763
+ x1: z.ZodNumber;
764
+ y1: z.ZodNumber;
765
+ x2: z.ZodNumber;
766
+ y2: z.ZodNumber;
767
+ }, "strip", z.ZodTypeAny, {
768
+ type: "line";
769
+ color: string;
770
+ width: number;
771
+ x1: number;
772
+ y1: number;
773
+ x2: number;
774
+ y2: number;
775
+ rotation?: number | undefined;
776
+ startAt?: number | undefined;
777
+ endAt?: number | undefined;
778
+ timelineTrack?: number | undefined;
779
+ hidden?: boolean | undefined;
780
+ locked?: boolean | undefined;
781
+ }, {
782
+ type: "line";
783
+ color: string;
784
+ width: number;
785
+ x1: number;
786
+ y1: number;
787
+ x2: number;
788
+ y2: number;
789
+ rotation?: number | undefined;
790
+ startAt?: number | undefined;
791
+ endAt?: number | undefined;
792
+ timelineTrack?: number | undefined;
793
+ hidden?: boolean | undefined;
794
+ locked?: boolean | undefined;
795
+ }>, z.ZodObject<{
796
+ rotation: z.ZodOptional<z.ZodNumber>;
797
+ startAt: z.ZodOptional<z.ZodNumber>;
798
+ endAt: z.ZodOptional<z.ZodNumber>;
799
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
800
+ hidden: z.ZodOptional<z.ZodBoolean>;
801
+ locked: z.ZodOptional<z.ZodBoolean>;
802
+ color: z.ZodString;
803
+ width: z.ZodNumber;
804
+ type: z.ZodLiteral<"arrow">;
805
+ x1: z.ZodNumber;
806
+ y1: z.ZodNumber;
807
+ x2: z.ZodNumber;
808
+ y2: z.ZodNumber;
809
+ }, "strip", z.ZodTypeAny, {
810
+ type: "arrow";
811
+ color: string;
812
+ width: number;
813
+ x1: number;
814
+ y1: number;
815
+ x2: number;
816
+ y2: number;
817
+ rotation?: number | undefined;
818
+ startAt?: number | undefined;
819
+ endAt?: number | undefined;
820
+ timelineTrack?: number | undefined;
821
+ hidden?: boolean | undefined;
822
+ locked?: boolean | undefined;
823
+ }, {
824
+ type: "arrow";
825
+ color: string;
826
+ width: number;
827
+ x1: number;
828
+ y1: number;
829
+ x2: number;
830
+ y2: number;
831
+ rotation?: number | undefined;
832
+ startAt?: number | undefined;
833
+ endAt?: number | undefined;
834
+ timelineTrack?: number | undefined;
835
+ hidden?: boolean | undefined;
836
+ locked?: boolean | undefined;
837
+ }>, z.ZodObject<{
838
+ rotation: z.ZodOptional<z.ZodNumber>;
839
+ startAt: z.ZodOptional<z.ZodNumber>;
840
+ endAt: z.ZodOptional<z.ZodNumber>;
841
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
842
+ hidden: z.ZodOptional<z.ZodBoolean>;
843
+ locked: z.ZodOptional<z.ZodBoolean>;
844
+ color: z.ZodString;
845
+ width: z.ZodNumber;
846
+ type: z.ZodLiteral<"rect">;
847
+ x: z.ZodNumber;
848
+ y: z.ZodNumber;
849
+ w: z.ZodNumber;
850
+ h: z.ZodNumber;
851
+ }, "strip", z.ZodTypeAny, {
852
+ type: "rect";
853
+ color: string;
854
+ width: number;
855
+ x: number;
856
+ y: number;
857
+ w: number;
858
+ h: number;
859
+ rotation?: number | undefined;
860
+ startAt?: number | undefined;
861
+ endAt?: number | undefined;
862
+ timelineTrack?: number | undefined;
863
+ hidden?: boolean | undefined;
864
+ locked?: boolean | undefined;
865
+ }, {
866
+ type: "rect";
867
+ color: string;
868
+ width: number;
869
+ x: number;
870
+ y: number;
871
+ w: number;
872
+ h: number;
873
+ rotation?: number | undefined;
874
+ startAt?: number | undefined;
875
+ endAt?: number | undefined;
876
+ timelineTrack?: number | undefined;
877
+ hidden?: boolean | undefined;
878
+ locked?: boolean | undefined;
879
+ }>, z.ZodObject<{
880
+ rotation: z.ZodOptional<z.ZodNumber>;
881
+ startAt: z.ZodOptional<z.ZodNumber>;
882
+ endAt: z.ZodOptional<z.ZodNumber>;
883
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
884
+ hidden: z.ZodOptional<z.ZodBoolean>;
885
+ locked: z.ZodOptional<z.ZodBoolean>;
886
+ color: z.ZodString;
887
+ width: z.ZodNumber;
888
+ type: z.ZodLiteral<"ellipse">;
889
+ x: z.ZodNumber;
890
+ y: z.ZodNumber;
891
+ w: z.ZodNumber;
892
+ h: z.ZodNumber;
893
+ }, "strip", z.ZodTypeAny, {
894
+ type: "ellipse";
895
+ color: string;
896
+ width: number;
897
+ x: number;
898
+ y: number;
899
+ w: number;
900
+ h: number;
901
+ rotation?: number | undefined;
902
+ startAt?: number | undefined;
903
+ endAt?: number | undefined;
904
+ timelineTrack?: number | undefined;
905
+ hidden?: boolean | undefined;
906
+ locked?: boolean | undefined;
907
+ }, {
908
+ type: "ellipse";
909
+ color: string;
910
+ width: number;
911
+ x: number;
912
+ y: number;
913
+ w: number;
914
+ h: number;
915
+ rotation?: number | undefined;
916
+ startAt?: number | undefined;
917
+ endAt?: number | undefined;
918
+ timelineTrack?: number | undefined;
919
+ hidden?: boolean | undefined;
920
+ locked?: boolean | undefined;
921
+ }>, z.ZodObject<{
922
+ rotation: z.ZodOptional<z.ZodNumber>;
923
+ startAt: z.ZodOptional<z.ZodNumber>;
924
+ endAt: z.ZodOptional<z.ZodNumber>;
925
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
926
+ hidden: z.ZodOptional<z.ZodBoolean>;
927
+ locked: z.ZodOptional<z.ZodBoolean>;
928
+ type: z.ZodLiteral<"text">;
929
+ x: z.ZodNumber;
930
+ y: z.ZodNumber;
931
+ text: z.ZodString;
932
+ color: z.ZodString;
933
+ fontSize: z.ZodNumber;
934
+ fontFamily: z.ZodOptional<z.ZodString>;
935
+ fontWeight: z.ZodOptional<z.ZodString>;
936
+ italic: z.ZodOptional<z.ZodBoolean>;
937
+ underline: z.ZodOptional<z.ZodBoolean>;
938
+ strikethrough: z.ZodOptional<z.ZodBoolean>;
939
+ align: z.ZodOptional<z.ZodEnum<["left", "center", "right"]>>;
940
+ width: z.ZodOptional<z.ZodNumber>;
941
+ backgroundColor: z.ZodOptional<z.ZodString>;
942
+ strokeColor: z.ZodOptional<z.ZodString>;
943
+ borderWidth: z.ZodOptional<z.ZodNumber>;
944
+ paddingX: z.ZodOptional<z.ZodNumber>;
945
+ paddingY: z.ZodOptional<z.ZodNumber>;
946
+ lineHeight: z.ZodOptional<z.ZodNumber>;
947
+ opacity: z.ZodOptional<z.ZodNumber>;
948
+ }, "strip", z.ZodTypeAny, {
949
+ type: "text";
950
+ color: string;
951
+ x: number;
952
+ y: number;
953
+ text: string;
954
+ fontSize: number;
955
+ rotation?: number | undefined;
956
+ startAt?: number | undefined;
957
+ endAt?: number | undefined;
958
+ timelineTrack?: number | undefined;
959
+ hidden?: boolean | undefined;
960
+ locked?: boolean | undefined;
961
+ width?: number | undefined;
962
+ fontFamily?: string | undefined;
963
+ fontWeight?: string | undefined;
964
+ italic?: boolean | undefined;
965
+ underline?: boolean | undefined;
966
+ strikethrough?: boolean | undefined;
967
+ align?: "left" | "center" | "right" | undefined;
968
+ backgroundColor?: string | undefined;
969
+ strokeColor?: string | undefined;
970
+ borderWidth?: number | undefined;
971
+ paddingX?: number | undefined;
972
+ paddingY?: number | undefined;
973
+ lineHeight?: number | undefined;
974
+ opacity?: number | undefined;
975
+ }, {
976
+ type: "text";
977
+ color: string;
978
+ x: number;
979
+ y: number;
980
+ text: string;
981
+ fontSize: number;
982
+ rotation?: number | undefined;
983
+ startAt?: number | undefined;
984
+ endAt?: number | undefined;
985
+ timelineTrack?: number | undefined;
986
+ hidden?: boolean | undefined;
987
+ locked?: boolean | undefined;
988
+ width?: number | undefined;
989
+ fontFamily?: string | undefined;
990
+ fontWeight?: string | undefined;
991
+ italic?: boolean | undefined;
992
+ underline?: boolean | undefined;
993
+ strikethrough?: boolean | undefined;
994
+ align?: "left" | "center" | "right" | undefined;
995
+ backgroundColor?: string | undefined;
996
+ strokeColor?: string | undefined;
997
+ borderWidth?: number | undefined;
998
+ paddingX?: number | undefined;
999
+ paddingY?: number | undefined;
1000
+ lineHeight?: number | undefined;
1001
+ opacity?: number | undefined;
1002
+ }>, z.ZodObject<{
1003
+ rotation: z.ZodOptional<z.ZodNumber>;
1004
+ startAt: z.ZodOptional<z.ZodNumber>;
1005
+ endAt: z.ZodOptional<z.ZodNumber>;
1006
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
1007
+ hidden: z.ZodOptional<z.ZodBoolean>;
1008
+ locked: z.ZodOptional<z.ZodBoolean>;
1009
+ type: z.ZodLiteral<"sticker">;
1010
+ x: z.ZodNumber;
1011
+ y: z.ZodNumber;
1012
+ w: z.ZodNumber;
1013
+ h: z.ZodNumber;
1014
+ emoji: z.ZodOptional<z.ZodString>;
1015
+ src: z.ZodOptional<z.ZodString>;
1016
+ }, "strip", z.ZodTypeAny, {
1017
+ type: "sticker";
1018
+ x: number;
1019
+ y: number;
1020
+ w: number;
1021
+ h: number;
1022
+ rotation?: number | undefined;
1023
+ startAt?: number | undefined;
1024
+ endAt?: number | undefined;
1025
+ timelineTrack?: number | undefined;
1026
+ hidden?: boolean | undefined;
1027
+ locked?: boolean | undefined;
1028
+ emoji?: string | undefined;
1029
+ src?: string | undefined;
1030
+ }, {
1031
+ type: "sticker";
1032
+ x: number;
1033
+ y: number;
1034
+ w: number;
1035
+ h: number;
1036
+ rotation?: number | undefined;
1037
+ startAt?: number | undefined;
1038
+ endAt?: number | undefined;
1039
+ timelineTrack?: number | undefined;
1040
+ hidden?: boolean | undefined;
1041
+ locked?: boolean | undefined;
1042
+ emoji?: string | undefined;
1043
+ src?: string | undefined;
1044
+ }>, z.ZodObject<{
1045
+ rotation: z.ZodOptional<z.ZodNumber>;
1046
+ startAt: z.ZodOptional<z.ZodNumber>;
1047
+ endAt: z.ZodOptional<z.ZodNumber>;
1048
+ timelineTrack: z.ZodOptional<z.ZodNumber>;
1049
+ hidden: z.ZodOptional<z.ZodBoolean>;
1050
+ locked: z.ZodOptional<z.ZodBoolean>;
1051
+ brightness: z.ZodDefault<z.ZodNumber>;
1052
+ contrast: z.ZodDefault<z.ZodNumber>;
1053
+ saturation: z.ZodDefault<z.ZodNumber>;
1054
+ temperature: z.ZodDefault<z.ZodNumber>;
1055
+ tint: z.ZodDefault<z.ZodNumber>;
1056
+ vibrance: z.ZodDefault<z.ZodNumber>;
1057
+ gamma: z.ZodDefault<z.ZodNumber>;
1058
+ highlights: z.ZodDefault<z.ZodNumber>;
1059
+ shadows: z.ZodDefault<z.ZodNumber>;
1060
+ whites: z.ZodDefault<z.ZodNumber>;
1061
+ blacks: z.ZodDefault<z.ZodNumber>;
1062
+ lightSense: z.ZodDefault<z.ZodNumber>;
1063
+ sharpen: z.ZodDefault<z.ZodNumber>;
1064
+ clarity: z.ZodDefault<z.ZodNumber>;
1065
+ grain: z.ZodDefault<z.ZodNumber>;
1066
+ fade: z.ZodDefault<z.ZodNumber>;
1067
+ vignette: z.ZodDefault<z.ZodNumber>;
1068
+ type: z.ZodLiteral<"adjust">;
1069
+ x: z.ZodNumber;
1070
+ y: z.ZodNumber;
1071
+ w: z.ZodNumber;
1072
+ h: z.ZodNumber;
1073
+ layerKind: z.ZodOptional<z.ZodEnum<["adjust", "filter"]>>;
1074
+ filterPreset: z.ZodOptional<z.ZodString>;
1075
+ }, "strip", z.ZodTypeAny, {
1076
+ type: "adjust";
1077
+ x: number;
1078
+ y: number;
1079
+ w: number;
1080
+ h: number;
1081
+ brightness: number;
1082
+ contrast: number;
1083
+ saturation: number;
1084
+ temperature: number;
1085
+ tint: number;
1086
+ vibrance: number;
1087
+ gamma: number;
1088
+ highlights: number;
1089
+ shadows: number;
1090
+ whites: number;
1091
+ blacks: number;
1092
+ lightSense: number;
1093
+ sharpen: number;
1094
+ clarity: number;
1095
+ grain: number;
1096
+ fade: number;
1097
+ vignette: number;
1098
+ rotation?: number | undefined;
1099
+ startAt?: number | undefined;
1100
+ endAt?: number | undefined;
1101
+ timelineTrack?: number | undefined;
1102
+ hidden?: boolean | undefined;
1103
+ locked?: boolean | undefined;
1104
+ layerKind?: "filter" | "adjust" | undefined;
1105
+ filterPreset?: string | undefined;
1106
+ }, {
1107
+ type: "adjust";
1108
+ x: number;
1109
+ y: number;
1110
+ w: number;
1111
+ h: number;
1112
+ rotation?: number | undefined;
1113
+ startAt?: number | undefined;
1114
+ endAt?: number | undefined;
1115
+ timelineTrack?: number | undefined;
1116
+ hidden?: boolean | undefined;
1117
+ locked?: boolean | undefined;
1118
+ layerKind?: "filter" | "adjust" | undefined;
1119
+ filterPreset?: string | undefined;
1120
+ brightness?: number | undefined;
1121
+ contrast?: number | undefined;
1122
+ saturation?: number | undefined;
1123
+ temperature?: number | undefined;
1124
+ tint?: number | undefined;
1125
+ vibrance?: number | undefined;
1126
+ gamma?: number | undefined;
1127
+ highlights?: number | undefined;
1128
+ shadows?: number | undefined;
1129
+ whites?: number | undefined;
1130
+ blacks?: number | undefined;
1131
+ lightSense?: number | undefined;
1132
+ sharpen?: number | undefined;
1133
+ clarity?: number | undefined;
1134
+ grain?: number | undefined;
1135
+ fade?: number | undefined;
1136
+ vignette?: number | undefined;
1137
+ }>]>, "many">>;
1138
+ transitions: z.ZodDefault<z.ZodArray<z.ZodObject<{
1139
+ type: z.ZodDefault<z.ZodEnum<["none", "fade", "slide", "wipe", "flip", "clockWipe", "star", "circle", "rectangle"]>>;
1140
+ duration: z.ZodDefault<z.ZodNumber>;
1141
+ }, "strip", z.ZodTypeAny, {
1142
+ type: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle";
1143
+ duration: number;
1144
+ }, {
1145
+ type?: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle" | undefined;
1146
+ duration?: number | undefined;
1147
+ }>, "many">>;
1148
+ /** 原视频声音开关(与音乐混音共存) */
1149
+ keepAudio: z.ZodDefault<z.ZodBoolean>;
1150
+ /** 封面时刻 = 输出时间轴 */
1151
+ poster: z.ZodOptional<z.ZodObject<{
1152
+ time: z.ZodNumber;
1153
+ src: z.ZodOptional<z.ZodString>;
1154
+ useAsVideoCover: z.ZodOptional<z.ZodBoolean>;
1155
+ preview: z.ZodOptional<z.ZodString>;
1156
+ }, "strip", z.ZodTypeAny, {
1157
+ time: number;
1158
+ src?: string | undefined;
1159
+ useAsVideoCover?: boolean | undefined;
1160
+ preview?: string | undefined;
1161
+ }, {
1162
+ time: number;
1163
+ src?: string | undefined;
1164
+ useAsVideoCover?: boolean | undefined;
1165
+ preview?: string | undefined;
1166
+ }>>;
1167
+ exportSettings: z.ZodOptional<z.ZodObject<{
1168
+ fileName: z.ZodOptional<z.ZodString>;
1169
+ format: z.ZodDefault<z.ZodEnum<["mp4", "mov", "mxf"]>>;
1170
+ width: z.ZodOptional<z.ZodNumber>;
1171
+ height: z.ZodOptional<z.ZodNumber>;
1172
+ frameRate: z.ZodDefault<z.ZodNumber>;
1173
+ videoBitrateKbps: z.ZodOptional<z.ZodNumber>;
1174
+ audioBitrateKbps: z.ZodOptional<z.ZodNumber>;
1175
+ audioCodec: z.ZodDefault<z.ZodEnum<["aac", "mp3"]>>;
1176
+ }, "strip", z.ZodTypeAny, {
1177
+ format: "mp4" | "mov" | "mxf";
1178
+ frameRate: number;
1179
+ audioCodec: "aac" | "mp3";
1180
+ width?: number | undefined;
1181
+ fileName?: string | undefined;
1182
+ height?: number | undefined;
1183
+ videoBitrateKbps?: number | undefined;
1184
+ audioBitrateKbps?: number | undefined;
1185
+ }, {
1186
+ width?: number | undefined;
1187
+ fileName?: string | undefined;
1188
+ format?: "mp4" | "mov" | "mxf" | undefined;
1189
+ height?: number | undefined;
1190
+ frameRate?: number | undefined;
1191
+ videoBitrateKbps?: number | undefined;
1192
+ audioBitrateKbps?: number | undefined;
1193
+ audioCodec?: "aac" | "mp3" | undefined;
1194
+ }>>;
1195
+ }, "strip", z.ZodTypeAny, {
1196
+ rotation: number;
1197
+ clips: {
1198
+ srcIdx: number;
1199
+ in: number;
1200
+ out: number;
1201
+ hidden?: boolean | undefined;
1202
+ locked?: boolean | undefined;
1203
+ }[];
1204
+ audioClips: {
1205
+ startAt: number;
1206
+ srcIdx: number;
1207
+ in: number;
1208
+ out: number;
1209
+ track: number;
1210
+ speed: number;
1211
+ volume: number;
1212
+ fadeIn: number;
1213
+ fadeOut: number;
1214
+ locked?: boolean | undefined;
1215
+ muted?: boolean | undefined;
1216
+ }[];
1217
+ canvas: {
1218
+ w: number;
1219
+ h: number;
1220
+ };
1221
+ flipX: boolean;
1222
+ flipY: boolean;
1223
+ filters: {
1224
+ brightness: number;
1225
+ contrast: number;
1226
+ saturation: number;
1227
+ temperature: number;
1228
+ tint: number;
1229
+ vibrance: number;
1230
+ gamma: number;
1231
+ highlights: number;
1232
+ shadows: number;
1233
+ whites: number;
1234
+ blacks: number;
1235
+ lightSense: number;
1236
+ sharpen: number;
1237
+ clarity: number;
1238
+ grain: number;
1239
+ fade: number;
1240
+ vignette: number;
1241
+ };
1242
+ transitions: {
1243
+ type: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle";
1244
+ duration: number;
1245
+ }[];
1246
+ keepAudio: boolean;
1247
+ filterPreset?: string | undefined;
1248
+ crop?: {
1249
+ width: number;
1250
+ x: number;
1251
+ y: number;
1252
+ height: number;
1253
+ } | undefined;
1254
+ scale?: {
1255
+ width: number;
1256
+ height: number;
1257
+ fit: "contain" | "cover" | "force";
1258
+ backgroundColor?: string | undefined;
1259
+ } | undefined;
1260
+ overlays?: ({
1261
+ type: "pen";
1262
+ points: number[];
1263
+ color: string;
1264
+ width: number;
1265
+ rotation?: number | undefined;
1266
+ startAt?: number | undefined;
1267
+ endAt?: number | undefined;
1268
+ timelineTrack?: number | undefined;
1269
+ hidden?: boolean | undefined;
1270
+ locked?: boolean | undefined;
1271
+ } | {
1272
+ type: "line";
1273
+ color: string;
1274
+ width: number;
1275
+ x1: number;
1276
+ y1: number;
1277
+ x2: number;
1278
+ y2: number;
1279
+ rotation?: number | undefined;
1280
+ startAt?: number | undefined;
1281
+ endAt?: number | undefined;
1282
+ timelineTrack?: number | undefined;
1283
+ hidden?: boolean | undefined;
1284
+ locked?: boolean | undefined;
1285
+ } | {
1286
+ type: "arrow";
1287
+ color: string;
1288
+ width: number;
1289
+ x1: number;
1290
+ y1: number;
1291
+ x2: number;
1292
+ y2: number;
1293
+ rotation?: number | undefined;
1294
+ startAt?: number | undefined;
1295
+ endAt?: number | undefined;
1296
+ timelineTrack?: number | undefined;
1297
+ hidden?: boolean | undefined;
1298
+ locked?: boolean | undefined;
1299
+ } | {
1300
+ type: "rect";
1301
+ color: string;
1302
+ width: number;
1303
+ x: number;
1304
+ y: number;
1305
+ w: number;
1306
+ h: number;
1307
+ rotation?: number | undefined;
1308
+ startAt?: number | undefined;
1309
+ endAt?: number | undefined;
1310
+ timelineTrack?: number | undefined;
1311
+ hidden?: boolean | undefined;
1312
+ locked?: boolean | undefined;
1313
+ } | {
1314
+ type: "ellipse";
1315
+ color: string;
1316
+ width: number;
1317
+ x: number;
1318
+ y: number;
1319
+ w: number;
1320
+ h: number;
1321
+ rotation?: number | undefined;
1322
+ startAt?: number | undefined;
1323
+ endAt?: number | undefined;
1324
+ timelineTrack?: number | undefined;
1325
+ hidden?: boolean | undefined;
1326
+ locked?: boolean | undefined;
1327
+ } | {
1328
+ type: "text";
1329
+ color: string;
1330
+ x: number;
1331
+ y: number;
1332
+ text: string;
1333
+ fontSize: number;
1334
+ rotation?: number | undefined;
1335
+ startAt?: number | undefined;
1336
+ endAt?: number | undefined;
1337
+ timelineTrack?: number | undefined;
1338
+ hidden?: boolean | undefined;
1339
+ locked?: boolean | undefined;
1340
+ width?: number | undefined;
1341
+ fontFamily?: string | undefined;
1342
+ fontWeight?: string | undefined;
1343
+ italic?: boolean | undefined;
1344
+ underline?: boolean | undefined;
1345
+ strikethrough?: boolean | undefined;
1346
+ align?: "left" | "center" | "right" | undefined;
1347
+ backgroundColor?: string | undefined;
1348
+ strokeColor?: string | undefined;
1349
+ borderWidth?: number | undefined;
1350
+ paddingX?: number | undefined;
1351
+ paddingY?: number | undefined;
1352
+ lineHeight?: number | undefined;
1353
+ opacity?: number | undefined;
1354
+ } | {
1355
+ type: "sticker";
1356
+ x: number;
1357
+ y: number;
1358
+ w: number;
1359
+ h: number;
1360
+ rotation?: number | undefined;
1361
+ startAt?: number | undefined;
1362
+ endAt?: number | undefined;
1363
+ timelineTrack?: number | undefined;
1364
+ hidden?: boolean | undefined;
1365
+ locked?: boolean | undefined;
1366
+ emoji?: string | undefined;
1367
+ src?: string | undefined;
1368
+ } | {
1369
+ type: "adjust";
1370
+ x: number;
1371
+ y: number;
1372
+ w: number;
1373
+ h: number;
1374
+ brightness: number;
1375
+ contrast: number;
1376
+ saturation: number;
1377
+ temperature: number;
1378
+ tint: number;
1379
+ vibrance: number;
1380
+ gamma: number;
1381
+ highlights: number;
1382
+ shadows: number;
1383
+ whites: number;
1384
+ blacks: number;
1385
+ lightSense: number;
1386
+ sharpen: number;
1387
+ clarity: number;
1388
+ grain: number;
1389
+ fade: number;
1390
+ vignette: number;
1391
+ rotation?: number | undefined;
1392
+ startAt?: number | undefined;
1393
+ endAt?: number | undefined;
1394
+ timelineTrack?: number | undefined;
1395
+ hidden?: boolean | undefined;
1396
+ locked?: boolean | undefined;
1397
+ layerKind?: "filter" | "adjust" | undefined;
1398
+ filterPreset?: string | undefined;
1399
+ })[] | undefined;
1400
+ poster?: {
1401
+ time: number;
1402
+ src?: string | undefined;
1403
+ useAsVideoCover?: boolean | undefined;
1404
+ preview?: string | undefined;
1405
+ } | undefined;
1406
+ exportSettings?: {
1407
+ format: "mp4" | "mov" | "mxf";
1408
+ frameRate: number;
1409
+ audioCodec: "aac" | "mp3";
1410
+ width?: number | undefined;
1411
+ fileName?: string | undefined;
1412
+ height?: number | undefined;
1413
+ videoBitrateKbps?: number | undefined;
1414
+ audioBitrateKbps?: number | undefined;
1415
+ } | undefined;
1416
+ }, {
1417
+ clips: {
1418
+ srcIdx: number;
1419
+ in: number;
1420
+ out: number;
1421
+ hidden?: boolean | undefined;
1422
+ locked?: boolean | undefined;
1423
+ }[];
1424
+ canvas: {
1425
+ w: number;
1426
+ h: number;
1427
+ };
1428
+ rotation?: number | undefined;
1429
+ filterPreset?: string | undefined;
1430
+ audioClips?: {
1431
+ startAt: number;
1432
+ srcIdx: number;
1433
+ in: number;
1434
+ out: number;
1435
+ volume: number;
1436
+ locked?: boolean | undefined;
1437
+ track?: number | undefined;
1438
+ speed?: number | undefined;
1439
+ muted?: boolean | undefined;
1440
+ fadeIn?: number | undefined;
1441
+ fadeOut?: number | undefined;
1442
+ }[] | undefined;
1443
+ crop?: {
1444
+ width: number;
1445
+ x: number;
1446
+ y: number;
1447
+ height: number;
1448
+ } | undefined;
1449
+ scale?: {
1450
+ width: number;
1451
+ height: number;
1452
+ fit: "contain" | "cover" | "force";
1453
+ backgroundColor?: string | undefined;
1454
+ } | undefined;
1455
+ flipX?: boolean | undefined;
1456
+ flipY?: boolean | undefined;
1457
+ filters?: {
1458
+ brightness?: number | undefined;
1459
+ contrast?: number | undefined;
1460
+ saturation?: number | undefined;
1461
+ temperature?: number | undefined;
1462
+ tint?: number | undefined;
1463
+ vibrance?: number | undefined;
1464
+ gamma?: number | undefined;
1465
+ highlights?: number | undefined;
1466
+ shadows?: number | undefined;
1467
+ whites?: number | undefined;
1468
+ blacks?: number | undefined;
1469
+ lightSense?: number | undefined;
1470
+ sharpen?: number | undefined;
1471
+ clarity?: number | undefined;
1472
+ grain?: number | undefined;
1473
+ fade?: number | undefined;
1474
+ vignette?: number | undefined;
1475
+ } | undefined;
1476
+ overlays?: ({
1477
+ type: "pen";
1478
+ points: number[];
1479
+ color: string;
1480
+ width: number;
1481
+ rotation?: number | undefined;
1482
+ startAt?: number | undefined;
1483
+ endAt?: number | undefined;
1484
+ timelineTrack?: number | undefined;
1485
+ hidden?: boolean | undefined;
1486
+ locked?: boolean | undefined;
1487
+ } | {
1488
+ type: "line";
1489
+ color: string;
1490
+ width: number;
1491
+ x1: number;
1492
+ y1: number;
1493
+ x2: number;
1494
+ y2: number;
1495
+ rotation?: number | undefined;
1496
+ startAt?: number | undefined;
1497
+ endAt?: number | undefined;
1498
+ timelineTrack?: number | undefined;
1499
+ hidden?: boolean | undefined;
1500
+ locked?: boolean | undefined;
1501
+ } | {
1502
+ type: "arrow";
1503
+ color: string;
1504
+ width: number;
1505
+ x1: number;
1506
+ y1: number;
1507
+ x2: number;
1508
+ y2: number;
1509
+ rotation?: number | undefined;
1510
+ startAt?: number | undefined;
1511
+ endAt?: number | undefined;
1512
+ timelineTrack?: number | undefined;
1513
+ hidden?: boolean | undefined;
1514
+ locked?: boolean | undefined;
1515
+ } | {
1516
+ type: "rect";
1517
+ color: string;
1518
+ width: number;
1519
+ x: number;
1520
+ y: number;
1521
+ w: number;
1522
+ h: number;
1523
+ rotation?: number | undefined;
1524
+ startAt?: number | undefined;
1525
+ endAt?: number | undefined;
1526
+ timelineTrack?: number | undefined;
1527
+ hidden?: boolean | undefined;
1528
+ locked?: boolean | undefined;
1529
+ } | {
1530
+ type: "ellipse";
1531
+ color: string;
1532
+ width: number;
1533
+ x: number;
1534
+ y: number;
1535
+ w: number;
1536
+ h: number;
1537
+ rotation?: number | undefined;
1538
+ startAt?: number | undefined;
1539
+ endAt?: number | undefined;
1540
+ timelineTrack?: number | undefined;
1541
+ hidden?: boolean | undefined;
1542
+ locked?: boolean | undefined;
1543
+ } | {
1544
+ type: "text";
1545
+ color: string;
1546
+ x: number;
1547
+ y: number;
1548
+ text: string;
1549
+ fontSize: number;
1550
+ rotation?: number | undefined;
1551
+ startAt?: number | undefined;
1552
+ endAt?: number | undefined;
1553
+ timelineTrack?: number | undefined;
1554
+ hidden?: boolean | undefined;
1555
+ locked?: boolean | undefined;
1556
+ width?: number | undefined;
1557
+ fontFamily?: string | undefined;
1558
+ fontWeight?: string | undefined;
1559
+ italic?: boolean | undefined;
1560
+ underline?: boolean | undefined;
1561
+ strikethrough?: boolean | undefined;
1562
+ align?: "left" | "center" | "right" | undefined;
1563
+ backgroundColor?: string | undefined;
1564
+ strokeColor?: string | undefined;
1565
+ borderWidth?: number | undefined;
1566
+ paddingX?: number | undefined;
1567
+ paddingY?: number | undefined;
1568
+ lineHeight?: number | undefined;
1569
+ opacity?: number | undefined;
1570
+ } | {
1571
+ type: "sticker";
1572
+ x: number;
1573
+ y: number;
1574
+ w: number;
1575
+ h: number;
1576
+ rotation?: number | undefined;
1577
+ startAt?: number | undefined;
1578
+ endAt?: number | undefined;
1579
+ timelineTrack?: number | undefined;
1580
+ hidden?: boolean | undefined;
1581
+ locked?: boolean | undefined;
1582
+ emoji?: string | undefined;
1583
+ src?: string | undefined;
1584
+ } | {
1585
+ type: "adjust";
1586
+ x: number;
1587
+ y: number;
1588
+ w: number;
1589
+ h: number;
1590
+ rotation?: number | undefined;
1591
+ startAt?: number | undefined;
1592
+ endAt?: number | undefined;
1593
+ timelineTrack?: number | undefined;
1594
+ hidden?: boolean | undefined;
1595
+ locked?: boolean | undefined;
1596
+ layerKind?: "filter" | "adjust" | undefined;
1597
+ filterPreset?: string | undefined;
1598
+ brightness?: number | undefined;
1599
+ contrast?: number | undefined;
1600
+ saturation?: number | undefined;
1601
+ temperature?: number | undefined;
1602
+ tint?: number | undefined;
1603
+ vibrance?: number | undefined;
1604
+ gamma?: number | undefined;
1605
+ highlights?: number | undefined;
1606
+ shadows?: number | undefined;
1607
+ whites?: number | undefined;
1608
+ blacks?: number | undefined;
1609
+ lightSense?: number | undefined;
1610
+ sharpen?: number | undefined;
1611
+ clarity?: number | undefined;
1612
+ grain?: number | undefined;
1613
+ fade?: number | undefined;
1614
+ vignette?: number | undefined;
1615
+ })[] | undefined;
1616
+ transitions?: {
1617
+ type?: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle" | undefined;
1618
+ duration?: number | undefined;
1619
+ }[] | undefined;
1620
+ keepAudio?: boolean | undefined;
1621
+ poster?: {
1622
+ time: number;
1623
+ src?: string | undefined;
1624
+ useAsVideoCover?: boolean | undefined;
1625
+ preview?: string | undefined;
1626
+ } | undefined;
1627
+ exportSettings?: {
1628
+ width?: number | undefined;
1629
+ fileName?: string | undefined;
1630
+ format?: "mp4" | "mov" | "mxf" | undefined;
1631
+ height?: number | undefined;
1632
+ frameRate?: number | undefined;
1633
+ videoBitrateKbps?: number | undefined;
1634
+ audioBitrateKbps?: number | undefined;
1635
+ audioCodec?: "aac" | "mp3" | undefined;
1636
+ } | undefined;
1637
+ }>, {
1638
+ rotation: number;
1639
+ clips: {
1640
+ srcIdx: number;
1641
+ in: number;
1642
+ out: number;
1643
+ hidden?: boolean | undefined;
1644
+ locked?: boolean | undefined;
1645
+ }[];
1646
+ audioClips: {
1647
+ startAt: number;
1648
+ srcIdx: number;
1649
+ in: number;
1650
+ out: number;
1651
+ track: number;
1652
+ speed: number;
1653
+ volume: number;
1654
+ fadeIn: number;
1655
+ fadeOut: number;
1656
+ locked?: boolean | undefined;
1657
+ muted?: boolean | undefined;
1658
+ }[];
1659
+ canvas: {
1660
+ w: number;
1661
+ h: number;
1662
+ };
1663
+ flipX: boolean;
1664
+ flipY: boolean;
1665
+ filters: {
1666
+ brightness: number;
1667
+ contrast: number;
1668
+ saturation: number;
1669
+ temperature: number;
1670
+ tint: number;
1671
+ vibrance: number;
1672
+ gamma: number;
1673
+ highlights: number;
1674
+ shadows: number;
1675
+ whites: number;
1676
+ blacks: number;
1677
+ lightSense: number;
1678
+ sharpen: number;
1679
+ clarity: number;
1680
+ grain: number;
1681
+ fade: number;
1682
+ vignette: number;
1683
+ };
1684
+ transitions: {
1685
+ type: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle";
1686
+ duration: number;
1687
+ }[];
1688
+ keepAudio: boolean;
1689
+ filterPreset?: string | undefined;
1690
+ crop?: {
1691
+ width: number;
1692
+ x: number;
1693
+ y: number;
1694
+ height: number;
1695
+ } | undefined;
1696
+ scale?: {
1697
+ width: number;
1698
+ height: number;
1699
+ fit: "contain" | "cover" | "force";
1700
+ backgroundColor?: string | undefined;
1701
+ } | undefined;
1702
+ overlays?: ({
1703
+ type: "pen";
1704
+ points: number[];
1705
+ color: string;
1706
+ width: number;
1707
+ rotation?: number | undefined;
1708
+ startAt?: number | undefined;
1709
+ endAt?: number | undefined;
1710
+ timelineTrack?: number | undefined;
1711
+ hidden?: boolean | undefined;
1712
+ locked?: boolean | undefined;
1713
+ } | {
1714
+ type: "line";
1715
+ color: string;
1716
+ width: number;
1717
+ x1: number;
1718
+ y1: number;
1719
+ x2: number;
1720
+ y2: number;
1721
+ rotation?: number | undefined;
1722
+ startAt?: number | undefined;
1723
+ endAt?: number | undefined;
1724
+ timelineTrack?: number | undefined;
1725
+ hidden?: boolean | undefined;
1726
+ locked?: boolean | undefined;
1727
+ } | {
1728
+ type: "arrow";
1729
+ color: string;
1730
+ width: number;
1731
+ x1: number;
1732
+ y1: number;
1733
+ x2: number;
1734
+ y2: number;
1735
+ rotation?: number | undefined;
1736
+ startAt?: number | undefined;
1737
+ endAt?: number | undefined;
1738
+ timelineTrack?: number | undefined;
1739
+ hidden?: boolean | undefined;
1740
+ locked?: boolean | undefined;
1741
+ } | {
1742
+ type: "rect";
1743
+ color: string;
1744
+ width: number;
1745
+ x: number;
1746
+ y: number;
1747
+ w: number;
1748
+ h: number;
1749
+ rotation?: number | undefined;
1750
+ startAt?: number | undefined;
1751
+ endAt?: number | undefined;
1752
+ timelineTrack?: number | undefined;
1753
+ hidden?: boolean | undefined;
1754
+ locked?: boolean | undefined;
1755
+ } | {
1756
+ type: "ellipse";
1757
+ color: string;
1758
+ width: number;
1759
+ x: number;
1760
+ y: number;
1761
+ w: number;
1762
+ h: number;
1763
+ rotation?: number | undefined;
1764
+ startAt?: number | undefined;
1765
+ endAt?: number | undefined;
1766
+ timelineTrack?: number | undefined;
1767
+ hidden?: boolean | undefined;
1768
+ locked?: boolean | undefined;
1769
+ } | {
1770
+ type: "text";
1771
+ color: string;
1772
+ x: number;
1773
+ y: number;
1774
+ text: string;
1775
+ fontSize: number;
1776
+ rotation?: number | undefined;
1777
+ startAt?: number | undefined;
1778
+ endAt?: number | undefined;
1779
+ timelineTrack?: number | undefined;
1780
+ hidden?: boolean | undefined;
1781
+ locked?: boolean | undefined;
1782
+ width?: number | undefined;
1783
+ fontFamily?: string | undefined;
1784
+ fontWeight?: string | undefined;
1785
+ italic?: boolean | undefined;
1786
+ underline?: boolean | undefined;
1787
+ strikethrough?: boolean | undefined;
1788
+ align?: "left" | "center" | "right" | undefined;
1789
+ backgroundColor?: string | undefined;
1790
+ strokeColor?: string | undefined;
1791
+ borderWidth?: number | undefined;
1792
+ paddingX?: number | undefined;
1793
+ paddingY?: number | undefined;
1794
+ lineHeight?: number | undefined;
1795
+ opacity?: number | undefined;
1796
+ } | {
1797
+ type: "sticker";
1798
+ x: number;
1799
+ y: number;
1800
+ w: number;
1801
+ h: number;
1802
+ rotation?: number | undefined;
1803
+ startAt?: number | undefined;
1804
+ endAt?: number | undefined;
1805
+ timelineTrack?: number | undefined;
1806
+ hidden?: boolean | undefined;
1807
+ locked?: boolean | undefined;
1808
+ emoji?: string | undefined;
1809
+ src?: string | undefined;
1810
+ } | {
1811
+ type: "adjust";
1812
+ x: number;
1813
+ y: number;
1814
+ w: number;
1815
+ h: number;
1816
+ brightness: number;
1817
+ contrast: number;
1818
+ saturation: number;
1819
+ temperature: number;
1820
+ tint: number;
1821
+ vibrance: number;
1822
+ gamma: number;
1823
+ highlights: number;
1824
+ shadows: number;
1825
+ whites: number;
1826
+ blacks: number;
1827
+ lightSense: number;
1828
+ sharpen: number;
1829
+ clarity: number;
1830
+ grain: number;
1831
+ fade: number;
1832
+ vignette: number;
1833
+ rotation?: number | undefined;
1834
+ startAt?: number | undefined;
1835
+ endAt?: number | undefined;
1836
+ timelineTrack?: number | undefined;
1837
+ hidden?: boolean | undefined;
1838
+ locked?: boolean | undefined;
1839
+ layerKind?: "filter" | "adjust" | undefined;
1840
+ filterPreset?: string | undefined;
1841
+ })[] | undefined;
1842
+ poster?: {
1843
+ time: number;
1844
+ src?: string | undefined;
1845
+ useAsVideoCover?: boolean | undefined;
1846
+ preview?: string | undefined;
1847
+ } | undefined;
1848
+ exportSettings?: {
1849
+ format: "mp4" | "mov" | "mxf";
1850
+ frameRate: number;
1851
+ audioCodec: "aac" | "mp3";
1852
+ width?: number | undefined;
1853
+ fileName?: string | undefined;
1854
+ height?: number | undefined;
1855
+ videoBitrateKbps?: number | undefined;
1856
+ audioBitrateKbps?: number | undefined;
1857
+ } | undefined;
1858
+ }, {
1859
+ clips: {
1860
+ srcIdx: number;
1861
+ in: number;
1862
+ out: number;
1863
+ hidden?: boolean | undefined;
1864
+ locked?: boolean | undefined;
1865
+ }[];
1866
+ canvas: {
1867
+ w: number;
1868
+ h: number;
1869
+ };
1870
+ rotation?: number | undefined;
1871
+ filterPreset?: string | undefined;
1872
+ audioClips?: {
1873
+ startAt: number;
1874
+ srcIdx: number;
1875
+ in: number;
1876
+ out: number;
1877
+ volume: number;
1878
+ locked?: boolean | undefined;
1879
+ track?: number | undefined;
1880
+ speed?: number | undefined;
1881
+ muted?: boolean | undefined;
1882
+ fadeIn?: number | undefined;
1883
+ fadeOut?: number | undefined;
1884
+ }[] | undefined;
1885
+ crop?: {
1886
+ width: number;
1887
+ x: number;
1888
+ y: number;
1889
+ height: number;
1890
+ } | undefined;
1891
+ scale?: {
1892
+ width: number;
1893
+ height: number;
1894
+ fit: "contain" | "cover" | "force";
1895
+ backgroundColor?: string | undefined;
1896
+ } | undefined;
1897
+ flipX?: boolean | undefined;
1898
+ flipY?: boolean | undefined;
1899
+ filters?: {
1900
+ brightness?: number | undefined;
1901
+ contrast?: number | undefined;
1902
+ saturation?: number | undefined;
1903
+ temperature?: number | undefined;
1904
+ tint?: number | undefined;
1905
+ vibrance?: number | undefined;
1906
+ gamma?: number | undefined;
1907
+ highlights?: number | undefined;
1908
+ shadows?: number | undefined;
1909
+ whites?: number | undefined;
1910
+ blacks?: number | undefined;
1911
+ lightSense?: number | undefined;
1912
+ sharpen?: number | undefined;
1913
+ clarity?: number | undefined;
1914
+ grain?: number | undefined;
1915
+ fade?: number | undefined;
1916
+ vignette?: number | undefined;
1917
+ } | undefined;
1918
+ overlays?: ({
1919
+ type: "pen";
1920
+ points: number[];
1921
+ color: string;
1922
+ width: number;
1923
+ rotation?: number | undefined;
1924
+ startAt?: number | undefined;
1925
+ endAt?: number | undefined;
1926
+ timelineTrack?: number | undefined;
1927
+ hidden?: boolean | undefined;
1928
+ locked?: boolean | undefined;
1929
+ } | {
1930
+ type: "line";
1931
+ color: string;
1932
+ width: number;
1933
+ x1: number;
1934
+ y1: number;
1935
+ x2: number;
1936
+ y2: number;
1937
+ rotation?: number | undefined;
1938
+ startAt?: number | undefined;
1939
+ endAt?: number | undefined;
1940
+ timelineTrack?: number | undefined;
1941
+ hidden?: boolean | undefined;
1942
+ locked?: boolean | undefined;
1943
+ } | {
1944
+ type: "arrow";
1945
+ color: string;
1946
+ width: number;
1947
+ x1: number;
1948
+ y1: number;
1949
+ x2: number;
1950
+ y2: number;
1951
+ rotation?: number | undefined;
1952
+ startAt?: number | undefined;
1953
+ endAt?: number | undefined;
1954
+ timelineTrack?: number | undefined;
1955
+ hidden?: boolean | undefined;
1956
+ locked?: boolean | undefined;
1957
+ } | {
1958
+ type: "rect";
1959
+ color: string;
1960
+ width: number;
1961
+ x: number;
1962
+ y: number;
1963
+ w: number;
1964
+ h: number;
1965
+ rotation?: number | undefined;
1966
+ startAt?: number | undefined;
1967
+ endAt?: number | undefined;
1968
+ timelineTrack?: number | undefined;
1969
+ hidden?: boolean | undefined;
1970
+ locked?: boolean | undefined;
1971
+ } | {
1972
+ type: "ellipse";
1973
+ color: string;
1974
+ width: number;
1975
+ x: number;
1976
+ y: number;
1977
+ w: number;
1978
+ h: number;
1979
+ rotation?: number | undefined;
1980
+ startAt?: number | undefined;
1981
+ endAt?: number | undefined;
1982
+ timelineTrack?: number | undefined;
1983
+ hidden?: boolean | undefined;
1984
+ locked?: boolean | undefined;
1985
+ } | {
1986
+ type: "text";
1987
+ color: string;
1988
+ x: number;
1989
+ y: number;
1990
+ text: string;
1991
+ fontSize: number;
1992
+ rotation?: number | undefined;
1993
+ startAt?: number | undefined;
1994
+ endAt?: number | undefined;
1995
+ timelineTrack?: number | undefined;
1996
+ hidden?: boolean | undefined;
1997
+ locked?: boolean | undefined;
1998
+ width?: number | undefined;
1999
+ fontFamily?: string | undefined;
2000
+ fontWeight?: string | undefined;
2001
+ italic?: boolean | undefined;
2002
+ underline?: boolean | undefined;
2003
+ strikethrough?: boolean | undefined;
2004
+ align?: "left" | "center" | "right" | undefined;
2005
+ backgroundColor?: string | undefined;
2006
+ strokeColor?: string | undefined;
2007
+ borderWidth?: number | undefined;
2008
+ paddingX?: number | undefined;
2009
+ paddingY?: number | undefined;
2010
+ lineHeight?: number | undefined;
2011
+ opacity?: number | undefined;
2012
+ } | {
2013
+ type: "sticker";
2014
+ x: number;
2015
+ y: number;
2016
+ w: number;
2017
+ h: number;
2018
+ rotation?: number | undefined;
2019
+ startAt?: number | undefined;
2020
+ endAt?: number | undefined;
2021
+ timelineTrack?: number | undefined;
2022
+ hidden?: boolean | undefined;
2023
+ locked?: boolean | undefined;
2024
+ emoji?: string | undefined;
2025
+ src?: string | undefined;
2026
+ } | {
2027
+ type: "adjust";
2028
+ x: number;
2029
+ y: number;
2030
+ w: number;
2031
+ h: number;
2032
+ rotation?: number | undefined;
2033
+ startAt?: number | undefined;
2034
+ endAt?: number | undefined;
2035
+ timelineTrack?: number | undefined;
2036
+ hidden?: boolean | undefined;
2037
+ locked?: boolean | undefined;
2038
+ layerKind?: "filter" | "adjust" | undefined;
2039
+ filterPreset?: string | undefined;
2040
+ brightness?: number | undefined;
2041
+ contrast?: number | undefined;
2042
+ saturation?: number | undefined;
2043
+ temperature?: number | undefined;
2044
+ tint?: number | undefined;
2045
+ vibrance?: number | undefined;
2046
+ gamma?: number | undefined;
2047
+ highlights?: number | undefined;
2048
+ shadows?: number | undefined;
2049
+ whites?: number | undefined;
2050
+ blacks?: number | undefined;
2051
+ lightSense?: number | undefined;
2052
+ sharpen?: number | undefined;
2053
+ clarity?: number | undefined;
2054
+ grain?: number | undefined;
2055
+ fade?: number | undefined;
2056
+ vignette?: number | undefined;
2057
+ })[] | undefined;
2058
+ transitions?: {
2059
+ type?: "fade" | "none" | "slide" | "wipe" | "flip" | "clockWipe" | "star" | "circle" | "rectangle" | undefined;
2060
+ duration?: number | undefined;
2061
+ }[] | undefined;
2062
+ keepAudio?: boolean | undefined;
2063
+ poster?: {
2064
+ time: number;
2065
+ src?: string | undefined;
2066
+ useAsVideoCover?: boolean | undefined;
2067
+ preview?: string | undefined;
2068
+ } | undefined;
2069
+ exportSettings?: {
2070
+ width?: number | undefined;
2071
+ fileName?: string | undefined;
2072
+ format?: "mp4" | "mov" | "mxf" | undefined;
2073
+ height?: number | undefined;
2074
+ frameRate?: number | undefined;
2075
+ videoBitrateKbps?: number | undefined;
2076
+ audioBitrateKbps?: number | undefined;
2077
+ audioCodec?: "aac" | "mp3" | undefined;
2078
+ } | undefined;
2079
+ }>;
2080
+ type VideoEditStateT = z.infer<typeof VideoEditState>;
2081
+ /**
2082
+ * 客户端初始占位:首个素材 metadata 加载前 clips 为空、canvas 为最小值,
2083
+ * **不过 schema**(clips min1)——服务端只收显式提交的完整状态,不受影响;
2084
+ * 首源加载完成后编辑器会用真实 clips/canvas 重建 history。
2085
+ */
2086
+ declare function defaultVideoEditState(): VideoEditStateT;
2087
+
2088
+ 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 };