@bylqwjc/media-editor-video 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/dist/chunk-EK7ODJWE.js +1 -0
  4. package/dist/index-CX2iAapm.d.ts +51 -0
  5. package/dist/index.d.ts +61 -0
  6. package/dist/index.js +2273 -0
  7. package/dist/lazy.d.ts +7 -0
  8. package/dist/lazy.js +1 -0
  9. package/dist/legacy.js +65 -0
  10. package/node_modules/@media-editor/client/LICENSE +21 -0
  11. package/node_modules/@media-editor/client/README.md +27 -0
  12. package/node_modules/@media-editor/client/dist/index.d.ts +24 -0
  13. package/node_modules/@media-editor/client/dist/index.js +1 -0
  14. package/node_modules/@media-editor/client/package.json +22 -0
  15. package/node_modules/@media-editor/core/LICENSE +21 -0
  16. package/node_modules/@media-editor/core/README.md +14 -0
  17. package/node_modules/@media-editor/core/dist/browser.d.ts +100 -0
  18. package/node_modules/@media-editor/core/dist/browser.js +3 -0
  19. package/node_modules/@media-editor/core/dist/chunk-MGKYVYOH.js +1 -0
  20. package/node_modules/@media-editor/core/dist/chunk-USY6UDGL.js +1 -0
  21. package/node_modules/@media-editor/core/dist/chunk-XCBM7P7N.js +1 -0
  22. package/node_modules/@media-editor/core/dist/engine.d.ts +359 -0
  23. package/node_modules/@media-editor/core/dist/engine.js +1 -0
  24. package/node_modules/@media-editor/core/dist/index.d.ts +264 -0
  25. package/node_modules/@media-editor/core/dist/index.js +1 -0
  26. package/node_modules/@media-editor/core/dist/platform-presets-B-o4C6uY.d.ts +80 -0
  27. package/node_modules/@media-editor/core/dist/state-B85vkf7_.d.ts +1027 -0
  28. package/node_modules/@media-editor/core/node_modules/zod/LICENSE +21 -0
  29. package/node_modules/@media-editor/core/node_modules/zod/README.md +208 -0
  30. package/node_modules/@media-editor/core/node_modules/zod/index.d.cts +4 -0
  31. package/node_modules/@media-editor/core/node_modules/zod/index.js +1 -0
  32. package/node_modules/@media-editor/core/node_modules/zod/package.json +74 -0
  33. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.d.cts +164 -0
  34. package/node_modules/@media-editor/core/node_modules/zod/v3/ZodError.js +1 -0
  35. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.d.cts +5 -0
  36. package/node_modules/@media-editor/core/node_modules/zod/v3/errors.js +1 -0
  37. package/node_modules/@media-editor/core/node_modules/zod/v3/external.d.cts +6 -0
  38. package/node_modules/@media-editor/core/node_modules/zod/v3/external.js +1 -0
  39. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  40. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/enumUtil.js +0 -0
  41. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  42. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/errorUtil.js +1 -0
  43. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  44. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/parseUtil.js +1 -0
  45. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  46. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/partialUtil.js +0 -0
  47. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  48. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/typeAliases.js +0 -0
  49. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.d.cts +85 -0
  50. package/node_modules/@media-editor/core/node_modules/zod/v3/helpers/util.js +1 -0
  51. package/node_modules/@media-editor/core/node_modules/zod/v3/index.d.cts +4 -0
  52. package/node_modules/@media-editor/core/node_modules/zod/v3/index.js +1 -0
  53. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.d.cts +3 -0
  54. package/node_modules/@media-editor/core/node_modules/zod/v3/locales/en.js +1 -0
  55. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.d.cts +102 -0
  56. package/node_modules/@media-editor/core/node_modules/zod/v3/standard-schema.js +0 -0
  57. package/node_modules/@media-editor/core/node_modules/zod/v3/types.d.cts +1031 -0
  58. package/node_modules/@media-editor/core/node_modules/zod/v3/types.js +1 -0
  59. package/node_modules/@media-editor/core/package.json +34 -0
  60. package/package.json +33 -0
@@ -0,0 +1,1027 @@
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-2(导出真值,预览钳 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
+ color: z.ZodString;
24
+ width: z.ZodNumber;
25
+ type: z.ZodLiteral<"pen">;
26
+ points: z.ZodArray<z.ZodNumber, "many">;
27
+ }, "strip", z.ZodTypeAny, {
28
+ type: "pen";
29
+ points: number[];
30
+ color: string;
31
+ width: number;
32
+ rotation?: number | undefined;
33
+ }, {
34
+ type: "pen";
35
+ points: number[];
36
+ color: string;
37
+ width: number;
38
+ rotation?: number | undefined;
39
+ }>, z.ZodObject<{
40
+ rotation: z.ZodOptional<z.ZodNumber>;
41
+ color: z.ZodString;
42
+ width: z.ZodNumber;
43
+ type: z.ZodLiteral<"line">;
44
+ x1: z.ZodNumber;
45
+ y1: z.ZodNumber;
46
+ x2: z.ZodNumber;
47
+ y2: z.ZodNumber;
48
+ }, "strip", z.ZodTypeAny, {
49
+ type: "line";
50
+ color: string;
51
+ width: number;
52
+ x1: number;
53
+ y1: number;
54
+ x2: number;
55
+ y2: number;
56
+ rotation?: number | undefined;
57
+ }, {
58
+ type: "line";
59
+ color: string;
60
+ width: number;
61
+ x1: number;
62
+ y1: number;
63
+ x2: number;
64
+ y2: number;
65
+ rotation?: number | undefined;
66
+ }>, z.ZodObject<{
67
+ rotation: z.ZodOptional<z.ZodNumber>;
68
+ color: z.ZodString;
69
+ width: z.ZodNumber;
70
+ type: z.ZodLiteral<"arrow">;
71
+ x1: z.ZodNumber;
72
+ y1: z.ZodNumber;
73
+ x2: z.ZodNumber;
74
+ y2: z.ZodNumber;
75
+ }, "strip", z.ZodTypeAny, {
76
+ type: "arrow";
77
+ color: string;
78
+ width: number;
79
+ x1: number;
80
+ y1: number;
81
+ x2: number;
82
+ y2: number;
83
+ rotation?: number | undefined;
84
+ }, {
85
+ type: "arrow";
86
+ color: string;
87
+ width: number;
88
+ x1: number;
89
+ y1: number;
90
+ x2: number;
91
+ y2: number;
92
+ rotation?: number | undefined;
93
+ }>, z.ZodObject<{
94
+ rotation: z.ZodOptional<z.ZodNumber>;
95
+ color: z.ZodString;
96
+ width: z.ZodNumber;
97
+ type: z.ZodLiteral<"rect">;
98
+ x: z.ZodNumber;
99
+ y: z.ZodNumber;
100
+ w: z.ZodNumber;
101
+ h: z.ZodNumber;
102
+ }, "strip", z.ZodTypeAny, {
103
+ type: "rect";
104
+ color: string;
105
+ width: number;
106
+ x: number;
107
+ y: number;
108
+ w: number;
109
+ h: number;
110
+ rotation?: number | undefined;
111
+ }, {
112
+ type: "rect";
113
+ color: string;
114
+ width: number;
115
+ x: number;
116
+ y: number;
117
+ w: number;
118
+ h: number;
119
+ rotation?: number | undefined;
120
+ }>, z.ZodObject<{
121
+ rotation: z.ZodOptional<z.ZodNumber>;
122
+ color: z.ZodString;
123
+ width: z.ZodNumber;
124
+ type: z.ZodLiteral<"ellipse">;
125
+ x: z.ZodNumber;
126
+ y: z.ZodNumber;
127
+ w: z.ZodNumber;
128
+ h: z.ZodNumber;
129
+ }, "strip", z.ZodTypeAny, {
130
+ type: "ellipse";
131
+ color: string;
132
+ width: number;
133
+ x: number;
134
+ y: number;
135
+ w: number;
136
+ h: number;
137
+ rotation?: number | undefined;
138
+ }, {
139
+ type: "ellipse";
140
+ color: string;
141
+ width: number;
142
+ x: number;
143
+ y: number;
144
+ w: number;
145
+ h: number;
146
+ rotation?: number | undefined;
147
+ }>, z.ZodObject<{
148
+ rotation: z.ZodOptional<z.ZodNumber>;
149
+ type: z.ZodLiteral<"text">;
150
+ x: z.ZodNumber;
151
+ y: z.ZodNumber;
152
+ text: z.ZodString;
153
+ color: z.ZodString;
154
+ fontSize: z.ZodNumber;
155
+ }, "strip", z.ZodTypeAny, {
156
+ type: "text";
157
+ color: string;
158
+ x: number;
159
+ y: number;
160
+ text: string;
161
+ fontSize: number;
162
+ rotation?: number | undefined;
163
+ }, {
164
+ type: "text";
165
+ color: string;
166
+ x: number;
167
+ y: number;
168
+ text: string;
169
+ fontSize: number;
170
+ rotation?: number | undefined;
171
+ }>, z.ZodObject<{
172
+ rotation: z.ZodOptional<z.ZodNumber>;
173
+ type: z.ZodLiteral<"sticker">;
174
+ x: z.ZodNumber;
175
+ y: z.ZodNumber;
176
+ w: z.ZodNumber;
177
+ h: z.ZodNumber;
178
+ emoji: z.ZodOptional<z.ZodString>;
179
+ src: z.ZodOptional<z.ZodString>;
180
+ }, "strip", z.ZodTypeAny, {
181
+ type: "sticker";
182
+ x: number;
183
+ y: number;
184
+ w: number;
185
+ h: number;
186
+ rotation?: number | undefined;
187
+ emoji?: string | undefined;
188
+ src?: string | undefined;
189
+ }, {
190
+ type: "sticker";
191
+ x: number;
192
+ y: number;
193
+ w: number;
194
+ h: number;
195
+ rotation?: number | undefined;
196
+ emoji?: string | undefined;
197
+ src?: string | undefined;
198
+ }>]>;
199
+ type OverlayT = z.infer<typeof Overlay>;
200
+ /** 视频片段:srcIdx 指向上传文件序(服务端交叉校验 < 实际文件数) */
201
+ declare const Clip: z.ZodObject<{
202
+ srcIdx: z.ZodNumber;
203
+ in: z.ZodNumber;
204
+ out: z.ZodNumber;
205
+ }, "strip", z.ZodTypeAny, {
206
+ srcIdx: number;
207
+ in: number;
208
+ out: number;
209
+ }, {
210
+ srcIdx: number;
211
+ in: number;
212
+ out: number;
213
+ }>;
214
+ type ClipT = z.infer<typeof Clip>;
215
+ /** 音乐片段:startAt = 输出时间轴落点;in/out = 音频源内区间 */
216
+ declare const AudioClip: z.ZodObject<{
217
+ srcIdx: z.ZodNumber;
218
+ startAt: z.ZodNumber;
219
+ in: z.ZodNumber;
220
+ out: z.ZodNumber;
221
+ volume: z.ZodNumber;
222
+ }, "strip", z.ZodTypeAny, {
223
+ srcIdx: number;
224
+ in: number;
225
+ out: number;
226
+ startAt: number;
227
+ volume: number;
228
+ }, {
229
+ srcIdx: number;
230
+ in: number;
231
+ out: number;
232
+ startAt: number;
233
+ volume: number;
234
+ }>;
235
+ type AudioClipT = z.infer<typeof AudioClip>;
236
+ declare const VideoEditState: z.ZodEffects<z.ZodObject<{
237
+ clips: z.ZodArray<z.ZodObject<{
238
+ srcIdx: z.ZodNumber;
239
+ in: z.ZodNumber;
240
+ out: z.ZodNumber;
241
+ }, "strip", z.ZodTypeAny, {
242
+ srcIdx: number;
243
+ in: number;
244
+ out: number;
245
+ }, {
246
+ srcIdx: number;
247
+ in: number;
248
+ out: number;
249
+ }>, "many">;
250
+ audioClips: z.ZodDefault<z.ZodArray<z.ZodObject<{
251
+ srcIdx: z.ZodNumber;
252
+ startAt: z.ZodNumber;
253
+ in: z.ZodNumber;
254
+ out: z.ZodNumber;
255
+ volume: z.ZodNumber;
256
+ }, "strip", z.ZodTypeAny, {
257
+ srcIdx: number;
258
+ in: number;
259
+ out: number;
260
+ startAt: number;
261
+ volume: number;
262
+ }, {
263
+ srcIdx: number;
264
+ in: number;
265
+ out: number;
266
+ startAt: number;
267
+ volume: number;
268
+ }>, "many">>;
269
+ /** 输出画布(=首素材分辨率,偶数);全局 crop/rotation 的"源 dims" */
270
+ canvas: z.ZodObject<{
271
+ w: z.ZodNumber;
272
+ h: z.ZodNumber;
273
+ }, "strip", z.ZodTypeAny, {
274
+ w: number;
275
+ h: number;
276
+ }, {
277
+ w: number;
278
+ h: number;
279
+ }>;
280
+ crop: z.ZodOptional<z.ZodObject<{
281
+ x: z.ZodNumber;
282
+ y: z.ZodNumber;
283
+ width: z.ZodNumber;
284
+ height: z.ZodNumber;
285
+ }, "strip", z.ZodTypeAny, {
286
+ width: number;
287
+ x: number;
288
+ y: number;
289
+ height: number;
290
+ }, {
291
+ width: number;
292
+ x: number;
293
+ y: number;
294
+ height: number;
295
+ }>>;
296
+ scale: z.ZodOptional<z.ZodObject<{
297
+ width: z.ZodNumber;
298
+ height: z.ZodNumber;
299
+ fit: z.ZodEnum<["contain", "cover", "force"]>;
300
+ }, "strip", z.ZodTypeAny, {
301
+ width: number;
302
+ height: number;
303
+ fit: "contain" | "cover" | "force";
304
+ }, {
305
+ width: number;
306
+ height: number;
307
+ fit: "contain" | "cover" | "force";
308
+ }>>;
309
+ /** 任意角度(度)。UI = 90° 步进按钮 + ±45° 刻度盘叠加 */
310
+ rotation: z.ZodDefault<z.ZodNumber>;
311
+ flipX: z.ZodDefault<z.ZodBoolean>;
312
+ flipY: z.ZodDefault<z.ZodBoolean>;
313
+ filters: z.ZodDefault<z.ZodObject<{
314
+ brightness: z.ZodNumber;
315
+ contrast: z.ZodNumber;
316
+ saturation: z.ZodNumber;
317
+ temperature: z.ZodDefault<z.ZodNumber>;
318
+ tint: z.ZodDefault<z.ZodNumber>;
319
+ vibrance: z.ZodDefault<z.ZodNumber>;
320
+ gamma: z.ZodDefault<z.ZodNumber>;
321
+ highlights: z.ZodDefault<z.ZodNumber>;
322
+ shadows: z.ZodDefault<z.ZodNumber>;
323
+ whites: z.ZodDefault<z.ZodNumber>;
324
+ blacks: z.ZodDefault<z.ZodNumber>;
325
+ lightSense: z.ZodDefault<z.ZodNumber>;
326
+ sharpen: z.ZodDefault<z.ZodNumber>;
327
+ clarity: z.ZodDefault<z.ZodNumber>;
328
+ grain: z.ZodDefault<z.ZodNumber>;
329
+ fade: z.ZodDefault<z.ZodNumber>;
330
+ vignette: z.ZodDefault<z.ZodNumber>;
331
+ }, "strip", z.ZodTypeAny, {
332
+ brightness: number;
333
+ contrast: number;
334
+ saturation: number;
335
+ temperature: number;
336
+ tint: number;
337
+ vibrance: number;
338
+ gamma: number;
339
+ highlights: number;
340
+ shadows: number;
341
+ whites: number;
342
+ blacks: number;
343
+ lightSense: number;
344
+ sharpen: number;
345
+ clarity: number;
346
+ grain: number;
347
+ fade: number;
348
+ vignette: number;
349
+ }, {
350
+ brightness: number;
351
+ contrast: number;
352
+ saturation: number;
353
+ temperature?: number | undefined;
354
+ tint?: number | undefined;
355
+ vibrance?: number | undefined;
356
+ gamma?: number | undefined;
357
+ highlights?: number | undefined;
358
+ shadows?: number | undefined;
359
+ whites?: number | undefined;
360
+ blacks?: number | undefined;
361
+ lightSense?: number | undefined;
362
+ sharpen?: number | undefined;
363
+ clarity?: number | undefined;
364
+ grain?: number | undefined;
365
+ fade?: number | undefined;
366
+ vignette?: number | undefined;
367
+ }>>;
368
+ /** 预设滤镜 id(见 filters.ts);与 filters 手调叠加 */
369
+ filterPreset: z.ZodOptional<z.ZodString>;
370
+ overlays: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
371
+ rotation: z.ZodOptional<z.ZodNumber>;
372
+ color: z.ZodString;
373
+ width: z.ZodNumber;
374
+ type: z.ZodLiteral<"pen">;
375
+ points: z.ZodArray<z.ZodNumber, "many">;
376
+ }, "strip", z.ZodTypeAny, {
377
+ type: "pen";
378
+ points: number[];
379
+ color: string;
380
+ width: number;
381
+ rotation?: number | undefined;
382
+ }, {
383
+ type: "pen";
384
+ points: number[];
385
+ color: string;
386
+ width: number;
387
+ rotation?: number | undefined;
388
+ }>, z.ZodObject<{
389
+ rotation: z.ZodOptional<z.ZodNumber>;
390
+ color: z.ZodString;
391
+ width: z.ZodNumber;
392
+ type: z.ZodLiteral<"line">;
393
+ x1: z.ZodNumber;
394
+ y1: z.ZodNumber;
395
+ x2: z.ZodNumber;
396
+ y2: z.ZodNumber;
397
+ }, "strip", z.ZodTypeAny, {
398
+ type: "line";
399
+ color: string;
400
+ width: number;
401
+ x1: number;
402
+ y1: number;
403
+ x2: number;
404
+ y2: number;
405
+ rotation?: number | undefined;
406
+ }, {
407
+ type: "line";
408
+ color: string;
409
+ width: number;
410
+ x1: number;
411
+ y1: number;
412
+ x2: number;
413
+ y2: number;
414
+ rotation?: number | undefined;
415
+ }>, z.ZodObject<{
416
+ rotation: z.ZodOptional<z.ZodNumber>;
417
+ color: z.ZodString;
418
+ width: z.ZodNumber;
419
+ type: z.ZodLiteral<"arrow">;
420
+ x1: z.ZodNumber;
421
+ y1: z.ZodNumber;
422
+ x2: z.ZodNumber;
423
+ y2: z.ZodNumber;
424
+ }, "strip", z.ZodTypeAny, {
425
+ type: "arrow";
426
+ color: string;
427
+ width: number;
428
+ x1: number;
429
+ y1: number;
430
+ x2: number;
431
+ y2: number;
432
+ rotation?: number | undefined;
433
+ }, {
434
+ type: "arrow";
435
+ color: string;
436
+ width: number;
437
+ x1: number;
438
+ y1: number;
439
+ x2: number;
440
+ y2: number;
441
+ rotation?: number | undefined;
442
+ }>, z.ZodObject<{
443
+ rotation: z.ZodOptional<z.ZodNumber>;
444
+ color: z.ZodString;
445
+ width: z.ZodNumber;
446
+ type: z.ZodLiteral<"rect">;
447
+ x: z.ZodNumber;
448
+ y: z.ZodNumber;
449
+ w: z.ZodNumber;
450
+ h: z.ZodNumber;
451
+ }, "strip", z.ZodTypeAny, {
452
+ type: "rect";
453
+ color: string;
454
+ width: number;
455
+ x: number;
456
+ y: number;
457
+ w: number;
458
+ h: number;
459
+ rotation?: number | undefined;
460
+ }, {
461
+ type: "rect";
462
+ color: string;
463
+ width: number;
464
+ x: number;
465
+ y: number;
466
+ w: number;
467
+ h: number;
468
+ rotation?: number | undefined;
469
+ }>, z.ZodObject<{
470
+ rotation: z.ZodOptional<z.ZodNumber>;
471
+ color: z.ZodString;
472
+ width: z.ZodNumber;
473
+ type: z.ZodLiteral<"ellipse">;
474
+ x: z.ZodNumber;
475
+ y: z.ZodNumber;
476
+ w: z.ZodNumber;
477
+ h: z.ZodNumber;
478
+ }, "strip", z.ZodTypeAny, {
479
+ type: "ellipse";
480
+ color: string;
481
+ width: number;
482
+ x: number;
483
+ y: number;
484
+ w: number;
485
+ h: number;
486
+ rotation?: number | undefined;
487
+ }, {
488
+ type: "ellipse";
489
+ color: string;
490
+ width: number;
491
+ x: number;
492
+ y: number;
493
+ w: number;
494
+ h: number;
495
+ rotation?: number | undefined;
496
+ }>, z.ZodObject<{
497
+ rotation: z.ZodOptional<z.ZodNumber>;
498
+ type: z.ZodLiteral<"text">;
499
+ x: z.ZodNumber;
500
+ y: z.ZodNumber;
501
+ text: z.ZodString;
502
+ color: z.ZodString;
503
+ fontSize: z.ZodNumber;
504
+ }, "strip", z.ZodTypeAny, {
505
+ type: "text";
506
+ color: string;
507
+ x: number;
508
+ y: number;
509
+ text: string;
510
+ fontSize: number;
511
+ rotation?: number | undefined;
512
+ }, {
513
+ type: "text";
514
+ color: string;
515
+ x: number;
516
+ y: number;
517
+ text: string;
518
+ fontSize: number;
519
+ rotation?: number | undefined;
520
+ }>, z.ZodObject<{
521
+ rotation: z.ZodOptional<z.ZodNumber>;
522
+ type: z.ZodLiteral<"sticker">;
523
+ x: z.ZodNumber;
524
+ y: z.ZodNumber;
525
+ w: z.ZodNumber;
526
+ h: z.ZodNumber;
527
+ emoji: z.ZodOptional<z.ZodString>;
528
+ src: z.ZodOptional<z.ZodString>;
529
+ }, "strip", z.ZodTypeAny, {
530
+ type: "sticker";
531
+ x: number;
532
+ y: number;
533
+ w: number;
534
+ h: number;
535
+ rotation?: number | undefined;
536
+ emoji?: string | undefined;
537
+ src?: string | undefined;
538
+ }, {
539
+ type: "sticker";
540
+ x: number;
541
+ y: number;
542
+ w: number;
543
+ h: number;
544
+ rotation?: number | undefined;
545
+ emoji?: string | undefined;
546
+ src?: string | undefined;
547
+ }>]>, "many">>;
548
+ /** 原视频声音开关(与音乐混音共存) */
549
+ keepAudio: z.ZodDefault<z.ZodBoolean>;
550
+ /** 封面时刻 = 输出时间轴 */
551
+ poster: z.ZodOptional<z.ZodObject<{
552
+ time: z.ZodNumber;
553
+ }, "strip", z.ZodTypeAny, {
554
+ time: number;
555
+ }, {
556
+ time: number;
557
+ }>>;
558
+ }, "strip", z.ZodTypeAny, {
559
+ rotation: number;
560
+ clips: {
561
+ srcIdx: number;
562
+ in: number;
563
+ out: number;
564
+ }[];
565
+ audioClips: {
566
+ srcIdx: number;
567
+ in: number;
568
+ out: number;
569
+ startAt: number;
570
+ volume: number;
571
+ }[];
572
+ canvas: {
573
+ w: number;
574
+ h: number;
575
+ };
576
+ flipX: boolean;
577
+ flipY: boolean;
578
+ filters: {
579
+ brightness: number;
580
+ contrast: number;
581
+ saturation: number;
582
+ temperature: number;
583
+ tint: number;
584
+ vibrance: number;
585
+ gamma: number;
586
+ highlights: number;
587
+ shadows: number;
588
+ whites: number;
589
+ blacks: number;
590
+ lightSense: number;
591
+ sharpen: number;
592
+ clarity: number;
593
+ grain: number;
594
+ fade: number;
595
+ vignette: number;
596
+ };
597
+ keepAudio: boolean;
598
+ crop?: {
599
+ width: number;
600
+ x: number;
601
+ y: number;
602
+ height: number;
603
+ } | undefined;
604
+ scale?: {
605
+ width: number;
606
+ height: number;
607
+ fit: "contain" | "cover" | "force";
608
+ } | undefined;
609
+ filterPreset?: string | undefined;
610
+ overlays?: ({
611
+ type: "pen";
612
+ points: number[];
613
+ color: string;
614
+ width: number;
615
+ rotation?: number | undefined;
616
+ } | {
617
+ type: "line";
618
+ color: string;
619
+ width: number;
620
+ x1: number;
621
+ y1: number;
622
+ x2: number;
623
+ y2: number;
624
+ rotation?: number | undefined;
625
+ } | {
626
+ type: "arrow";
627
+ color: string;
628
+ width: number;
629
+ x1: number;
630
+ y1: number;
631
+ x2: number;
632
+ y2: number;
633
+ rotation?: number | undefined;
634
+ } | {
635
+ type: "rect";
636
+ color: string;
637
+ width: number;
638
+ x: number;
639
+ y: number;
640
+ w: number;
641
+ h: number;
642
+ rotation?: number | undefined;
643
+ } | {
644
+ type: "ellipse";
645
+ color: string;
646
+ width: number;
647
+ x: number;
648
+ y: number;
649
+ w: number;
650
+ h: number;
651
+ rotation?: number | undefined;
652
+ } | {
653
+ type: "text";
654
+ color: string;
655
+ x: number;
656
+ y: number;
657
+ text: string;
658
+ fontSize: number;
659
+ rotation?: number | undefined;
660
+ } | {
661
+ type: "sticker";
662
+ x: number;
663
+ y: number;
664
+ w: number;
665
+ h: number;
666
+ rotation?: number | undefined;
667
+ emoji?: string | undefined;
668
+ src?: string | undefined;
669
+ })[] | undefined;
670
+ poster?: {
671
+ time: number;
672
+ } | undefined;
673
+ }, {
674
+ clips: {
675
+ srcIdx: number;
676
+ in: number;
677
+ out: number;
678
+ }[];
679
+ canvas: {
680
+ w: number;
681
+ h: number;
682
+ };
683
+ rotation?: number | undefined;
684
+ audioClips?: {
685
+ srcIdx: number;
686
+ in: number;
687
+ out: number;
688
+ startAt: number;
689
+ volume: number;
690
+ }[] | undefined;
691
+ crop?: {
692
+ width: number;
693
+ x: number;
694
+ y: number;
695
+ height: number;
696
+ } | undefined;
697
+ scale?: {
698
+ width: number;
699
+ height: number;
700
+ fit: "contain" | "cover" | "force";
701
+ } | undefined;
702
+ flipX?: boolean | undefined;
703
+ flipY?: boolean | undefined;
704
+ filters?: {
705
+ brightness: number;
706
+ contrast: number;
707
+ saturation: number;
708
+ temperature?: number | undefined;
709
+ tint?: number | undefined;
710
+ vibrance?: number | undefined;
711
+ gamma?: number | undefined;
712
+ highlights?: number | undefined;
713
+ shadows?: number | undefined;
714
+ whites?: number | undefined;
715
+ blacks?: number | undefined;
716
+ lightSense?: number | undefined;
717
+ sharpen?: number | undefined;
718
+ clarity?: number | undefined;
719
+ grain?: number | undefined;
720
+ fade?: number | undefined;
721
+ vignette?: number | undefined;
722
+ } | undefined;
723
+ filterPreset?: string | undefined;
724
+ overlays?: ({
725
+ type: "pen";
726
+ points: number[];
727
+ color: string;
728
+ width: number;
729
+ rotation?: number | undefined;
730
+ } | {
731
+ type: "line";
732
+ color: string;
733
+ width: number;
734
+ x1: number;
735
+ y1: number;
736
+ x2: number;
737
+ y2: number;
738
+ rotation?: number | undefined;
739
+ } | {
740
+ type: "arrow";
741
+ color: string;
742
+ width: number;
743
+ x1: number;
744
+ y1: number;
745
+ x2: number;
746
+ y2: number;
747
+ rotation?: number | undefined;
748
+ } | {
749
+ type: "rect";
750
+ color: string;
751
+ width: number;
752
+ x: number;
753
+ y: number;
754
+ w: number;
755
+ h: number;
756
+ rotation?: number | undefined;
757
+ } | {
758
+ type: "ellipse";
759
+ color: string;
760
+ width: number;
761
+ x: number;
762
+ y: number;
763
+ w: number;
764
+ h: number;
765
+ rotation?: number | undefined;
766
+ } | {
767
+ type: "text";
768
+ color: string;
769
+ x: number;
770
+ y: number;
771
+ text: string;
772
+ fontSize: number;
773
+ rotation?: number | undefined;
774
+ } | {
775
+ type: "sticker";
776
+ x: number;
777
+ y: number;
778
+ w: number;
779
+ h: number;
780
+ rotation?: number | undefined;
781
+ emoji?: string | undefined;
782
+ src?: string | undefined;
783
+ })[] | undefined;
784
+ keepAudio?: boolean | undefined;
785
+ poster?: {
786
+ time: number;
787
+ } | undefined;
788
+ }>, {
789
+ rotation: number;
790
+ clips: {
791
+ srcIdx: number;
792
+ in: number;
793
+ out: number;
794
+ }[];
795
+ audioClips: {
796
+ srcIdx: number;
797
+ in: number;
798
+ out: number;
799
+ startAt: number;
800
+ volume: number;
801
+ }[];
802
+ canvas: {
803
+ w: number;
804
+ h: number;
805
+ };
806
+ flipX: boolean;
807
+ flipY: boolean;
808
+ filters: {
809
+ brightness: number;
810
+ contrast: number;
811
+ saturation: number;
812
+ temperature: number;
813
+ tint: number;
814
+ vibrance: number;
815
+ gamma: number;
816
+ highlights: number;
817
+ shadows: number;
818
+ whites: number;
819
+ blacks: number;
820
+ lightSense: number;
821
+ sharpen: number;
822
+ clarity: number;
823
+ grain: number;
824
+ fade: number;
825
+ vignette: number;
826
+ };
827
+ keepAudio: boolean;
828
+ crop?: {
829
+ width: number;
830
+ x: number;
831
+ y: number;
832
+ height: number;
833
+ } | undefined;
834
+ scale?: {
835
+ width: number;
836
+ height: number;
837
+ fit: "contain" | "cover" | "force";
838
+ } | undefined;
839
+ filterPreset?: string | undefined;
840
+ overlays?: ({
841
+ type: "pen";
842
+ points: number[];
843
+ color: string;
844
+ width: number;
845
+ rotation?: number | undefined;
846
+ } | {
847
+ type: "line";
848
+ color: string;
849
+ width: number;
850
+ x1: number;
851
+ y1: number;
852
+ x2: number;
853
+ y2: number;
854
+ rotation?: number | undefined;
855
+ } | {
856
+ type: "arrow";
857
+ color: string;
858
+ width: number;
859
+ x1: number;
860
+ y1: number;
861
+ x2: number;
862
+ y2: number;
863
+ rotation?: number | undefined;
864
+ } | {
865
+ type: "rect";
866
+ color: string;
867
+ width: number;
868
+ x: number;
869
+ y: number;
870
+ w: number;
871
+ h: number;
872
+ rotation?: number | undefined;
873
+ } | {
874
+ type: "ellipse";
875
+ color: string;
876
+ width: number;
877
+ x: number;
878
+ y: number;
879
+ w: number;
880
+ h: number;
881
+ rotation?: number | undefined;
882
+ } | {
883
+ type: "text";
884
+ color: string;
885
+ x: number;
886
+ y: number;
887
+ text: string;
888
+ fontSize: number;
889
+ rotation?: number | undefined;
890
+ } | {
891
+ type: "sticker";
892
+ x: number;
893
+ y: number;
894
+ w: number;
895
+ h: number;
896
+ rotation?: number | undefined;
897
+ emoji?: string | undefined;
898
+ src?: string | undefined;
899
+ })[] | undefined;
900
+ poster?: {
901
+ time: number;
902
+ } | undefined;
903
+ }, {
904
+ clips: {
905
+ srcIdx: number;
906
+ in: number;
907
+ out: number;
908
+ }[];
909
+ canvas: {
910
+ w: number;
911
+ h: number;
912
+ };
913
+ rotation?: number | undefined;
914
+ audioClips?: {
915
+ srcIdx: number;
916
+ in: number;
917
+ out: number;
918
+ startAt: number;
919
+ volume: number;
920
+ }[] | undefined;
921
+ crop?: {
922
+ width: number;
923
+ x: number;
924
+ y: number;
925
+ height: number;
926
+ } | undefined;
927
+ scale?: {
928
+ width: number;
929
+ height: number;
930
+ fit: "contain" | "cover" | "force";
931
+ } | undefined;
932
+ flipX?: boolean | undefined;
933
+ flipY?: boolean | undefined;
934
+ filters?: {
935
+ brightness: number;
936
+ contrast: number;
937
+ saturation: number;
938
+ temperature?: number | undefined;
939
+ tint?: number | undefined;
940
+ vibrance?: number | undefined;
941
+ gamma?: number | undefined;
942
+ highlights?: number | undefined;
943
+ shadows?: number | undefined;
944
+ whites?: number | undefined;
945
+ blacks?: number | undefined;
946
+ lightSense?: number | undefined;
947
+ sharpen?: number | undefined;
948
+ clarity?: number | undefined;
949
+ grain?: number | undefined;
950
+ fade?: number | undefined;
951
+ vignette?: number | undefined;
952
+ } | undefined;
953
+ filterPreset?: string | undefined;
954
+ overlays?: ({
955
+ type: "pen";
956
+ points: number[];
957
+ color: string;
958
+ width: number;
959
+ rotation?: number | undefined;
960
+ } | {
961
+ type: "line";
962
+ color: string;
963
+ width: number;
964
+ x1: number;
965
+ y1: number;
966
+ x2: number;
967
+ y2: number;
968
+ rotation?: number | undefined;
969
+ } | {
970
+ type: "arrow";
971
+ color: string;
972
+ width: number;
973
+ x1: number;
974
+ y1: number;
975
+ x2: number;
976
+ y2: number;
977
+ rotation?: number | undefined;
978
+ } | {
979
+ type: "rect";
980
+ color: string;
981
+ width: number;
982
+ x: number;
983
+ y: number;
984
+ w: number;
985
+ h: number;
986
+ rotation?: number | undefined;
987
+ } | {
988
+ type: "ellipse";
989
+ color: string;
990
+ width: number;
991
+ x: number;
992
+ y: number;
993
+ w: number;
994
+ h: number;
995
+ rotation?: number | undefined;
996
+ } | {
997
+ type: "text";
998
+ color: string;
999
+ x: number;
1000
+ y: number;
1001
+ text: string;
1002
+ fontSize: number;
1003
+ rotation?: number | undefined;
1004
+ } | {
1005
+ type: "sticker";
1006
+ x: number;
1007
+ y: number;
1008
+ w: number;
1009
+ h: number;
1010
+ rotation?: number | undefined;
1011
+ emoji?: string | undefined;
1012
+ src?: string | undefined;
1013
+ })[] | undefined;
1014
+ keepAudio?: boolean | undefined;
1015
+ poster?: {
1016
+ time: number;
1017
+ } | undefined;
1018
+ }>;
1019
+ type VideoEditStateT = z.infer<typeof VideoEditState>;
1020
+ /**
1021
+ * 客户端初始占位:首个素材 metadata 加载前 clips 为空、canvas 为最小值,
1022
+ * **不过 schema**(clips min1)——服务端只收显式提交的完整状态,不受影响;
1023
+ * 首源加载完成后编辑器会用真实 clips/canvas 重建 history。
1024
+ */
1025
+ declare function defaultVideoEditState(): VideoEditStateT;
1026
+
1027
+ export { type AudioClipT as A, type ClipT as C, type OverlayT as O, type VideoEditStateT as V, AudioClip as a, Clip as b, Overlay as c, VideoEditState as d, defaultVideoEditState as e };