@shotstack/shotstack-studio 1.3.0 → 1.4.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 (58) hide show
  1. package/dist/shotstack-studio.es.js +4912 -4754
  2. package/dist/shotstack-studio.umd.js +7 -7
  3. package/dist/src/components/canvas/index.d.ts +14 -0
  4. package/dist/{core/entities → src/components/canvas}/players/audio-player.d.ts +4 -4
  5. package/dist/{core/entities → src/components/canvas}/players/html-player.d.ts +4 -4
  6. package/dist/{core/entities → src/components/canvas}/players/image-player.d.ts +4 -4
  7. package/dist/{core/entities → src/components/canvas}/players/luma-player.d.ts +4 -4
  8. package/dist/{core/entities/base → src/components/canvas/players}/player.d.ts +5 -4
  9. package/dist/{core/entities → src/components/canvas}/players/shape-player.d.ts +4 -4
  10. package/dist/{core/entities → src/components/canvas}/players/text-player.d.ts +1 -1
  11. package/dist/{core/entities → src/components/canvas}/players/video-player.d.ts +4 -4
  12. package/dist/{core → src/components/canvas}/shotstack-canvas.d.ts +2 -2
  13. package/dist/{core/entities → src/components/canvas}/system/inspector.d.ts +1 -1
  14. package/dist/{core/entities → src/components/canvas}/text/text-editor.d.ts +1 -1
  15. package/dist/src/core/commands/add-clip-command.d.ts +14 -0
  16. package/dist/src/core/commands/add-track-command.d.ts +8 -0
  17. package/dist/src/core/commands/delete-clip-command.d.ts +10 -0
  18. package/dist/src/core/commands/delete-track-command.d.ts +9 -0
  19. package/dist/src/core/commands/set-updated-clip-command.d.ts +17 -0
  20. package/dist/src/core/commands/types.d.ts +25 -0
  21. package/dist/src/core/commands/update-text-content-command.d.ts +16 -0
  22. package/dist/{core/entities/system → src/core}/edit.d.ts +13 -7
  23. package/dist/{core → src/core}/export/video-exporter.d.ts +2 -2
  24. package/dist/{core → src/core}/inputs/controls.d.ts +1 -1
  25. package/dist/{core → src/core}/schemas/asset.d.ts +42 -38
  26. package/dist/{core → src/core}/schemas/audio-asset.d.ts +18 -14
  27. package/dist/{core → src/core}/schemas/clip.d.ts +113 -99
  28. package/dist/{core → src/core}/schemas/edit.d.ts +372 -344
  29. package/dist/{core → src/core}/schemas/track.d.ts +141 -127
  30. package/dist/{core → src/core}/schemas/video-asset.d.ts +18 -14
  31. package/dist/src/index.d.ts +4 -0
  32. package/dist/vite.config.d.ts +2 -0
  33. package/package.json +1 -1
  34. package/readme.md +10 -0
  35. package/dist/core/entities/index.d.ts +0 -14
  36. package/dist/index.d.ts +0 -4
  37. package/dist/{core/entities → src/components/canvas}/text/text-cursor.d.ts +0 -0
  38. package/dist/{core/entities → src/components/canvas}/text/text-input-handler.d.ts +0 -0
  39. package/dist/{core → src/core}/animations/curve-interpolator.d.ts +0 -0
  40. package/dist/{core → src/core}/animations/effect-preset-builder.d.ts +0 -0
  41. package/dist/{core → src/core}/animations/keyframe-builder.d.ts +0 -0
  42. package/dist/{core → src/core}/animations/transition-preset-builder.d.ts +0 -0
  43. package/dist/{core → src/core}/events/asset-load-tracker.d.ts +0 -0
  44. package/dist/{core → src/core}/events/event-emitter.d.ts +0 -0
  45. package/dist/{core → src/core}/inputs/pointer.d.ts +0 -0
  46. package/dist/{core → src/core}/layouts/geometry.d.ts +0 -0
  47. package/dist/{core → src/core}/layouts/position-builder.d.ts +0 -0
  48. package/dist/{core → src/core}/loaders/asset-loader.d.ts +0 -0
  49. package/dist/{core → src/core}/loaders/audio-load-parser.d.ts +0 -0
  50. package/dist/{core → src/core}/loaders/font-load-parser.d.ts +0 -0
  51. package/dist/{core → src/core}/schemas/html-asset.d.ts +2 -2
  52. package/dist/{core → src/core}/schemas/image-asset.d.ts +2 -2
  53. package/dist/{core → src/core}/schemas/keyframe.d.ts +2 -2
  54. package/dist/{core → src/core}/schemas/luma-asset.d.ts +2 -2
  55. /package/dist/{core → src/core}/schemas/shape-asset.d.ts +0 -0
  56. /package/dist/{core → src/core}/schemas/text-asset.d.ts +0 -0
  57. /package/dist/{core/entities/base → src/core/shared}/entity.d.ts +0 -0
  58. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
@@ -0,0 +1,14 @@
1
+ export { Entity } from "@core/shared/entity";
2
+ export { Player } from "./players/player";
3
+ export { AudioPlayer } from "./players/audio-player";
4
+ export { HtmlPlayer } from "./players/html-player";
5
+ export { ImagePlayer } from "./players/image-player";
6
+ export { LumaPlayer } from "./players/luma-player";
7
+ export { ShapePlayer } from "./players/shape-player";
8
+ export { TextPlayer } from "./players/text-player";
9
+ export { VideoPlayer } from "./players/video-player";
10
+ export { TextCursor } from "./text/text-cursor";
11
+ export { TextEditor } from "./text/text-editor";
12
+ export { TextInputHandler } from "./text/text-input-handler";
13
+ export { Edit } from "@core/edit";
14
+ export { Inspector } from "./system/inspector";
@@ -1,7 +1,7 @@
1
- import { type Size } from "../../layouts/geometry";
2
- import { type Clip } from "../../schemas/clip";
3
- import { Player } from "../base/player";
4
- import type { Edit } from "../system/edit";
1
+ import type { Edit } from "@core/edit";
2
+ import { type Size } from "@layouts/geometry";
3
+ import { type Clip } from "@schemas/clip";
4
+ import { Player } from "./player";
5
5
  export declare class AudioPlayer extends Player {
6
6
  private audioResource;
7
7
  private isPlaying;
@@ -1,7 +1,7 @@
1
- import { type Size } from "../../layouts/geometry";
2
- import { type Clip } from "../../schemas/clip";
3
- import { Player } from "../base/player";
4
- import type { Edit } from "../system/edit";
1
+ import { type Size } from "@layouts/geometry";
2
+ import { type Clip } from "@schemas/clip";
3
+ import type { Edit } from "core/edit";
4
+ import { Player } from "./player";
5
5
  export declare class HtmlPlayer extends Player {
6
6
  private background;
7
7
  private text;
@@ -1,7 +1,7 @@
1
- import { type Size } from "../../layouts/geometry";
2
- import { type Clip } from "../../schemas/clip";
3
- import { Player } from "../base/player";
4
- import type { Edit } from "../system/edit";
1
+ import type { Edit } from "@core/edit";
2
+ import { type Size } from "@layouts/geometry";
3
+ import { type Clip } from "@schemas/clip";
4
+ import { Player } from "./player";
5
5
  export declare class ImagePlayer extends Player {
6
6
  private texture;
7
7
  private sprite;
@@ -1,8 +1,8 @@
1
+ import type { Edit } from "@core/edit";
2
+ import { type Size } from "@layouts/geometry";
3
+ import { type Clip } from "@schemas/clip";
1
4
  import * as pixi from "pixi.js";
2
- import { type Size } from "../../layouts/geometry";
3
- import { type Clip } from "../../schemas/clip";
4
- import { Player } from "../base/player";
5
- import type { Edit } from "../system/edit";
5
+ import { Player } from "./player";
6
6
  export declare class LumaPlayer extends Player {
7
7
  private texture;
8
8
  private sprite;
@@ -1,7 +1,7 @@
1
- import { type Size, type Vector } from "../../layouts/geometry";
2
- import { type Clip } from "../../schemas/clip";
3
- import { type Edit } from "../system/edit";
4
- import { Entity } from "./entity";
1
+ import { type Edit } from "@core/edit";
2
+ import { type Size, type Vector } from "@layouts/geometry";
3
+ import { type Clip } from "@schemas/clip";
4
+ import { Entity } from "../../../core/shared/entity";
5
5
  /**
6
6
  * TODO: Move handles on UI level (screen space)
7
7
  * TODO: Handle overlapping frames - ex: length of a clip is 1.5s but there's an in (1s) and out (1s) transition
@@ -46,6 +46,7 @@ export declare abstract class Player extends Entity {
46
46
  private rotationOffset;
47
47
  private initialClipConfiguration;
48
48
  constructor(edit: Edit, clipConfiguration: Clip);
49
+ reconfigureAfterRestore(): void;
49
50
  protected configureKeyframes(): void;
50
51
  load(): Promise<void>;
51
52
  update(_: number, __: number): void;
@@ -1,7 +1,7 @@
1
- import { type Size } from "../../layouts/geometry";
2
- import { type Clip } from "../../schemas/clip";
3
- import { Player } from "../base/player";
4
- import type { Edit } from "../system/edit";
1
+ import type { Edit } from "@core/edit";
2
+ import { type Size } from "@layouts/geometry";
3
+ import { type Clip } from "@schemas/clip";
4
+ import { Player } from "./player";
5
5
  export declare class ShapePlayer extends Player {
6
6
  private shape;
7
7
  private shapeBackground;
@@ -1,4 +1,4 @@
1
- import { Player } from "@entities/base/player";
1
+ import { Player } from "@canvas/players/player";
2
2
  import { type Size } from "@layouts/geometry";
3
3
  import { type Clip } from "@schemas/clip";
4
4
  /**
@@ -1,7 +1,7 @@
1
- import { type Size } from "../../layouts/geometry";
2
- import { type Clip } from "../../schemas/clip";
3
- import { Player } from "../base/player";
4
- import type { Edit } from "../system/edit";
1
+ import type { Edit } from "@core/edit";
2
+ import { type Size } from "@layouts/geometry";
3
+ import { type Clip } from "@schemas/clip";
4
+ import { Player } from "./player";
5
5
  export declare class VideoPlayer extends Player {
6
6
  private texture;
7
7
  private sprite;
@@ -1,5 +1,5 @@
1
- import { Edit } from "@entities/system/edit";
2
- import { type Size } from "./layouts/geometry";
1
+ import { Edit } from "@core/edit";
2
+ import { type Size } from "@layouts/geometry";
3
3
  export declare class Canvas {
4
4
  private static extensionsRegistered;
5
5
  private readonly size;
@@ -1,4 +1,4 @@
1
- import { Entity } from "../base/entity";
1
+ import { Entity } from "@core/shared/entity";
2
2
  export declare class Inspector extends Entity {
3
3
  private static readonly Width;
4
4
  private static readonly Height;
@@ -1,4 +1,4 @@
1
- import type { TextPlayer } from "@entities/players/text-player";
1
+ import type { TextPlayer } from "@canvas/players/text-player";
2
2
  import { type Clip } from "@schemas/clip";
3
3
  import * as pixi from "pixi.js";
4
4
  export declare enum HorizontalAlignment {
@@ -0,0 +1,14 @@
1
+ import { ClipSchema } from "@schemas/clip";
2
+ import type { z } from "zod";
3
+ import type { EditCommand, CommandContext } from "./types";
4
+ type ClipType = z.infer<typeof ClipSchema>;
5
+ export declare class AddClipCommand implements EditCommand {
6
+ private trackIdx;
7
+ private clip;
8
+ name: string;
9
+ private addedPlayer?;
10
+ constructor(trackIdx: number, clip: ClipType);
11
+ execute(context?: CommandContext): Promise<void>;
12
+ undo(context?: CommandContext): Promise<void>;
13
+ }
14
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { EditCommand, CommandContext } from "./types";
2
+ export declare class AddTrackCommand implements EditCommand {
3
+ private trackIdx;
4
+ name: string;
5
+ constructor(trackIdx: number);
6
+ execute(context?: CommandContext): void;
7
+ undo(context?: CommandContext): void;
8
+ }
@@ -0,0 +1,10 @@
1
+ import type { EditCommand, CommandContext } from "./types";
2
+ export declare class DeleteClipCommand implements EditCommand {
3
+ private trackIdx;
4
+ private clipIdx;
5
+ name: string;
6
+ private deletedClip?;
7
+ constructor(trackIdx: number, clipIdx: number);
8
+ execute(context?: CommandContext): void;
9
+ undo(context?: CommandContext): void;
10
+ }
@@ -0,0 +1,9 @@
1
+ import type { EditCommand, CommandContext } from "./types";
2
+ export declare class DeleteTrackCommand implements EditCommand {
3
+ private trackIdx;
4
+ name: string;
5
+ private deletedClips;
6
+ constructor(trackIdx: number);
7
+ execute(context?: CommandContext): void;
8
+ undo(context?: CommandContext): Promise<void>;
9
+ }
@@ -0,0 +1,17 @@
1
+ import type { Player } from "@canvas/players/player";
2
+ import { ClipSchema } from "@schemas/clip";
3
+ import { z } from "zod";
4
+ import type { EditCommand, CommandContext } from "./types";
5
+ type ClipType = z.infer<typeof ClipSchema>;
6
+ export declare class SetUpdatedClipCommand implements EditCommand {
7
+ private clip;
8
+ private initialClipConfig;
9
+ private finalClipConfig;
10
+ name: string;
11
+ private storedInitialConfig;
12
+ private storedFinalConfig;
13
+ constructor(clip: Player, initialClipConfig: ClipType | null, finalClipConfig: ClipType | null);
14
+ execute(context?: CommandContext): void;
15
+ undo(context?: CommandContext): void;
16
+ }
17
+ export {};
@@ -0,0 +1,25 @@
1
+ import type { Player } from "@canvas/players/player";
2
+ import type { ClipSchema } from "@schemas/clip";
3
+ import type { Container } from "pixi.js";
4
+ import type { z } from "zod";
5
+ type ClipType = z.infer<typeof ClipSchema>;
6
+ export type EditCommand = {
7
+ execute(context?: CommandContext): void | Promise<void>;
8
+ undo?(context?: CommandContext): void | Promise<void>;
9
+ readonly name: string;
10
+ };
11
+ export type CommandContext = {
12
+ getClips(): Player[];
13
+ getTracks(): Player[][];
14
+ getContainer(): Container;
15
+ addPlayer(trackIdx: number, player: Player): Promise<void>;
16
+ createPlayerFromAssetType(clipConfiguration: ClipType): Player;
17
+ queueDisposeClip(player: Player): void;
18
+ disposeClips(): void;
19
+ undeleteClip(trackIdx: number, clip: Player): void;
20
+ setUpdatedClip(clip: Player): void;
21
+ restoreClipConfiguration(clip: Player, previousConfig: ClipType): void;
22
+ updateDuration(): void;
23
+ emitEvent(name: string, data: unknown): void;
24
+ };
25
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { Player } from "@canvas/players/player";
2
+ import type { ClipSchema } from "@schemas/clip";
3
+ import type { z } from "zod";
4
+ import type { EditCommand, CommandContext } from "./types";
5
+ type ClipType = z.infer<typeof ClipSchema>;
6
+ export declare class UpdateTextContentCommand implements EditCommand {
7
+ private clip;
8
+ private newText;
9
+ private initialConfig;
10
+ name: string;
11
+ private previousText;
12
+ constructor(clip: Player, newText: string, initialConfig: ClipType);
13
+ execute(context?: CommandContext): void;
14
+ undo(context?: CommandContext): void;
15
+ }
16
+ export {};
@@ -1,11 +1,11 @@
1
+ import { EventEmitter } from "@core/events/event-emitter";
2
+ import { Entity } from "@core/shared/entity";
3
+ import type { Size } from "@layouts/geometry";
4
+ import { AssetLoader } from "@loaders/asset-loader";
5
+ import { ClipSchema } from "@schemas/clip";
6
+ import { EditSchema } from "@schemas/edit";
7
+ import { TrackSchema } from "@schemas/track";
1
8
  import { z } from "zod";
2
- import { EventEmitter } from "../../events/event-emitter";
3
- import type { Size } from "../../layouts/geometry";
4
- import { AssetLoader } from "../../loaders/asset-loader";
5
- import { ClipSchema } from "../../schemas/clip";
6
- import { EditSchema } from "../../schemas/edit";
7
- import { TrackSchema } from "../../schemas/track";
8
- import { Entity } from "../base/entity";
9
9
  type EditType = z.infer<typeof EditSchema>;
10
10
  type ClipType = z.infer<typeof ClipSchema>;
11
11
  type TrackType = z.infer<typeof TrackSchema>;
@@ -17,6 +17,8 @@ export declare class Edit extends Entity {
17
17
  private tracks;
18
18
  private clipsToDispose;
19
19
  private clips;
20
+ private commandHistory;
21
+ private commandIndex;
20
22
  playbackTime: number;
21
23
  totalDuration: number;
22
24
  constructor(size: Size, backgroundColor?: string);
@@ -34,6 +36,10 @@ export declare class Edit extends Entity {
34
36
  getTrack(trackIdx: number): TrackType | null;
35
37
  deleteTrack(trackIdx: number): void;
36
38
  getTotalDuration(): number;
39
+ undo(): void;
40
+ redo(): void;
41
+ private executeCommand;
42
+ private createCommandContext;
37
43
  private queueDisposeClip;
38
44
  protected disposeClips(): void;
39
45
  private disposeClip;
@@ -1,5 +1,5 @@
1
- import { Edit } from "@entities/system/edit";
2
- import { Canvas } from "../shotstack-canvas";
1
+ import { Canvas } from "@canvas/shotstack-canvas";
2
+ import { Edit } from "@core/edit";
3
3
  export declare class VideoExporter {
4
4
  private readonly ffmpeg;
5
5
  private isReady;
@@ -1,4 +1,4 @@
1
- import { Edit } from "@entities/system/edit";
1
+ import { Edit } from "@core/edit";
2
2
  export declare class Controls {
3
3
  private edit;
4
4
  private seekDistance;
@@ -257,15 +257,15 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
257
257
  height: zod.ZodOptional<zod.ZodNumber>;
258
258
  position: zod.ZodOptional<zod.ZodEnum<["top", "topRight", "right", "bottomRight", "bottom", "bottomLeft", "left", "topLeft", "center"]>>;
259
259
  }, "strip", zod.ZodTypeAny, {
260
- html: string;
261
260
  type: "html";
261
+ html: string;
262
262
  css: string;
263
263
  width?: number | undefined;
264
264
  height?: number | undefined;
265
265
  position?: "top" | "topRight" | "right" | "bottomRight" | "bottom" | "bottomLeft" | "left" | "topLeft" | "center" | undefined;
266
266
  }, {
267
- html: string;
268
267
  type: "html";
268
+ html: string;
269
269
  css: string;
270
270
  width?: number | undefined;
271
271
  height?: number | undefined;
@@ -290,8 +290,8 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
290
290
  left?: number | undefined;
291
291
  }>>;
292
292
  }, "strip", zod.ZodTypeAny, {
293
- src: string;
294
293
  type: "image";
294
+ src: string;
295
295
  crop?: {
296
296
  top?: number | undefined;
297
297
  right?: number | undefined;
@@ -299,8 +299,8 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
299
299
  left?: number | undefined;
300
300
  } | undefined;
301
301
  }, {
302
- src: string;
303
302
  type: "image";
303
+ src: string;
304
304
  crop?: {
305
305
  top?: number | undefined;
306
306
  right?: number | undefined;
@@ -327,38 +327,40 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
327
327
  bottom?: number | undefined;
328
328
  left?: number | undefined;
329
329
  }>>;
330
- volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
330
+ volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
331
+ from: zod.ZodNumber;
332
+ to: zod.ZodNumber;
331
333
  start: zod.ZodNumber;
332
334
  length: zod.ZodNumber;
333
335
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
334
336
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
335
- } & {
337
+ }, {
336
338
  from: zod.ZodNumber;
337
339
  to: zod.ZodNumber;
338
- }, "strip", zod.ZodTypeAny, {
339
- length: number;
340
+ }>, "strip", zod.ZodTypeAny, {
340
341
  from: number;
341
342
  to: number;
342
343
  start: number;
344
+ length: number;
343
345
  interpolation?: "linear" | "bezier" | "constant" | undefined;
344
346
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
345
347
  }, {
346
- length: number;
347
348
  from: number;
348
349
  to: number;
349
350
  start: number;
351
+ length: number;
350
352
  interpolation?: "linear" | "bezier" | "constant" | undefined;
351
353
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
352
354
  }>, "many">, zod.ZodNumber]>>;
353
355
  }, "strip", zod.ZodTypeAny, {
354
- src: string;
355
356
  type: "video";
357
+ src: string;
356
358
  trim?: number | undefined;
357
359
  volume?: number | {
358
- length: number;
359
360
  from: number;
360
361
  to: number;
361
362
  start: number;
363
+ length: number;
362
364
  interpolation?: "linear" | "bezier" | "constant" | undefined;
363
365
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
364
366
  }[] | undefined;
@@ -369,14 +371,14 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
369
371
  left?: number | undefined;
370
372
  } | undefined;
371
373
  }, {
372
- src: string;
373
374
  type: "video";
375
+ src: string;
374
376
  trim?: number | undefined;
375
377
  volume?: number | {
376
- length: number;
377
378
  from: number;
378
379
  to: number;
379
380
  start: number;
381
+ length: number;
380
382
  interpolation?: "linear" | "bezier" | "constant" | undefined;
381
383
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
382
384
  }[] | undefined;
@@ -390,84 +392,86 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
390
392
  type: zod.ZodLiteral<"luma">;
391
393
  src: zod.ZodString;
392
394
  }, "strip", zod.ZodTypeAny, {
393
- src: string;
394
395
  type: "luma";
395
- }, {
396
396
  src: string;
397
+ }, {
397
398
  type: "luma";
399
+ src: string;
398
400
  }>, zod.ZodObject<{
399
401
  type: zod.ZodLiteral<"audio">;
400
402
  src: zod.ZodString;
401
403
  trim: zod.ZodOptional<zod.ZodNumber>;
402
- volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<{
404
+ volume: zod.ZodOptional<zod.ZodUnion<[zod.ZodArray<zod.ZodObject<zod.objectUtil.extendShape<{
405
+ from: zod.ZodNumber;
406
+ to: zod.ZodNumber;
403
407
  start: zod.ZodNumber;
404
408
  length: zod.ZodNumber;
405
409
  interpolation: zod.ZodOptional<zod.ZodEnum<["linear", "bezier", "constant"]>>;
406
410
  easing: zod.ZodOptional<zod.ZodEnum<["ease", "easeIn", "easeOut", "easeInOut", "easeInQuad", "easeInCubic", "easeInQuart", "easeInQuint", "easeInSine", "easeInExpo", "easeInCirc", "easeInBack", "easeOutQuad", "easeOutCubic", "easeOutQuart", "easeOutQuint", "easeOutSine", "easeOutExpo", "easeOutCirc", "easeOutBack", "easeInOutQuad", "easeInOutCubic", "easeInOutQuart", "easeInOutQuint", "easeInOutSine", "easeInOutExpo", "easeInOutCirc", "easeInOutBack"]>>;
407
- } & {
411
+ }, {
408
412
  from: zod.ZodNumber;
409
413
  to: zod.ZodNumber;
410
- }, "strip", zod.ZodTypeAny, {
411
- length: number;
414
+ }>, "strip", zod.ZodTypeAny, {
412
415
  from: number;
413
416
  to: number;
414
417
  start: number;
418
+ length: number;
415
419
  interpolation?: "linear" | "bezier" | "constant" | undefined;
416
420
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
417
421
  }, {
418
- length: number;
419
422
  from: number;
420
423
  to: number;
421
424
  start: number;
425
+ length: number;
422
426
  interpolation?: "linear" | "bezier" | "constant" | undefined;
423
427
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
424
428
  }>, "many">, zod.ZodNumber]>>;
425
429
  }, "strip", zod.ZodTypeAny, {
426
- src: string;
427
430
  type: "audio";
431
+ src: string;
428
432
  trim?: number | undefined;
429
433
  volume?: number | {
430
- length: number;
431
434
  from: number;
432
435
  to: number;
433
436
  start: number;
437
+ length: number;
434
438
  interpolation?: "linear" | "bezier" | "constant" | undefined;
435
439
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
436
440
  }[] | undefined;
437
441
  }, {
438
- src: string;
439
442
  type: "audio";
443
+ src: string;
440
444
  trim?: number | undefined;
441
445
  volume?: number | {
442
- length: number;
443
446
  from: number;
444
447
  to: number;
445
448
  start: number;
449
+ length: number;
446
450
  interpolation?: "linear" | "bezier" | "constant" | undefined;
447
451
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
448
452
  }[] | undefined;
449
453
  }>]>, {
450
- src: string;
451
454
  type: "audio";
455
+ src: string;
452
456
  trim?: number | undefined;
453
457
  volume?: number | {
454
- length: number;
455
458
  from: number;
456
459
  to: number;
457
460
  start: number;
461
+ length: number;
458
462
  interpolation?: "linear" | "bezier" | "constant" | undefined;
459
463
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
460
464
  }[] | undefined;
461
465
  } | {
462
- html: string;
463
466
  type: "html";
467
+ html: string;
464
468
  css: string;
465
469
  width?: number | undefined;
466
470
  height?: number | undefined;
467
471
  position?: "top" | "topRight" | "right" | "bottomRight" | "bottom" | "bottomLeft" | "left" | "topLeft" | "center" | undefined;
468
472
  } | {
469
- src: string;
470
473
  type: "image";
474
+ src: string;
471
475
  crop?: {
472
476
  top?: number | undefined;
473
477
  right?: number | undefined;
@@ -475,8 +479,8 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
475
479
  left?: number | undefined;
476
480
  } | undefined;
477
481
  } | {
478
- src: string;
479
482
  type: "luma";
483
+ src: string;
480
484
  } | {
481
485
  type: "shape";
482
486
  shape: "rectangle" | "circle" | "line";
@@ -526,14 +530,14 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
526
530
  opacity: number;
527
531
  } | undefined;
528
532
  } | {
529
- src: string;
530
533
  type: "video";
534
+ src: string;
531
535
  trim?: number | undefined;
532
536
  volume?: number | {
533
- length: number;
534
537
  from: number;
535
538
  to: number;
536
539
  start: number;
540
+ length: number;
537
541
  interpolation?: "linear" | "bezier" | "constant" | undefined;
538
542
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
539
543
  }[] | undefined;
@@ -544,27 +548,27 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
544
548
  left?: number | undefined;
545
549
  } | undefined;
546
550
  }, {
547
- src: string;
548
551
  type: "audio";
552
+ src: string;
549
553
  trim?: number | undefined;
550
554
  volume?: number | {
551
- length: number;
552
555
  from: number;
553
556
  to: number;
554
557
  start: number;
558
+ length: number;
555
559
  interpolation?: "linear" | "bezier" | "constant" | undefined;
556
560
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
557
561
  }[] | undefined;
558
562
  } | {
559
- html: string;
560
563
  type: "html";
564
+ html: string;
561
565
  css: string;
562
566
  width?: number | undefined;
563
567
  height?: number | undefined;
564
568
  position?: "top" | "topRight" | "right" | "bottomRight" | "bottom" | "bottomLeft" | "left" | "topLeft" | "center" | undefined;
565
569
  } | {
566
- src: string;
567
570
  type: "image";
571
+ src: string;
568
572
  crop?: {
569
573
  top?: number | undefined;
570
574
  right?: number | undefined;
@@ -572,8 +576,8 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
572
576
  left?: number | undefined;
573
577
  } | undefined;
574
578
  } | {
575
- src: string;
576
579
  type: "luma";
580
+ src: string;
577
581
  } | {
578
582
  type: "shape";
579
583
  shape: "rectangle" | "circle" | "line";
@@ -623,14 +627,14 @@ export declare const AssetSchema: zod.ZodEffects<zod.ZodUnion<[zod.ZodObject<{
623
627
  opacity: number;
624
628
  } | undefined;
625
629
  } | {
626
- src: string;
627
630
  type: "video";
631
+ src: string;
628
632
  trim?: number | undefined;
629
633
  volume?: number | {
630
- length: number;
631
634
  from: number;
632
635
  to: number;
633
636
  start: number;
637
+ length: number;
634
638
  interpolation?: "linear" | "bezier" | "constant" | undefined;
635
639
  easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack" | undefined;
636
640
  }[] | undefined;