cerevox 0.1.3 → 0.2.1

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 (52) hide show
  1. package/README.md +162 -2
  2. package/dist/core/ai.d.ts +43 -0
  3. package/dist/core/ai.d.ts.map +1 -0
  4. package/dist/core/ai.js +219 -0
  5. package/dist/core/ai.js.map +1 -0
  6. package/dist/core/browser.d.ts +3 -2
  7. package/dist/core/browser.d.ts.map +1 -1
  8. package/dist/core/browser.js +7 -5
  9. package/dist/core/browser.js.map +1 -1
  10. package/dist/core/cerevox.d.ts +2 -1
  11. package/dist/core/cerevox.d.ts.map +1 -1
  12. package/dist/core/cerevox.js +24 -3
  13. package/dist/core/cerevox.js.map +1 -1
  14. package/dist/core/code-runner.d.ts +3 -1
  15. package/dist/core/code-runner.d.ts.map +1 -1
  16. package/dist/core/code-runner.js +18 -4
  17. package/dist/core/code-runner.js.map +1 -1
  18. package/dist/core/file-system.d.ts +5 -2
  19. package/dist/core/file-system.d.ts.map +1 -1
  20. package/dist/core/file-system.js +3 -7
  21. package/dist/core/file-system.js.map +1 -1
  22. package/dist/core/session.d.ts +2 -0
  23. package/dist/core/session.d.ts.map +1 -1
  24. package/dist/core/session.js +25 -5
  25. package/dist/core/session.js.map +1 -1
  26. package/dist/core/terminal.d.ts.map +1 -1
  27. package/dist/core/terminal.js +5 -4
  28. package/dist/core/terminal.js.map +1 -1
  29. package/dist/mcp/servers/browser-use.d.ts +3 -0
  30. package/dist/mcp/servers/browser-use.d.ts.map +1 -0
  31. package/dist/{cli/cerevox-mcp.js → mcp/servers/browser-use.js} +32 -44
  32. package/dist/mcp/servers/browser-use.js.map +1 -0
  33. package/dist/mcp/servers/zerocut.d.ts +3 -0
  34. package/dist/mcp/servers/zerocut.d.ts.map +1 -0
  35. package/dist/mcp/servers/zerocut.js +388 -0
  36. package/dist/mcp/servers/zerocut.js.map +1 -0
  37. package/dist/utils/constants.d.ts +1 -0
  38. package/dist/utils/constants.d.ts.map +1 -1
  39. package/dist/utils/constants.js +3 -1
  40. package/dist/utils/constants.js.map +1 -1
  41. package/dist/utils/detect-code.d.ts +2 -2
  42. package/dist/utils/detect-code.d.ts.map +1 -1
  43. package/dist/utils/detect-code.js +5 -1
  44. package/dist/utils/detect-code.js.map +1 -1
  45. package/dist/utils/videokit.d.ts +921 -0
  46. package/dist/utils/videokit.d.ts.map +1 -0
  47. package/dist/utils/videokit.js +588 -0
  48. package/dist/utils/videokit.js.map +1 -0
  49. package/package.json +4 -2
  50. package/dist/cli/cerevox-mcp.d.ts +0 -3
  51. package/dist/cli/cerevox-mcp.d.ts.map +0 -1
  52. package/dist/cli/cerevox-mcp.js.map +0 -1
@@ -0,0 +1,921 @@
1
+ import { z } from 'zod';
2
+ export interface ProjectInfo {
3
+ name: string;
4
+ id: string;
5
+ }
6
+ export interface Resolution {
7
+ width: number;
8
+ height: number;
9
+ }
10
+ export interface Settings {
11
+ fps: number;
12
+ resolution: Resolution;
13
+ pixelFormat: string;
14
+ sampleRate: number;
15
+ channels: number;
16
+ timebase: string;
17
+ }
18
+ export type AssetType = 'video' | 'audio' | 'image';
19
+ export interface Asset {
20
+ id: string;
21
+ type: AssetType;
22
+ uri: string;
23
+ durationMs?: number;
24
+ fps?: number;
25
+ }
26
+ export type TrackType = 'video' | 'audio' | 'subtitle';
27
+ export interface Effect {
28
+ name: 'fadeIn' | 'fadeOut' | 'gain' | 'blur' | 'color' | 'speed' | string;
29
+ params?: Record<string, unknown>;
30
+ }
31
+ export interface TransitionDef {
32
+ name: string;
33
+ durationMs: number;
34
+ }
35
+ export interface Transform {
36
+ scale?: number;
37
+ rotate?: number;
38
+ anchor?: 'center' | 'topleft' | 'topright' | 'bottomleft' | 'bottomright';
39
+ position?: {
40
+ x: number;
41
+ y: number;
42
+ };
43
+ fit?: 'contain' | 'cover' | 'stretch';
44
+ }
45
+ export interface Clip {
46
+ id: string;
47
+ assetId: string;
48
+ startMs: number;
49
+ inMs: number;
50
+ durationMs: number;
51
+ transform?: Transform;
52
+ speed?: number;
53
+ effects?: Effect[];
54
+ transitionIn?: TransitionDef;
55
+ transitionOut?: TransitionDef;
56
+ }
57
+ export interface Track {
58
+ id: string;
59
+ type: TrackType;
60
+ muted?: boolean;
61
+ opacity?: number;
62
+ clips: Clip[];
63
+ }
64
+ export interface DuckingRule {
65
+ id: string;
66
+ musicTrackId: string;
67
+ dialogTrackId: string;
68
+ params?: {
69
+ threshold?: number;
70
+ ratio?: number;
71
+ attackMs?: number;
72
+ releaseMs?: number;
73
+ musicPreGain?: number;
74
+ };
75
+ }
76
+ export interface Mix {
77
+ ducking?: DuckingRule[];
78
+ }
79
+ export interface SubtitleItem {
80
+ id: string;
81
+ text: string;
82
+ startMs: number;
83
+ endMs: number;
84
+ audio?: string;
85
+ style?: {
86
+ fontFamily?: string;
87
+ fontSize?: number;
88
+ bold?: boolean;
89
+ color?: string;
90
+ outlineColor?: string;
91
+ outlineWidth?: number;
92
+ align?: 'left' | 'center' | 'right';
93
+ position?: {
94
+ x: number;
95
+ y: number;
96
+ };
97
+ };
98
+ }
99
+ export interface ExportCfg {
100
+ container: string;
101
+ videoCodec: string;
102
+ crf?: number;
103
+ preset?: string;
104
+ audioCodec: string;
105
+ audioBitrate?: string;
106
+ outFile?: string;
107
+ }
108
+ export interface Timeline {
109
+ tracks: Track[];
110
+ mix?: Mix;
111
+ }
112
+ export interface VideoProject {
113
+ version: string;
114
+ project: ProjectInfo;
115
+ settings: Settings;
116
+ assets: Asset[];
117
+ timeline: Timeline;
118
+ subtitles?: SubtitleItem[];
119
+ export: ExportCfg;
120
+ }
121
+ export declare const zVideoProject: z.ZodObject<{
122
+ version: z.ZodString;
123
+ project: z.ZodObject<{
124
+ name: z.ZodString;
125
+ id: z.ZodString;
126
+ }, "strip", z.ZodTypeAny, {
127
+ id: string;
128
+ name: string;
129
+ }, {
130
+ id: string;
131
+ name: string;
132
+ }>;
133
+ settings: z.ZodObject<{
134
+ fps: z.ZodNumber;
135
+ resolution: z.ZodObject<{
136
+ width: z.ZodNumber;
137
+ height: z.ZodNumber;
138
+ }, "strip", z.ZodTypeAny, {
139
+ width: number;
140
+ height: number;
141
+ }, {
142
+ width: number;
143
+ height: number;
144
+ }>;
145
+ pixelFormat: z.ZodString;
146
+ sampleRate: z.ZodNumber;
147
+ channels: z.ZodNumber;
148
+ timebase: z.ZodString;
149
+ }, "strip", z.ZodTypeAny, {
150
+ fps: number;
151
+ resolution: {
152
+ width: number;
153
+ height: number;
154
+ };
155
+ pixelFormat: string;
156
+ sampleRate: number;
157
+ channels: number;
158
+ timebase: string;
159
+ }, {
160
+ fps: number;
161
+ resolution: {
162
+ width: number;
163
+ height: number;
164
+ };
165
+ pixelFormat: string;
166
+ sampleRate: number;
167
+ channels: number;
168
+ timebase: string;
169
+ }>;
170
+ assets: z.ZodArray<z.ZodObject<{
171
+ id: z.ZodString;
172
+ type: z.ZodEnum<["video", "audio", "image"]>;
173
+ uri: z.ZodString;
174
+ durationMs: z.ZodOptional<z.ZodNumber>;
175
+ fps: z.ZodOptional<z.ZodNumber>;
176
+ }, "strip", z.ZodTypeAny, {
177
+ id: string;
178
+ type: "image" | "audio" | "video";
179
+ uri: string;
180
+ fps?: number | undefined;
181
+ durationMs?: number | undefined;
182
+ }, {
183
+ id: string;
184
+ type: "image" | "audio" | "video";
185
+ uri: string;
186
+ fps?: number | undefined;
187
+ durationMs?: number | undefined;
188
+ }>, "many">;
189
+ timeline: z.ZodObject<{
190
+ tracks: z.ZodArray<z.ZodObject<{
191
+ id: z.ZodString;
192
+ type: z.ZodEnum<["video", "audio", "subtitle"]>;
193
+ muted: z.ZodOptional<z.ZodBoolean>;
194
+ opacity: z.ZodOptional<z.ZodNumber>;
195
+ clips: z.ZodArray<z.ZodObject<{
196
+ id: z.ZodString;
197
+ assetId: z.ZodString;
198
+ startMs: z.ZodNumber;
199
+ inMs: z.ZodNumber;
200
+ durationMs: z.ZodNumber;
201
+ transform: z.ZodOptional<z.ZodObject<{
202
+ scale: z.ZodOptional<z.ZodNumber>;
203
+ rotate: z.ZodOptional<z.ZodNumber>;
204
+ anchor: z.ZodOptional<z.ZodEnum<["center", "topleft", "topright", "bottomleft", "bottomright"]>>;
205
+ position: z.ZodOptional<z.ZodObject<{
206
+ x: z.ZodNumber;
207
+ y: z.ZodNumber;
208
+ }, "strip", z.ZodTypeAny, {
209
+ x: number;
210
+ y: number;
211
+ }, {
212
+ x: number;
213
+ y: number;
214
+ }>>;
215
+ fit: z.ZodOptional<z.ZodEnum<["contain", "cover", "stretch"]>>;
216
+ }, "strip", z.ZodTypeAny, {
217
+ anchor?: "center" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
218
+ scale?: number | undefined;
219
+ rotate?: number | undefined;
220
+ position?: {
221
+ x: number;
222
+ y: number;
223
+ } | undefined;
224
+ fit?: "contain" | "cover" | "stretch" | undefined;
225
+ }, {
226
+ anchor?: "center" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
227
+ scale?: number | undefined;
228
+ rotate?: number | undefined;
229
+ position?: {
230
+ x: number;
231
+ y: number;
232
+ } | undefined;
233
+ fit?: "contain" | "cover" | "stretch" | undefined;
234
+ }>>;
235
+ speed: z.ZodOptional<z.ZodNumber>;
236
+ effects: z.ZodOptional<z.ZodArray<z.ZodObject<{
237
+ name: z.ZodString;
238
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
239
+ }, "strip", z.ZodTypeAny, {
240
+ name: string;
241
+ params?: Record<string, unknown> | undefined;
242
+ }, {
243
+ name: string;
244
+ params?: Record<string, unknown> | undefined;
245
+ }>, "many">>;
246
+ transitionIn: z.ZodOptional<z.ZodObject<{
247
+ name: z.ZodString;
248
+ durationMs: z.ZodNumber;
249
+ }, "strip", z.ZodTypeAny, {
250
+ name: string;
251
+ durationMs: number;
252
+ }, {
253
+ name: string;
254
+ durationMs: number;
255
+ }>>;
256
+ transitionOut: z.ZodOptional<z.ZodObject<{
257
+ name: z.ZodString;
258
+ durationMs: z.ZodNumber;
259
+ }, "strip", z.ZodTypeAny, {
260
+ name: string;
261
+ durationMs: number;
262
+ }, {
263
+ name: string;
264
+ durationMs: number;
265
+ }>>;
266
+ }, "strip", z.ZodTypeAny, {
267
+ id: string;
268
+ durationMs: number;
269
+ assetId: string;
270
+ startMs: number;
271
+ inMs: number;
272
+ speed?: number | undefined;
273
+ transform?: {
274
+ anchor?: "center" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
275
+ scale?: number | undefined;
276
+ rotate?: number | undefined;
277
+ position?: {
278
+ x: number;
279
+ y: number;
280
+ } | undefined;
281
+ fit?: "contain" | "cover" | "stretch" | undefined;
282
+ } | undefined;
283
+ effects?: {
284
+ name: string;
285
+ params?: Record<string, unknown> | undefined;
286
+ }[] | undefined;
287
+ transitionIn?: {
288
+ name: string;
289
+ durationMs: number;
290
+ } | undefined;
291
+ transitionOut?: {
292
+ name: string;
293
+ durationMs: number;
294
+ } | undefined;
295
+ }, {
296
+ id: string;
297
+ durationMs: number;
298
+ assetId: string;
299
+ startMs: number;
300
+ inMs: number;
301
+ speed?: number | undefined;
302
+ transform?: {
303
+ anchor?: "center" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
304
+ scale?: number | undefined;
305
+ rotate?: number | undefined;
306
+ position?: {
307
+ x: number;
308
+ y: number;
309
+ } | undefined;
310
+ fit?: "contain" | "cover" | "stretch" | undefined;
311
+ } | undefined;
312
+ effects?: {
313
+ name: string;
314
+ params?: Record<string, unknown> | undefined;
315
+ }[] | undefined;
316
+ transitionIn?: {
317
+ name: string;
318
+ durationMs: number;
319
+ } | undefined;
320
+ transitionOut?: {
321
+ name: string;
322
+ durationMs: number;
323
+ } | undefined;
324
+ }>, "many">;
325
+ }, "strip", z.ZodTypeAny, {
326
+ id: string;
327
+ type: "audio" | "video" | "subtitle";
328
+ clips: {
329
+ id: string;
330
+ durationMs: number;
331
+ assetId: string;
332
+ startMs: number;
333
+ inMs: number;
334
+ speed?: number | undefined;
335
+ transform?: {
336
+ anchor?: "center" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
337
+ scale?: number | undefined;
338
+ rotate?: number | undefined;
339
+ position?: {
340
+ x: number;
341
+ y: number;
342
+ } | undefined;
343
+ fit?: "contain" | "cover" | "stretch" | undefined;
344
+ } | undefined;
345
+ effects?: {
346
+ name: string;
347
+ params?: Record<string, unknown> | undefined;
348
+ }[] | undefined;
349
+ transitionIn?: {
350
+ name: string;
351
+ durationMs: number;
352
+ } | undefined;
353
+ transitionOut?: {
354
+ name: string;
355
+ durationMs: number;
356
+ } | undefined;
357
+ }[];
358
+ muted?: boolean | undefined;
359
+ opacity?: number | undefined;
360
+ }, {
361
+ id: string;
362
+ type: "audio" | "video" | "subtitle";
363
+ clips: {
364
+ id: string;
365
+ durationMs: number;
366
+ assetId: string;
367
+ startMs: number;
368
+ inMs: number;
369
+ speed?: number | undefined;
370
+ transform?: {
371
+ anchor?: "center" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
372
+ scale?: number | undefined;
373
+ rotate?: number | undefined;
374
+ position?: {
375
+ x: number;
376
+ y: number;
377
+ } | undefined;
378
+ fit?: "contain" | "cover" | "stretch" | undefined;
379
+ } | undefined;
380
+ effects?: {
381
+ name: string;
382
+ params?: Record<string, unknown> | undefined;
383
+ }[] | undefined;
384
+ transitionIn?: {
385
+ name: string;
386
+ durationMs: number;
387
+ } | undefined;
388
+ transitionOut?: {
389
+ name: string;
390
+ durationMs: number;
391
+ } | undefined;
392
+ }[];
393
+ muted?: boolean | undefined;
394
+ opacity?: number | undefined;
395
+ }>, "many">;
396
+ mix: z.ZodOptional<z.ZodObject<{
397
+ ducking: z.ZodOptional<z.ZodArray<z.ZodObject<{
398
+ id: z.ZodString;
399
+ musicTrackId: z.ZodString;
400
+ dialogTrackId: z.ZodString;
401
+ params: z.ZodOptional<z.ZodObject<{
402
+ threshold: z.ZodOptional<z.ZodNumber>;
403
+ ratio: z.ZodOptional<z.ZodNumber>;
404
+ attackMs: z.ZodOptional<z.ZodNumber>;
405
+ releaseMs: z.ZodOptional<z.ZodNumber>;
406
+ musicPreGain: z.ZodOptional<z.ZodNumber>;
407
+ }, "strip", z.ZodTypeAny, {
408
+ threshold?: number | undefined;
409
+ ratio?: number | undefined;
410
+ attackMs?: number | undefined;
411
+ releaseMs?: number | undefined;
412
+ musicPreGain?: number | undefined;
413
+ }, {
414
+ threshold?: number | undefined;
415
+ ratio?: number | undefined;
416
+ attackMs?: number | undefined;
417
+ releaseMs?: number | undefined;
418
+ musicPreGain?: number | undefined;
419
+ }>>;
420
+ }, "strip", z.ZodTypeAny, {
421
+ id: string;
422
+ musicTrackId: string;
423
+ dialogTrackId: string;
424
+ params?: {
425
+ threshold?: number | undefined;
426
+ ratio?: number | undefined;
427
+ attackMs?: number | undefined;
428
+ releaseMs?: number | undefined;
429
+ musicPreGain?: number | undefined;
430
+ } | undefined;
431
+ }, {
432
+ id: string;
433
+ musicTrackId: string;
434
+ dialogTrackId: string;
435
+ params?: {
436
+ threshold?: number | undefined;
437
+ ratio?: number | undefined;
438
+ attackMs?: number | undefined;
439
+ releaseMs?: number | undefined;
440
+ musicPreGain?: number | undefined;
441
+ } | undefined;
442
+ }>, "many">>;
443
+ }, "strip", z.ZodTypeAny, {
444
+ ducking?: {
445
+ id: string;
446
+ musicTrackId: string;
447
+ dialogTrackId: string;
448
+ params?: {
449
+ threshold?: number | undefined;
450
+ ratio?: number | undefined;
451
+ attackMs?: number | undefined;
452
+ releaseMs?: number | undefined;
453
+ musicPreGain?: number | undefined;
454
+ } | undefined;
455
+ }[] | undefined;
456
+ }, {
457
+ ducking?: {
458
+ id: string;
459
+ musicTrackId: string;
460
+ dialogTrackId: string;
461
+ params?: {
462
+ threshold?: number | undefined;
463
+ ratio?: number | undefined;
464
+ attackMs?: number | undefined;
465
+ releaseMs?: number | undefined;
466
+ musicPreGain?: number | undefined;
467
+ } | undefined;
468
+ }[] | undefined;
469
+ }>>;
470
+ }, "strip", z.ZodTypeAny, {
471
+ tracks: {
472
+ id: string;
473
+ type: "audio" | "video" | "subtitle";
474
+ clips: {
475
+ id: string;
476
+ durationMs: number;
477
+ assetId: string;
478
+ startMs: number;
479
+ inMs: number;
480
+ speed?: number | undefined;
481
+ transform?: {
482
+ anchor?: "center" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
483
+ scale?: number | undefined;
484
+ rotate?: number | undefined;
485
+ position?: {
486
+ x: number;
487
+ y: number;
488
+ } | undefined;
489
+ fit?: "contain" | "cover" | "stretch" | undefined;
490
+ } | undefined;
491
+ effects?: {
492
+ name: string;
493
+ params?: Record<string, unknown> | undefined;
494
+ }[] | undefined;
495
+ transitionIn?: {
496
+ name: string;
497
+ durationMs: number;
498
+ } | undefined;
499
+ transitionOut?: {
500
+ name: string;
501
+ durationMs: number;
502
+ } | undefined;
503
+ }[];
504
+ muted?: boolean | undefined;
505
+ opacity?: number | undefined;
506
+ }[];
507
+ mix?: {
508
+ ducking?: {
509
+ id: string;
510
+ musicTrackId: string;
511
+ dialogTrackId: string;
512
+ params?: {
513
+ threshold?: number | undefined;
514
+ ratio?: number | undefined;
515
+ attackMs?: number | undefined;
516
+ releaseMs?: number | undefined;
517
+ musicPreGain?: number | undefined;
518
+ } | undefined;
519
+ }[] | undefined;
520
+ } | undefined;
521
+ }, {
522
+ tracks: {
523
+ id: string;
524
+ type: "audio" | "video" | "subtitle";
525
+ clips: {
526
+ id: string;
527
+ durationMs: number;
528
+ assetId: string;
529
+ startMs: number;
530
+ inMs: number;
531
+ speed?: number | undefined;
532
+ transform?: {
533
+ anchor?: "center" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
534
+ scale?: number | undefined;
535
+ rotate?: number | undefined;
536
+ position?: {
537
+ x: number;
538
+ y: number;
539
+ } | undefined;
540
+ fit?: "contain" | "cover" | "stretch" | undefined;
541
+ } | undefined;
542
+ effects?: {
543
+ name: string;
544
+ params?: Record<string, unknown> | undefined;
545
+ }[] | undefined;
546
+ transitionIn?: {
547
+ name: string;
548
+ durationMs: number;
549
+ } | undefined;
550
+ transitionOut?: {
551
+ name: string;
552
+ durationMs: number;
553
+ } | undefined;
554
+ }[];
555
+ muted?: boolean | undefined;
556
+ opacity?: number | undefined;
557
+ }[];
558
+ mix?: {
559
+ ducking?: {
560
+ id: string;
561
+ musicTrackId: string;
562
+ dialogTrackId: string;
563
+ params?: {
564
+ threshold?: number | undefined;
565
+ ratio?: number | undefined;
566
+ attackMs?: number | undefined;
567
+ releaseMs?: number | undefined;
568
+ musicPreGain?: number | undefined;
569
+ } | undefined;
570
+ }[] | undefined;
571
+ } | undefined;
572
+ }>;
573
+ subtitles: z.ZodOptional<z.ZodArray<z.ZodObject<{
574
+ id: z.ZodString;
575
+ text: z.ZodString;
576
+ startMs: z.ZodNumber;
577
+ endMs: z.ZodNumber;
578
+ audio: z.ZodOptional<z.ZodString>;
579
+ style: z.ZodOptional<z.ZodObject<{
580
+ fontFamily: z.ZodOptional<z.ZodString>;
581
+ fontSize: z.ZodOptional<z.ZodNumber>;
582
+ bold: z.ZodOptional<z.ZodBoolean>;
583
+ color: z.ZodOptional<z.ZodString>;
584
+ outlineColor: z.ZodOptional<z.ZodString>;
585
+ outlineWidth: z.ZodOptional<z.ZodNumber>;
586
+ align: z.ZodOptional<z.ZodEnum<["left", "center", "right"]>>;
587
+ position: z.ZodOptional<z.ZodObject<{
588
+ x: z.ZodNumber;
589
+ y: z.ZodNumber;
590
+ }, "strip", z.ZodTypeAny, {
591
+ x: number;
592
+ y: number;
593
+ }, {
594
+ x: number;
595
+ y: number;
596
+ }>>;
597
+ }, "strip", z.ZodTypeAny, {
598
+ color?: string | undefined;
599
+ bold?: boolean | undefined;
600
+ position?: {
601
+ x: number;
602
+ y: number;
603
+ } | undefined;
604
+ fontFamily?: string | undefined;
605
+ fontSize?: number | undefined;
606
+ outlineColor?: string | undefined;
607
+ outlineWidth?: number | undefined;
608
+ align?: "center" | "left" | "right" | undefined;
609
+ }, {
610
+ color?: string | undefined;
611
+ bold?: boolean | undefined;
612
+ position?: {
613
+ x: number;
614
+ y: number;
615
+ } | undefined;
616
+ fontFamily?: string | undefined;
617
+ fontSize?: number | undefined;
618
+ outlineColor?: string | undefined;
619
+ outlineWidth?: number | undefined;
620
+ align?: "center" | "left" | "right" | undefined;
621
+ }>>;
622
+ }, "strip", z.ZodTypeAny, {
623
+ id: string;
624
+ text: string;
625
+ startMs: number;
626
+ endMs: number;
627
+ audio?: string | undefined;
628
+ style?: {
629
+ color?: string | undefined;
630
+ bold?: boolean | undefined;
631
+ position?: {
632
+ x: number;
633
+ y: number;
634
+ } | undefined;
635
+ fontFamily?: string | undefined;
636
+ fontSize?: number | undefined;
637
+ outlineColor?: string | undefined;
638
+ outlineWidth?: number | undefined;
639
+ align?: "center" | "left" | "right" | undefined;
640
+ } | undefined;
641
+ }, {
642
+ id: string;
643
+ text: string;
644
+ startMs: number;
645
+ endMs: number;
646
+ audio?: string | undefined;
647
+ style?: {
648
+ color?: string | undefined;
649
+ bold?: boolean | undefined;
650
+ position?: {
651
+ x: number;
652
+ y: number;
653
+ } | undefined;
654
+ fontFamily?: string | undefined;
655
+ fontSize?: number | undefined;
656
+ outlineColor?: string | undefined;
657
+ outlineWidth?: number | undefined;
658
+ align?: "center" | "left" | "right" | undefined;
659
+ } | undefined;
660
+ }>, "many">>;
661
+ export: z.ZodObject<{
662
+ container: z.ZodString;
663
+ videoCodec: z.ZodString;
664
+ crf: z.ZodOptional<z.ZodNumber>;
665
+ preset: z.ZodOptional<z.ZodString>;
666
+ audioCodec: z.ZodString;
667
+ audioBitrate: z.ZodOptional<z.ZodString>;
668
+ outFile: z.ZodOptional<z.ZodString>;
669
+ }, "strip", z.ZodTypeAny, {
670
+ container: string;
671
+ videoCodec: string;
672
+ audioCodec: string;
673
+ crf?: number | undefined;
674
+ preset?: string | undefined;
675
+ audioBitrate?: string | undefined;
676
+ outFile?: string | undefined;
677
+ }, {
678
+ container: string;
679
+ videoCodec: string;
680
+ audioCodec: string;
681
+ crf?: number | undefined;
682
+ preset?: string | undefined;
683
+ audioBitrate?: string | undefined;
684
+ outFile?: string | undefined;
685
+ }>;
686
+ }, "strip", z.ZodTypeAny, {
687
+ version: string;
688
+ project: {
689
+ id: string;
690
+ name: string;
691
+ };
692
+ settings: {
693
+ fps: number;
694
+ resolution: {
695
+ width: number;
696
+ height: number;
697
+ };
698
+ pixelFormat: string;
699
+ sampleRate: number;
700
+ channels: number;
701
+ timebase: string;
702
+ };
703
+ assets: {
704
+ id: string;
705
+ type: "image" | "audio" | "video";
706
+ uri: string;
707
+ fps?: number | undefined;
708
+ durationMs?: number | undefined;
709
+ }[];
710
+ timeline: {
711
+ tracks: {
712
+ id: string;
713
+ type: "audio" | "video" | "subtitle";
714
+ clips: {
715
+ id: string;
716
+ durationMs: number;
717
+ assetId: string;
718
+ startMs: number;
719
+ inMs: number;
720
+ speed?: number | undefined;
721
+ transform?: {
722
+ anchor?: "center" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
723
+ scale?: number | undefined;
724
+ rotate?: number | undefined;
725
+ position?: {
726
+ x: number;
727
+ y: number;
728
+ } | undefined;
729
+ fit?: "contain" | "cover" | "stretch" | undefined;
730
+ } | undefined;
731
+ effects?: {
732
+ name: string;
733
+ params?: Record<string, unknown> | undefined;
734
+ }[] | undefined;
735
+ transitionIn?: {
736
+ name: string;
737
+ durationMs: number;
738
+ } | undefined;
739
+ transitionOut?: {
740
+ name: string;
741
+ durationMs: number;
742
+ } | undefined;
743
+ }[];
744
+ muted?: boolean | undefined;
745
+ opacity?: number | undefined;
746
+ }[];
747
+ mix?: {
748
+ ducking?: {
749
+ id: string;
750
+ musicTrackId: string;
751
+ dialogTrackId: string;
752
+ params?: {
753
+ threshold?: number | undefined;
754
+ ratio?: number | undefined;
755
+ attackMs?: number | undefined;
756
+ releaseMs?: number | undefined;
757
+ musicPreGain?: number | undefined;
758
+ } | undefined;
759
+ }[] | undefined;
760
+ } | undefined;
761
+ };
762
+ export: {
763
+ container: string;
764
+ videoCodec: string;
765
+ audioCodec: string;
766
+ crf?: number | undefined;
767
+ preset?: string | undefined;
768
+ audioBitrate?: string | undefined;
769
+ outFile?: string | undefined;
770
+ };
771
+ subtitles?: {
772
+ id: string;
773
+ text: string;
774
+ startMs: number;
775
+ endMs: number;
776
+ audio?: string | undefined;
777
+ style?: {
778
+ color?: string | undefined;
779
+ bold?: boolean | undefined;
780
+ position?: {
781
+ x: number;
782
+ y: number;
783
+ } | undefined;
784
+ fontFamily?: string | undefined;
785
+ fontSize?: number | undefined;
786
+ outlineColor?: string | undefined;
787
+ outlineWidth?: number | undefined;
788
+ align?: "center" | "left" | "right" | undefined;
789
+ } | undefined;
790
+ }[] | undefined;
791
+ }, {
792
+ version: string;
793
+ project: {
794
+ id: string;
795
+ name: string;
796
+ };
797
+ settings: {
798
+ fps: number;
799
+ resolution: {
800
+ width: number;
801
+ height: number;
802
+ };
803
+ pixelFormat: string;
804
+ sampleRate: number;
805
+ channels: number;
806
+ timebase: string;
807
+ };
808
+ assets: {
809
+ id: string;
810
+ type: "image" | "audio" | "video";
811
+ uri: string;
812
+ fps?: number | undefined;
813
+ durationMs?: number | undefined;
814
+ }[];
815
+ timeline: {
816
+ tracks: {
817
+ id: string;
818
+ type: "audio" | "video" | "subtitle";
819
+ clips: {
820
+ id: string;
821
+ durationMs: number;
822
+ assetId: string;
823
+ startMs: number;
824
+ inMs: number;
825
+ speed?: number | undefined;
826
+ transform?: {
827
+ anchor?: "center" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
828
+ scale?: number | undefined;
829
+ rotate?: number | undefined;
830
+ position?: {
831
+ x: number;
832
+ y: number;
833
+ } | undefined;
834
+ fit?: "contain" | "cover" | "stretch" | undefined;
835
+ } | undefined;
836
+ effects?: {
837
+ name: string;
838
+ params?: Record<string, unknown> | undefined;
839
+ }[] | undefined;
840
+ transitionIn?: {
841
+ name: string;
842
+ durationMs: number;
843
+ } | undefined;
844
+ transitionOut?: {
845
+ name: string;
846
+ durationMs: number;
847
+ } | undefined;
848
+ }[];
849
+ muted?: boolean | undefined;
850
+ opacity?: number | undefined;
851
+ }[];
852
+ mix?: {
853
+ ducking?: {
854
+ id: string;
855
+ musicTrackId: string;
856
+ dialogTrackId: string;
857
+ params?: {
858
+ threshold?: number | undefined;
859
+ ratio?: number | undefined;
860
+ attackMs?: number | undefined;
861
+ releaseMs?: number | undefined;
862
+ musicPreGain?: number | undefined;
863
+ } | undefined;
864
+ }[] | undefined;
865
+ } | undefined;
866
+ };
867
+ export: {
868
+ container: string;
869
+ videoCodec: string;
870
+ audioCodec: string;
871
+ crf?: number | undefined;
872
+ preset?: string | undefined;
873
+ audioBitrate?: string | undefined;
874
+ outFile?: string | undefined;
875
+ };
876
+ subtitles?: {
877
+ id: string;
878
+ text: string;
879
+ startMs: number;
880
+ endMs: number;
881
+ audio?: string | undefined;
882
+ style?: {
883
+ color?: string | undefined;
884
+ bold?: boolean | undefined;
885
+ position?: {
886
+ x: number;
887
+ y: number;
888
+ } | undefined;
889
+ fontFamily?: string | undefined;
890
+ fontSize?: number | undefined;
891
+ outlineColor?: string | undefined;
892
+ outlineWidth?: number | undefined;
893
+ align?: "center" | "left" | "right" | undefined;
894
+ } | undefined;
895
+ }[] | undefined;
896
+ }>;
897
+ export type VideoProjectValidated = z.infer<typeof zVideoProject>;
898
+ export declare function validateProject(json: unknown): VideoProjectValidated;
899
+ export declare function hasLibass(ffmpegBin?: string): boolean;
900
+ export type SubtitleStrategy = 'auto' | 'ass' | 'srt' | 'drawtext';
901
+ export interface CompileOptions {
902
+ ffmpegBin?: string;
903
+ workingDir?: string;
904
+ subtitleStrategy?: SubtitleStrategy;
905
+ subtitlesFileName?: string;
906
+ outFile?: string;
907
+ }
908
+ export interface CompileResult {
909
+ cmd: string;
910
+ args: string[];
911
+ filterGraph: string;
912
+ extraFiles?: Array<{
913
+ path: string;
914
+ content: string;
915
+ }>;
916
+ ffmpegBin: string;
917
+ }
918
+ export declare function compileToFfmpeg(project: VideoProjectValidated, opts?: CompileOptions): CompileResult;
919
+ export declare function runFfmpeg(compiled: CompileResult, writeFiles?: boolean): Promise<number>;
920
+ export declare function escapeDrawtextText(s: string): string;
921
+ //# sourceMappingURL=videokit.d.ts.map