@clypra/engine 1.3.0 → 1.3.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.
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { z } from 'zod';
2
+
1
3
  declare const SCENE_VERSION: 1;
2
4
  /** Default canvas width in pixels. */
3
5
  declare const DEFAULT_CANVAS_WIDTH: 800;
@@ -209,12 +211,100 @@ interface EffectIndexItem {
209
211
  description?: string;
210
212
  tags?: string[];
211
213
  isPremium?: boolean;
212
- previewType?: 'static' | 'video' | 'lottie';
214
+ previewType?: "static" | "video" | "lottie";
213
215
  thumbnailUrl?: string;
214
216
  thumbnail?: string;
215
217
  previewUrl?: string;
216
218
  durationMs?: number;
217
219
  }
220
+ interface EffectFill {
221
+ type: "solid" | "linear" | "radial" | "pattern" | "none";
222
+ color?: string;
223
+ gradient?: {
224
+ angle: number;
225
+ stops: Array<{
226
+ color: string;
227
+ offset: number;
228
+ }>;
229
+ };
230
+ patternType?: string;
231
+ perCharFillEnabled?: boolean;
232
+ charFillColors?: string[];
233
+ }
234
+ interface EffectStroke {
235
+ color: string;
236
+ width: number;
237
+ position?: "outside" | "center" | "inside";
238
+ opacity?: number;
239
+ lineJoin?: "round" | "miter" | "bevel";
240
+ blur?: number;
241
+ type?: "solid" | "gradient";
242
+ colorSecondary?: string;
243
+ widthSecondary?: number;
244
+ fadeRange?: [number, number];
245
+ }
246
+ interface EffectShadow {
247
+ type?: "drop" | "inner";
248
+ color: string;
249
+ blur: number;
250
+ offset?: {
251
+ x: number;
252
+ y: number;
253
+ };
254
+ offsetX?: number;
255
+ offsetY?: number;
256
+ opacity?: number;
257
+ }
258
+ interface EffectBevel {
259
+ depth: number;
260
+ highlight?: string;
261
+ highlightColor?: string;
262
+ shadow?: string;
263
+ shadowColor?: string;
264
+ direction?: "bottom-right" | "bottom" | "right";
265
+ coreColor?: string;
266
+ edgeColor?: string;
267
+ edgeWidth?: number;
268
+ blur?: number;
269
+ blurColor?: string;
270
+ perspectiveEnabled?: boolean;
271
+ vanishingPointX?: number;
272
+ vanishingPointY?: number;
273
+ focalLength?: number;
274
+ }
275
+ interface EffectGlow {
276
+ color: string;
277
+ blur: number;
278
+ opacity: number;
279
+ type?: "outer" | "inner";
280
+ strength?: number;
281
+ spread?: number;
282
+ }
283
+ interface EffectPanel {
284
+ color: string;
285
+ opacity: number;
286
+ radius: number;
287
+ padding?: {
288
+ x: number;
289
+ y: number;
290
+ };
291
+ paddingX?: number;
292
+ paddingY?: number;
293
+ stroke?: {
294
+ color: string;
295
+ width: number;
296
+ } | null;
297
+ }
298
+ interface EffectStack {
299
+ count: number;
300
+ offsetX: number;
301
+ offsetY: number;
302
+ opacityDecay: number;
303
+ color1?: string;
304
+ color2?: string;
305
+ color3?: string;
306
+ color4?: string;
307
+ }
218
308
  interface EffectFullDefinition extends EffectIndexItem {
219
309
  version?: string;
220
310
  description: string;
@@ -226,13 +316,13 @@ interface EffectFullDefinition extends EffectIndexItem {
226
316
  letterSpacing: number;
227
317
  lineHeight: number;
228
318
  };
229
- fills: any[];
230
- strokes: any[];
231
- shadows: any[];
232
- bevel?: any;
233
- glow?: any;
234
- glows?: any[];
235
- panel?: any;
319
+ fills: EffectFill[];
320
+ strokes: EffectStroke[];
321
+ shadows: EffectShadow[];
322
+ bevel?: EffectBevel;
323
+ glow?: EffectGlow;
324
+ glows?: EffectGlow[];
325
+ panel?: EffectPanel;
236
326
  glitch?: any;
237
327
  animation?: {
238
328
  type: "none" | "typewriter" | "wave" | "fade" | "glitch";
@@ -241,7 +331,7 @@ interface EffectFullDefinition extends EffectIndexItem {
241
331
  frequency?: number;
242
332
  };
243
333
  background?: any;
244
- stack?: any;
334
+ stack?: EffectStack;
245
335
  }
246
336
  interface TextEffectDefinition extends EffectFullDefinition {
247
337
  text?: string;
@@ -293,6 +383,1039 @@ interface EvaluatedTextLayer {
293
383
  readonly styleId?: string;
294
384
  }
295
385
 
386
+ /**
387
+ * Runtime validation schemas for text effect definitions
388
+ * Uses Zod for runtime type safety and validation
389
+ */
390
+
391
+ declare const GradientStopSchema: z.ZodObject<{
392
+ color: z.ZodString;
393
+ offset: z.ZodNumber;
394
+ }, z.core.$strip>;
395
+ declare const EffectFillSchema: z.ZodObject<{
396
+ type: z.ZodEnum<{
397
+ linear: "linear";
398
+ solid: "solid";
399
+ radial: "radial";
400
+ pattern: "pattern";
401
+ none: "none";
402
+ }>;
403
+ color: z.ZodOptional<z.ZodString>;
404
+ gradient: z.ZodOptional<z.ZodObject<{
405
+ angle: z.ZodNumber;
406
+ stops: z.ZodArray<z.ZodObject<{
407
+ color: z.ZodString;
408
+ offset: z.ZodNumber;
409
+ }, z.core.$strip>>;
410
+ }, z.core.$strip>>;
411
+ patternType: z.ZodOptional<z.ZodString>;
412
+ perCharFillEnabled: z.ZodOptional<z.ZodBoolean>;
413
+ charFillColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
414
+ }, z.core.$strip>;
415
+ declare const EffectStrokeSchema: z.ZodObject<{
416
+ color: z.ZodString;
417
+ width: z.ZodNumber;
418
+ position: z.ZodOptional<z.ZodEnum<{
419
+ center: "center";
420
+ outside: "outside";
421
+ inside: "inside";
422
+ }>>;
423
+ opacity: z.ZodOptional<z.ZodNumber>;
424
+ lineJoin: z.ZodOptional<z.ZodEnum<{
425
+ round: "round";
426
+ miter: "miter";
427
+ bevel: "bevel";
428
+ }>>;
429
+ blur: z.ZodOptional<z.ZodNumber>;
430
+ type: z.ZodOptional<z.ZodEnum<{
431
+ solid: "solid";
432
+ gradient: "gradient";
433
+ }>>;
434
+ colorSecondary: z.ZodOptional<z.ZodString>;
435
+ widthSecondary: z.ZodOptional<z.ZodNumber>;
436
+ fadeRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
437
+ }, z.core.$strip>;
438
+ declare const EffectShadowSchema: z.ZodObject<{
439
+ type: z.ZodOptional<z.ZodEnum<{
440
+ inner: "inner";
441
+ drop: "drop";
442
+ }>>;
443
+ color: z.ZodString;
444
+ blur: z.ZodNumber;
445
+ offset: z.ZodOptional<z.ZodObject<{
446
+ x: z.ZodNumber;
447
+ y: z.ZodNumber;
448
+ }, z.core.$strip>>;
449
+ offsetX: z.ZodOptional<z.ZodNumber>;
450
+ offsetY: z.ZodOptional<z.ZodNumber>;
451
+ opacity: z.ZodOptional<z.ZodNumber>;
452
+ }, z.core.$strip>;
453
+ declare const EffectBevelSchema: z.ZodObject<{
454
+ depth: z.ZodNumber;
455
+ highlight: z.ZodOptional<z.ZodString>;
456
+ highlightColor: z.ZodOptional<z.ZodString>;
457
+ shadow: z.ZodOptional<z.ZodString>;
458
+ shadowColor: z.ZodOptional<z.ZodString>;
459
+ direction: z.ZodOptional<z.ZodEnum<{
460
+ right: "right";
461
+ bottom: "bottom";
462
+ "bottom-right": "bottom-right";
463
+ }>>;
464
+ coreColor: z.ZodOptional<z.ZodString>;
465
+ edgeColor: z.ZodOptional<z.ZodString>;
466
+ edgeWidth: z.ZodOptional<z.ZodNumber>;
467
+ blur: z.ZodOptional<z.ZodNumber>;
468
+ blurColor: z.ZodOptional<z.ZodString>;
469
+ perspectiveEnabled: z.ZodOptional<z.ZodBoolean>;
470
+ vanishingPointX: z.ZodOptional<z.ZodNumber>;
471
+ vanishingPointY: z.ZodOptional<z.ZodNumber>;
472
+ focalLength: z.ZodOptional<z.ZodNumber>;
473
+ }, z.core.$strip>;
474
+ declare const EffectGlowSchema: z.ZodObject<{
475
+ color: z.ZodString;
476
+ blur: z.ZodNumber;
477
+ opacity: z.ZodNumber;
478
+ type: z.ZodOptional<z.ZodEnum<{
479
+ outer: "outer";
480
+ inner: "inner";
481
+ }>>;
482
+ strength: z.ZodOptional<z.ZodNumber>;
483
+ spread: z.ZodOptional<z.ZodNumber>;
484
+ }, z.core.$strip>;
485
+ declare const EffectPanelSchema: z.ZodObject<{
486
+ color: z.ZodString;
487
+ opacity: z.ZodNumber;
488
+ radius: z.ZodNumber;
489
+ padding: z.ZodOptional<z.ZodObject<{
490
+ x: z.ZodNumber;
491
+ y: z.ZodNumber;
492
+ }, z.core.$strip>>;
493
+ paddingX: z.ZodOptional<z.ZodNumber>;
494
+ paddingY: z.ZodOptional<z.ZodNumber>;
495
+ stroke: z.ZodOptional<z.ZodNullable<z.ZodObject<{
496
+ color: z.ZodString;
497
+ width: z.ZodNumber;
498
+ }, z.core.$strip>>>;
499
+ }, z.core.$strip>;
500
+ declare const EffectStackSchema: z.ZodObject<{
501
+ count: z.ZodNumber;
502
+ offsetX: z.ZodNumber;
503
+ offsetY: z.ZodNumber;
504
+ opacityDecay: z.ZodNumber;
505
+ color1: z.ZodOptional<z.ZodString>;
506
+ color2: z.ZodOptional<z.ZodString>;
507
+ color3: z.ZodOptional<z.ZodString>;
508
+ color4: z.ZodOptional<z.ZodString>;
509
+ }, z.core.$strip>;
510
+ declare const FontSchema: z.ZodObject<{
511
+ family: z.ZodString;
512
+ weight: z.ZodNumber;
513
+ style: z.ZodEnum<{
514
+ normal: "normal";
515
+ italic: "italic";
516
+ }>;
517
+ letterSpacing: z.ZodNumber;
518
+ lineHeight: z.ZodNumber;
519
+ }, z.core.$strip>;
520
+ declare const AnimationSchema: z.ZodObject<{
521
+ type: z.ZodEnum<{
522
+ none: "none";
523
+ typewriter: "typewriter";
524
+ wave: "wave";
525
+ fade: "fade";
526
+ glitch: "glitch";
527
+ }>;
528
+ speed: z.ZodOptional<z.ZodNumber>;
529
+ amplitude: z.ZodOptional<z.ZodNumber>;
530
+ frequency: z.ZodOptional<z.ZodNumber>;
531
+ }, z.core.$strip>;
532
+ declare const EffectIndexItemSchema: z.ZodObject<{
533
+ id: z.ZodString;
534
+ name: z.ZodString;
535
+ category: z.ZodString;
536
+ description: z.ZodOptional<z.ZodString>;
537
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
538
+ isPremium: z.ZodOptional<z.ZodBoolean>;
539
+ previewType: z.ZodOptional<z.ZodEnum<{
540
+ static: "static";
541
+ video: "video";
542
+ lottie: "lottie";
543
+ }>>;
544
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
545
+ thumbnail: z.ZodOptional<z.ZodString>;
546
+ previewUrl: z.ZodOptional<z.ZodString>;
547
+ durationMs: z.ZodOptional<z.ZodNumber>;
548
+ }, z.core.$strip>;
549
+ declare const EffectFullDefinitionSchema: z.ZodObject<{
550
+ id: z.ZodString;
551
+ name: z.ZodString;
552
+ category: z.ZodString;
553
+ isPremium: z.ZodOptional<z.ZodBoolean>;
554
+ previewType: z.ZodOptional<z.ZodEnum<{
555
+ static: "static";
556
+ video: "video";
557
+ lottie: "lottie";
558
+ }>>;
559
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
560
+ thumbnail: z.ZodOptional<z.ZodString>;
561
+ previewUrl: z.ZodOptional<z.ZodString>;
562
+ durationMs: z.ZodOptional<z.ZodNumber>;
563
+ version: z.ZodOptional<z.ZodString>;
564
+ description: z.ZodString;
565
+ tags: z.ZodArray<z.ZodString>;
566
+ font: z.ZodObject<{
567
+ family: z.ZodString;
568
+ weight: z.ZodNumber;
569
+ style: z.ZodEnum<{
570
+ normal: "normal";
571
+ italic: "italic";
572
+ }>;
573
+ letterSpacing: z.ZodNumber;
574
+ lineHeight: z.ZodNumber;
575
+ }, z.core.$strip>;
576
+ fills: z.ZodArray<z.ZodObject<{
577
+ type: z.ZodEnum<{
578
+ linear: "linear";
579
+ solid: "solid";
580
+ radial: "radial";
581
+ pattern: "pattern";
582
+ none: "none";
583
+ }>;
584
+ color: z.ZodOptional<z.ZodString>;
585
+ gradient: z.ZodOptional<z.ZodObject<{
586
+ angle: z.ZodNumber;
587
+ stops: z.ZodArray<z.ZodObject<{
588
+ color: z.ZodString;
589
+ offset: z.ZodNumber;
590
+ }, z.core.$strip>>;
591
+ }, z.core.$strip>>;
592
+ patternType: z.ZodOptional<z.ZodString>;
593
+ perCharFillEnabled: z.ZodOptional<z.ZodBoolean>;
594
+ charFillColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
595
+ }, z.core.$strip>>;
596
+ strokes: z.ZodArray<z.ZodObject<{
597
+ color: z.ZodString;
598
+ width: z.ZodNumber;
599
+ position: z.ZodOptional<z.ZodEnum<{
600
+ center: "center";
601
+ outside: "outside";
602
+ inside: "inside";
603
+ }>>;
604
+ opacity: z.ZodOptional<z.ZodNumber>;
605
+ lineJoin: z.ZodOptional<z.ZodEnum<{
606
+ round: "round";
607
+ miter: "miter";
608
+ bevel: "bevel";
609
+ }>>;
610
+ blur: z.ZodOptional<z.ZodNumber>;
611
+ type: z.ZodOptional<z.ZodEnum<{
612
+ solid: "solid";
613
+ gradient: "gradient";
614
+ }>>;
615
+ colorSecondary: z.ZodOptional<z.ZodString>;
616
+ widthSecondary: z.ZodOptional<z.ZodNumber>;
617
+ fadeRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
618
+ }, z.core.$strip>>;
619
+ shadows: z.ZodArray<z.ZodObject<{
620
+ type: z.ZodOptional<z.ZodEnum<{
621
+ inner: "inner";
622
+ drop: "drop";
623
+ }>>;
624
+ color: z.ZodString;
625
+ blur: z.ZodNumber;
626
+ offset: z.ZodOptional<z.ZodObject<{
627
+ x: z.ZodNumber;
628
+ y: z.ZodNumber;
629
+ }, z.core.$strip>>;
630
+ offsetX: z.ZodOptional<z.ZodNumber>;
631
+ offsetY: z.ZodOptional<z.ZodNumber>;
632
+ opacity: z.ZodOptional<z.ZodNumber>;
633
+ }, z.core.$strip>>;
634
+ bevel: z.ZodOptional<z.ZodObject<{
635
+ depth: z.ZodNumber;
636
+ highlight: z.ZodOptional<z.ZodString>;
637
+ highlightColor: z.ZodOptional<z.ZodString>;
638
+ shadow: z.ZodOptional<z.ZodString>;
639
+ shadowColor: z.ZodOptional<z.ZodString>;
640
+ direction: z.ZodOptional<z.ZodEnum<{
641
+ right: "right";
642
+ bottom: "bottom";
643
+ "bottom-right": "bottom-right";
644
+ }>>;
645
+ coreColor: z.ZodOptional<z.ZodString>;
646
+ edgeColor: z.ZodOptional<z.ZodString>;
647
+ edgeWidth: z.ZodOptional<z.ZodNumber>;
648
+ blur: z.ZodOptional<z.ZodNumber>;
649
+ blurColor: z.ZodOptional<z.ZodString>;
650
+ perspectiveEnabled: z.ZodOptional<z.ZodBoolean>;
651
+ vanishingPointX: z.ZodOptional<z.ZodNumber>;
652
+ vanishingPointY: z.ZodOptional<z.ZodNumber>;
653
+ focalLength: z.ZodOptional<z.ZodNumber>;
654
+ }, z.core.$strip>>;
655
+ glow: z.ZodOptional<z.ZodObject<{
656
+ color: z.ZodString;
657
+ blur: z.ZodNumber;
658
+ opacity: z.ZodNumber;
659
+ type: z.ZodOptional<z.ZodEnum<{
660
+ outer: "outer";
661
+ inner: "inner";
662
+ }>>;
663
+ strength: z.ZodOptional<z.ZodNumber>;
664
+ spread: z.ZodOptional<z.ZodNumber>;
665
+ }, z.core.$strip>>;
666
+ glows: z.ZodOptional<z.ZodArray<z.ZodObject<{
667
+ color: z.ZodString;
668
+ blur: z.ZodNumber;
669
+ opacity: z.ZodNumber;
670
+ type: z.ZodOptional<z.ZodEnum<{
671
+ outer: "outer";
672
+ inner: "inner";
673
+ }>>;
674
+ strength: z.ZodOptional<z.ZodNumber>;
675
+ spread: z.ZodOptional<z.ZodNumber>;
676
+ }, z.core.$strip>>>;
677
+ panel: z.ZodOptional<z.ZodObject<{
678
+ color: z.ZodString;
679
+ opacity: z.ZodNumber;
680
+ radius: z.ZodNumber;
681
+ padding: z.ZodOptional<z.ZodObject<{
682
+ x: z.ZodNumber;
683
+ y: z.ZodNumber;
684
+ }, z.core.$strip>>;
685
+ paddingX: z.ZodOptional<z.ZodNumber>;
686
+ paddingY: z.ZodOptional<z.ZodNumber>;
687
+ stroke: z.ZodOptional<z.ZodNullable<z.ZodObject<{
688
+ color: z.ZodString;
689
+ width: z.ZodNumber;
690
+ }, z.core.$strip>>>;
691
+ }, z.core.$strip>>;
692
+ glitch: z.ZodOptional<z.ZodAny>;
693
+ animation: z.ZodOptional<z.ZodObject<{
694
+ type: z.ZodEnum<{
695
+ none: "none";
696
+ typewriter: "typewriter";
697
+ wave: "wave";
698
+ fade: "fade";
699
+ glitch: "glitch";
700
+ }>;
701
+ speed: z.ZodOptional<z.ZodNumber>;
702
+ amplitude: z.ZodOptional<z.ZodNumber>;
703
+ frequency: z.ZodOptional<z.ZodNumber>;
704
+ }, z.core.$strip>>;
705
+ background: z.ZodOptional<z.ZodAny>;
706
+ stack: z.ZodOptional<z.ZodObject<{
707
+ count: z.ZodNumber;
708
+ offsetX: z.ZodNumber;
709
+ offsetY: z.ZodNumber;
710
+ opacityDecay: z.ZodNumber;
711
+ color1: z.ZodOptional<z.ZodString>;
712
+ color2: z.ZodOptional<z.ZodString>;
713
+ color3: z.ZodOptional<z.ZodString>;
714
+ color4: z.ZodOptional<z.ZodString>;
715
+ }, z.core.$strip>>;
716
+ }, z.core.$strip>;
717
+ declare const TextEffectDefinitionSchema: z.ZodObject<{
718
+ id: z.ZodString;
719
+ name: z.ZodString;
720
+ category: z.ZodString;
721
+ isPremium: z.ZodOptional<z.ZodBoolean>;
722
+ previewType: z.ZodOptional<z.ZodEnum<{
723
+ static: "static";
724
+ video: "video";
725
+ lottie: "lottie";
726
+ }>>;
727
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
728
+ thumbnail: z.ZodOptional<z.ZodString>;
729
+ previewUrl: z.ZodOptional<z.ZodString>;
730
+ durationMs: z.ZodOptional<z.ZodNumber>;
731
+ version: z.ZodOptional<z.ZodString>;
732
+ description: z.ZodString;
733
+ tags: z.ZodArray<z.ZodString>;
734
+ font: z.ZodObject<{
735
+ family: z.ZodString;
736
+ weight: z.ZodNumber;
737
+ style: z.ZodEnum<{
738
+ normal: "normal";
739
+ italic: "italic";
740
+ }>;
741
+ letterSpacing: z.ZodNumber;
742
+ lineHeight: z.ZodNumber;
743
+ }, z.core.$strip>;
744
+ fills: z.ZodArray<z.ZodObject<{
745
+ type: z.ZodEnum<{
746
+ linear: "linear";
747
+ solid: "solid";
748
+ radial: "radial";
749
+ pattern: "pattern";
750
+ none: "none";
751
+ }>;
752
+ color: z.ZodOptional<z.ZodString>;
753
+ gradient: z.ZodOptional<z.ZodObject<{
754
+ angle: z.ZodNumber;
755
+ stops: z.ZodArray<z.ZodObject<{
756
+ color: z.ZodString;
757
+ offset: z.ZodNumber;
758
+ }, z.core.$strip>>;
759
+ }, z.core.$strip>>;
760
+ patternType: z.ZodOptional<z.ZodString>;
761
+ perCharFillEnabled: z.ZodOptional<z.ZodBoolean>;
762
+ charFillColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
763
+ }, z.core.$strip>>;
764
+ strokes: z.ZodArray<z.ZodObject<{
765
+ color: z.ZodString;
766
+ width: z.ZodNumber;
767
+ position: z.ZodOptional<z.ZodEnum<{
768
+ center: "center";
769
+ outside: "outside";
770
+ inside: "inside";
771
+ }>>;
772
+ opacity: z.ZodOptional<z.ZodNumber>;
773
+ lineJoin: z.ZodOptional<z.ZodEnum<{
774
+ round: "round";
775
+ miter: "miter";
776
+ bevel: "bevel";
777
+ }>>;
778
+ blur: z.ZodOptional<z.ZodNumber>;
779
+ type: z.ZodOptional<z.ZodEnum<{
780
+ solid: "solid";
781
+ gradient: "gradient";
782
+ }>>;
783
+ colorSecondary: z.ZodOptional<z.ZodString>;
784
+ widthSecondary: z.ZodOptional<z.ZodNumber>;
785
+ fadeRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
786
+ }, z.core.$strip>>;
787
+ shadows: z.ZodArray<z.ZodObject<{
788
+ type: z.ZodOptional<z.ZodEnum<{
789
+ inner: "inner";
790
+ drop: "drop";
791
+ }>>;
792
+ color: z.ZodString;
793
+ blur: z.ZodNumber;
794
+ offset: z.ZodOptional<z.ZodObject<{
795
+ x: z.ZodNumber;
796
+ y: z.ZodNumber;
797
+ }, z.core.$strip>>;
798
+ offsetX: z.ZodOptional<z.ZodNumber>;
799
+ offsetY: z.ZodOptional<z.ZodNumber>;
800
+ opacity: z.ZodOptional<z.ZodNumber>;
801
+ }, z.core.$strip>>;
802
+ bevel: z.ZodOptional<z.ZodObject<{
803
+ depth: z.ZodNumber;
804
+ highlight: z.ZodOptional<z.ZodString>;
805
+ highlightColor: z.ZodOptional<z.ZodString>;
806
+ shadow: z.ZodOptional<z.ZodString>;
807
+ shadowColor: z.ZodOptional<z.ZodString>;
808
+ direction: z.ZodOptional<z.ZodEnum<{
809
+ right: "right";
810
+ bottom: "bottom";
811
+ "bottom-right": "bottom-right";
812
+ }>>;
813
+ coreColor: z.ZodOptional<z.ZodString>;
814
+ edgeColor: z.ZodOptional<z.ZodString>;
815
+ edgeWidth: z.ZodOptional<z.ZodNumber>;
816
+ blur: z.ZodOptional<z.ZodNumber>;
817
+ blurColor: z.ZodOptional<z.ZodString>;
818
+ perspectiveEnabled: z.ZodOptional<z.ZodBoolean>;
819
+ vanishingPointX: z.ZodOptional<z.ZodNumber>;
820
+ vanishingPointY: z.ZodOptional<z.ZodNumber>;
821
+ focalLength: z.ZodOptional<z.ZodNumber>;
822
+ }, z.core.$strip>>;
823
+ glow: z.ZodOptional<z.ZodObject<{
824
+ color: z.ZodString;
825
+ blur: z.ZodNumber;
826
+ opacity: z.ZodNumber;
827
+ type: z.ZodOptional<z.ZodEnum<{
828
+ outer: "outer";
829
+ inner: "inner";
830
+ }>>;
831
+ strength: z.ZodOptional<z.ZodNumber>;
832
+ spread: z.ZodOptional<z.ZodNumber>;
833
+ }, z.core.$strip>>;
834
+ glows: z.ZodOptional<z.ZodArray<z.ZodObject<{
835
+ color: z.ZodString;
836
+ blur: z.ZodNumber;
837
+ opacity: z.ZodNumber;
838
+ type: z.ZodOptional<z.ZodEnum<{
839
+ outer: "outer";
840
+ inner: "inner";
841
+ }>>;
842
+ strength: z.ZodOptional<z.ZodNumber>;
843
+ spread: z.ZodOptional<z.ZodNumber>;
844
+ }, z.core.$strip>>>;
845
+ panel: z.ZodOptional<z.ZodObject<{
846
+ color: z.ZodString;
847
+ opacity: z.ZodNumber;
848
+ radius: z.ZodNumber;
849
+ padding: z.ZodOptional<z.ZodObject<{
850
+ x: z.ZodNumber;
851
+ y: z.ZodNumber;
852
+ }, z.core.$strip>>;
853
+ paddingX: z.ZodOptional<z.ZodNumber>;
854
+ paddingY: z.ZodOptional<z.ZodNumber>;
855
+ stroke: z.ZodOptional<z.ZodNullable<z.ZodObject<{
856
+ color: z.ZodString;
857
+ width: z.ZodNumber;
858
+ }, z.core.$strip>>>;
859
+ }, z.core.$strip>>;
860
+ glitch: z.ZodOptional<z.ZodAny>;
861
+ animation: z.ZodOptional<z.ZodObject<{
862
+ type: z.ZodEnum<{
863
+ none: "none";
864
+ typewriter: "typewriter";
865
+ wave: "wave";
866
+ fade: "fade";
867
+ glitch: "glitch";
868
+ }>;
869
+ speed: z.ZodOptional<z.ZodNumber>;
870
+ amplitude: z.ZodOptional<z.ZodNumber>;
871
+ frequency: z.ZodOptional<z.ZodNumber>;
872
+ }, z.core.$strip>>;
873
+ background: z.ZodOptional<z.ZodAny>;
874
+ stack: z.ZodOptional<z.ZodObject<{
875
+ count: z.ZodNumber;
876
+ offsetX: z.ZodNumber;
877
+ offsetY: z.ZodNumber;
878
+ opacityDecay: z.ZodNumber;
879
+ color1: z.ZodOptional<z.ZodString>;
880
+ color2: z.ZodOptional<z.ZodString>;
881
+ color3: z.ZodOptional<z.ZodString>;
882
+ color4: z.ZodOptional<z.ZodString>;
883
+ }, z.core.$strip>>;
884
+ text: z.ZodOptional<z.ZodString>;
885
+ }, z.core.$strip>;
886
+ /**
887
+ * Validates an effect definition with detailed error reporting
888
+ * @param data - The effect definition to validate
889
+ * @returns Validation result with success/error details
890
+ */
891
+ declare function validateEffectDefinition(data: unknown): z.ZodSafeParseResult<{
892
+ id: string;
893
+ name: string;
894
+ category: string;
895
+ description: string;
896
+ tags: string[];
897
+ font: {
898
+ family: string;
899
+ weight: number;
900
+ style: "normal" | "italic";
901
+ letterSpacing: number;
902
+ lineHeight: number;
903
+ };
904
+ fills: {
905
+ type: "linear" | "solid" | "radial" | "pattern" | "none";
906
+ color?: string;
907
+ gradient?: {
908
+ angle: number;
909
+ stops: {
910
+ color: string;
911
+ offset: number;
912
+ }[];
913
+ };
914
+ patternType?: string;
915
+ perCharFillEnabled?: boolean;
916
+ charFillColors?: string[];
917
+ }[];
918
+ strokes: {
919
+ color: string;
920
+ width: number;
921
+ position?: "center" | "outside" | "inside";
922
+ opacity?: number;
923
+ lineJoin?: "round" | "miter" | "bevel";
924
+ blur?: number;
925
+ type?: "solid" | "gradient";
926
+ colorSecondary?: string;
927
+ widthSecondary?: number;
928
+ fadeRange?: [number?, number?, ...unknown[]];
929
+ }[];
930
+ shadows: {
931
+ color: string;
932
+ blur: number;
933
+ type?: "inner" | "drop";
934
+ offset?: {
935
+ x: number;
936
+ y: number;
937
+ };
938
+ offsetX?: number;
939
+ offsetY?: number;
940
+ opacity?: number;
941
+ }[];
942
+ isPremium?: boolean;
943
+ previewType?: "static" | "video" | "lottie";
944
+ thumbnailUrl?: string;
945
+ thumbnail?: string;
946
+ previewUrl?: string;
947
+ durationMs?: number;
948
+ version?: string;
949
+ bevel?: {
950
+ depth: number;
951
+ highlight?: string;
952
+ highlightColor?: string;
953
+ shadow?: string;
954
+ shadowColor?: string;
955
+ direction?: "right" | "bottom" | "bottom-right";
956
+ coreColor?: string;
957
+ edgeColor?: string;
958
+ edgeWidth?: number;
959
+ blur?: number;
960
+ blurColor?: string;
961
+ perspectiveEnabled?: boolean;
962
+ vanishingPointX?: number;
963
+ vanishingPointY?: number;
964
+ focalLength?: number;
965
+ };
966
+ glow?: {
967
+ color: string;
968
+ blur: number;
969
+ opacity: number;
970
+ type?: "outer" | "inner";
971
+ strength?: number;
972
+ spread?: number;
973
+ };
974
+ glows?: {
975
+ color: string;
976
+ blur: number;
977
+ opacity: number;
978
+ type?: "outer" | "inner";
979
+ strength?: number;
980
+ spread?: number;
981
+ }[];
982
+ panel?: {
983
+ color: string;
984
+ opacity: number;
985
+ radius: number;
986
+ padding?: {
987
+ x: number;
988
+ y: number;
989
+ };
990
+ paddingX?: number;
991
+ paddingY?: number;
992
+ stroke?: {
993
+ color: string;
994
+ width: number;
995
+ };
996
+ };
997
+ glitch?: any;
998
+ animation?: {
999
+ type: "none" | "typewriter" | "wave" | "fade" | "glitch";
1000
+ speed?: number;
1001
+ amplitude?: number;
1002
+ frequency?: number;
1003
+ };
1004
+ background?: any;
1005
+ stack?: {
1006
+ count: number;
1007
+ offsetX: number;
1008
+ offsetY: number;
1009
+ opacityDecay: number;
1010
+ color1?: string;
1011
+ color2?: string;
1012
+ color3?: string;
1013
+ color4?: string;
1014
+ };
1015
+ }>;
1016
+ /**
1017
+ * Validates an effect definition and throws on error
1018
+ * @param data - The effect definition to validate
1019
+ * @returns The validated effect definition
1020
+ * @throws {z.ZodError} If validation fails
1021
+ */
1022
+ declare function validateEffectDefinitionStrict(data: unknown): {
1023
+ id: string;
1024
+ name: string;
1025
+ category: string;
1026
+ description: string;
1027
+ tags: string[];
1028
+ font: {
1029
+ family: string;
1030
+ weight: number;
1031
+ style: "normal" | "italic";
1032
+ letterSpacing: number;
1033
+ lineHeight: number;
1034
+ };
1035
+ fills: {
1036
+ type: "linear" | "solid" | "radial" | "pattern" | "none";
1037
+ color?: string;
1038
+ gradient?: {
1039
+ angle: number;
1040
+ stops: {
1041
+ color: string;
1042
+ offset: number;
1043
+ }[];
1044
+ };
1045
+ patternType?: string;
1046
+ perCharFillEnabled?: boolean;
1047
+ charFillColors?: string[];
1048
+ }[];
1049
+ strokes: {
1050
+ color: string;
1051
+ width: number;
1052
+ position?: "center" | "outside" | "inside";
1053
+ opacity?: number;
1054
+ lineJoin?: "round" | "miter" | "bevel";
1055
+ blur?: number;
1056
+ type?: "solid" | "gradient";
1057
+ colorSecondary?: string;
1058
+ widthSecondary?: number;
1059
+ fadeRange?: [number?, number?, ...unknown[]];
1060
+ }[];
1061
+ shadows: {
1062
+ color: string;
1063
+ blur: number;
1064
+ type?: "inner" | "drop";
1065
+ offset?: {
1066
+ x: number;
1067
+ y: number;
1068
+ };
1069
+ offsetX?: number;
1070
+ offsetY?: number;
1071
+ opacity?: number;
1072
+ }[];
1073
+ isPremium?: boolean;
1074
+ previewType?: "static" | "video" | "lottie";
1075
+ thumbnailUrl?: string;
1076
+ thumbnail?: string;
1077
+ previewUrl?: string;
1078
+ durationMs?: number;
1079
+ version?: string;
1080
+ bevel?: {
1081
+ depth: number;
1082
+ highlight?: string;
1083
+ highlightColor?: string;
1084
+ shadow?: string;
1085
+ shadowColor?: string;
1086
+ direction?: "right" | "bottom" | "bottom-right";
1087
+ coreColor?: string;
1088
+ edgeColor?: string;
1089
+ edgeWidth?: number;
1090
+ blur?: number;
1091
+ blurColor?: string;
1092
+ perspectiveEnabled?: boolean;
1093
+ vanishingPointX?: number;
1094
+ vanishingPointY?: number;
1095
+ focalLength?: number;
1096
+ };
1097
+ glow?: {
1098
+ color: string;
1099
+ blur: number;
1100
+ opacity: number;
1101
+ type?: "outer" | "inner";
1102
+ strength?: number;
1103
+ spread?: number;
1104
+ };
1105
+ glows?: {
1106
+ color: string;
1107
+ blur: number;
1108
+ opacity: number;
1109
+ type?: "outer" | "inner";
1110
+ strength?: number;
1111
+ spread?: number;
1112
+ }[];
1113
+ panel?: {
1114
+ color: string;
1115
+ opacity: number;
1116
+ radius: number;
1117
+ padding?: {
1118
+ x: number;
1119
+ y: number;
1120
+ };
1121
+ paddingX?: number;
1122
+ paddingY?: number;
1123
+ stroke?: {
1124
+ color: string;
1125
+ width: number;
1126
+ };
1127
+ };
1128
+ glitch?: any;
1129
+ animation?: {
1130
+ type: "none" | "typewriter" | "wave" | "fade" | "glitch";
1131
+ speed?: number;
1132
+ amplitude?: number;
1133
+ frequency?: number;
1134
+ };
1135
+ background?: any;
1136
+ stack?: {
1137
+ count: number;
1138
+ offsetX: number;
1139
+ offsetY: number;
1140
+ opacityDecay: number;
1141
+ color1?: string;
1142
+ color2?: string;
1143
+ color3?: string;
1144
+ color4?: string;
1145
+ };
1146
+ };
1147
+ /**
1148
+ * Validates a text effect definition with detailed error reporting
1149
+ * @param data - The text effect definition to validate
1150
+ * @returns Validation result with success/error details
1151
+ */
1152
+ declare function validateTextEffectDefinition(data: unknown): z.ZodSafeParseResult<{
1153
+ id: string;
1154
+ name: string;
1155
+ category: string;
1156
+ description: string;
1157
+ tags: string[];
1158
+ font: {
1159
+ family: string;
1160
+ weight: number;
1161
+ style: "normal" | "italic";
1162
+ letterSpacing: number;
1163
+ lineHeight: number;
1164
+ };
1165
+ fills: {
1166
+ type: "linear" | "solid" | "radial" | "pattern" | "none";
1167
+ color?: string;
1168
+ gradient?: {
1169
+ angle: number;
1170
+ stops: {
1171
+ color: string;
1172
+ offset: number;
1173
+ }[];
1174
+ };
1175
+ patternType?: string;
1176
+ perCharFillEnabled?: boolean;
1177
+ charFillColors?: string[];
1178
+ }[];
1179
+ strokes: {
1180
+ color: string;
1181
+ width: number;
1182
+ position?: "center" | "outside" | "inside";
1183
+ opacity?: number;
1184
+ lineJoin?: "round" | "miter" | "bevel";
1185
+ blur?: number;
1186
+ type?: "solid" | "gradient";
1187
+ colorSecondary?: string;
1188
+ widthSecondary?: number;
1189
+ fadeRange?: [number?, number?, ...unknown[]];
1190
+ }[];
1191
+ shadows: {
1192
+ color: string;
1193
+ blur: number;
1194
+ type?: "inner" | "drop";
1195
+ offset?: {
1196
+ x: number;
1197
+ y: number;
1198
+ };
1199
+ offsetX?: number;
1200
+ offsetY?: number;
1201
+ opacity?: number;
1202
+ }[];
1203
+ isPremium?: boolean;
1204
+ previewType?: "static" | "video" | "lottie";
1205
+ thumbnailUrl?: string;
1206
+ thumbnail?: string;
1207
+ previewUrl?: string;
1208
+ durationMs?: number;
1209
+ version?: string;
1210
+ bevel?: {
1211
+ depth: number;
1212
+ highlight?: string;
1213
+ highlightColor?: string;
1214
+ shadow?: string;
1215
+ shadowColor?: string;
1216
+ direction?: "right" | "bottom" | "bottom-right";
1217
+ coreColor?: string;
1218
+ edgeColor?: string;
1219
+ edgeWidth?: number;
1220
+ blur?: number;
1221
+ blurColor?: string;
1222
+ perspectiveEnabled?: boolean;
1223
+ vanishingPointX?: number;
1224
+ vanishingPointY?: number;
1225
+ focalLength?: number;
1226
+ };
1227
+ glow?: {
1228
+ color: string;
1229
+ blur: number;
1230
+ opacity: number;
1231
+ type?: "outer" | "inner";
1232
+ strength?: number;
1233
+ spread?: number;
1234
+ };
1235
+ glows?: {
1236
+ color: string;
1237
+ blur: number;
1238
+ opacity: number;
1239
+ type?: "outer" | "inner";
1240
+ strength?: number;
1241
+ spread?: number;
1242
+ }[];
1243
+ panel?: {
1244
+ color: string;
1245
+ opacity: number;
1246
+ radius: number;
1247
+ padding?: {
1248
+ x: number;
1249
+ y: number;
1250
+ };
1251
+ paddingX?: number;
1252
+ paddingY?: number;
1253
+ stroke?: {
1254
+ color: string;
1255
+ width: number;
1256
+ };
1257
+ };
1258
+ glitch?: any;
1259
+ animation?: {
1260
+ type: "none" | "typewriter" | "wave" | "fade" | "glitch";
1261
+ speed?: number;
1262
+ amplitude?: number;
1263
+ frequency?: number;
1264
+ };
1265
+ background?: any;
1266
+ stack?: {
1267
+ count: number;
1268
+ offsetX: number;
1269
+ offsetY: number;
1270
+ opacityDecay: number;
1271
+ color1?: string;
1272
+ color2?: string;
1273
+ color3?: string;
1274
+ color4?: string;
1275
+ };
1276
+ text?: string;
1277
+ }>;
1278
+ /**
1279
+ * Validates a text effect definition and throws on error
1280
+ * @param data - The text effect definition to validate
1281
+ * @returns The validated text effect definition
1282
+ * @throws {z.ZodError} If validation fails
1283
+ */
1284
+ declare function validateTextEffectDefinitionStrict(data: unknown): {
1285
+ id: string;
1286
+ name: string;
1287
+ category: string;
1288
+ description: string;
1289
+ tags: string[];
1290
+ font: {
1291
+ family: string;
1292
+ weight: number;
1293
+ style: "normal" | "italic";
1294
+ letterSpacing: number;
1295
+ lineHeight: number;
1296
+ };
1297
+ fills: {
1298
+ type: "linear" | "solid" | "radial" | "pattern" | "none";
1299
+ color?: string;
1300
+ gradient?: {
1301
+ angle: number;
1302
+ stops: {
1303
+ color: string;
1304
+ offset: number;
1305
+ }[];
1306
+ };
1307
+ patternType?: string;
1308
+ perCharFillEnabled?: boolean;
1309
+ charFillColors?: string[];
1310
+ }[];
1311
+ strokes: {
1312
+ color: string;
1313
+ width: number;
1314
+ position?: "center" | "outside" | "inside";
1315
+ opacity?: number;
1316
+ lineJoin?: "round" | "miter" | "bevel";
1317
+ blur?: number;
1318
+ type?: "solid" | "gradient";
1319
+ colorSecondary?: string;
1320
+ widthSecondary?: number;
1321
+ fadeRange?: [number?, number?, ...unknown[]];
1322
+ }[];
1323
+ shadows: {
1324
+ color: string;
1325
+ blur: number;
1326
+ type?: "inner" | "drop";
1327
+ offset?: {
1328
+ x: number;
1329
+ y: number;
1330
+ };
1331
+ offsetX?: number;
1332
+ offsetY?: number;
1333
+ opacity?: number;
1334
+ }[];
1335
+ isPremium?: boolean;
1336
+ previewType?: "static" | "video" | "lottie";
1337
+ thumbnailUrl?: string;
1338
+ thumbnail?: string;
1339
+ previewUrl?: string;
1340
+ durationMs?: number;
1341
+ version?: string;
1342
+ bevel?: {
1343
+ depth: number;
1344
+ highlight?: string;
1345
+ highlightColor?: string;
1346
+ shadow?: string;
1347
+ shadowColor?: string;
1348
+ direction?: "right" | "bottom" | "bottom-right";
1349
+ coreColor?: string;
1350
+ edgeColor?: string;
1351
+ edgeWidth?: number;
1352
+ blur?: number;
1353
+ blurColor?: string;
1354
+ perspectiveEnabled?: boolean;
1355
+ vanishingPointX?: number;
1356
+ vanishingPointY?: number;
1357
+ focalLength?: number;
1358
+ };
1359
+ glow?: {
1360
+ color: string;
1361
+ blur: number;
1362
+ opacity: number;
1363
+ type?: "outer" | "inner";
1364
+ strength?: number;
1365
+ spread?: number;
1366
+ };
1367
+ glows?: {
1368
+ color: string;
1369
+ blur: number;
1370
+ opacity: number;
1371
+ type?: "outer" | "inner";
1372
+ strength?: number;
1373
+ spread?: number;
1374
+ }[];
1375
+ panel?: {
1376
+ color: string;
1377
+ opacity: number;
1378
+ radius: number;
1379
+ padding?: {
1380
+ x: number;
1381
+ y: number;
1382
+ };
1383
+ paddingX?: number;
1384
+ paddingY?: number;
1385
+ stroke?: {
1386
+ color: string;
1387
+ width: number;
1388
+ };
1389
+ };
1390
+ glitch?: any;
1391
+ animation?: {
1392
+ type: "none" | "typewriter" | "wave" | "fade" | "glitch";
1393
+ speed?: number;
1394
+ amplitude?: number;
1395
+ frequency?: number;
1396
+ };
1397
+ background?: any;
1398
+ stack?: {
1399
+ count: number;
1400
+ offsetX: number;
1401
+ offsetY: number;
1402
+ opacityDecay: number;
1403
+ color1?: string;
1404
+ color2?: string;
1405
+ color3?: string;
1406
+ color4?: string;
1407
+ };
1408
+ text?: string;
1409
+ };
1410
+ /**
1411
+ * Formats Zod validation errors into human-readable messages
1412
+ * @param error - The Zod error object
1413
+ * @returns Array of formatted error messages
1414
+ */
1415
+ declare function formatValidationErrors(error: z.ZodError): string[];
1416
+ type ValidatedEffectDefinition = z.infer<typeof EffectFullDefinitionSchema>;
1417
+ type ValidatedTextEffectDefinition = z.infer<typeof TextEffectDefinitionSchema>;
1418
+
296
1419
  declare function renderTextEffectCore(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, cfg: TextEffectConfig): void;
297
1420
  declare class TextEffectRenderer {
298
1421
  static draw(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, cfg: TextEffectConfig, _time?: number): void;
@@ -1441,4 +2564,4 @@ declare class InkBrushEngine {
1441
2564
  drawFrame(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D): void;
1442
2565
  }
1443
2566
 
1444
- export { type AnimBuildOpts, type AnimKeyframe, type AnimTrack, type AnimTrackDef, type AnimatableParamDef, type AnimationCategory, type BatchInjection, COMPOSITION_PRESETS, CUSTOM_ENGINE_IDS, CanvasDevice, type CompositionPreset, type CompositorFromScene, type CompositorSettings, type CustomEngineId, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_DURATION, DEFAULT_FONT_SIZE, DEFAULT_FPS, DEFAULT_TEXT_STYLE, type DotLottieManifest, type DrawPerCharTextOptions, EMPHASIS_PRESETS, ENGINE_ID_TO_LEGACY, ENTRANCE_PRESETS, EXIT_PRESETS, type EasingControlPoint, type EffectFullDefinition, type EffectIndexItem, type EffectLayer, type EffectLayerType, type EvaluateOptions, type EvaluatedTextLayer, FONT_WEIGHT_OPTIONS, type FillType, type FontDescriptor, type FontLoadResult, FontLoader, type FontVariant, type GifExportOptions, type GifFrame, type GlowLayer, type GradientDir, type GradientStop, InkBrushEngine, type Keyframe, LEGACY_RENDERER_MAP, LOOP_PRESETS, LOTTIE_ANIM_PRESETS, LOTTIE_TEMPLATE_PRESETS, type LayerTarget, type LottieAnimPreset, type LottieFileInfo, type LottieFontEntry, type LottieFontUsage, type LottieGradientStop, type LottieKeyframe, type LottiePropertyPath, type LottieTemplatePreset, type ParsedTextLayer, type PngSequenceFrame, type PngSequenceOptions, type Preset, SCENE_VERSION, SUPPORTED_FONT_FAMILIES, type SceneCanvas, type SceneDocument, type SceneText, type StyleRecipe, TEMPLATE_CATEGORIES, type TemplatePresetCategory, type TextAlign, type TextCustomization, TextEffectBuilder, type TextEffectConfig, type TextEffectDefinition, TextEffectRenderer, type TextLayerConfig, type TextLayerStyle, type TextLayoutBounds, type TextLayoutResult, type TextStyleOverride, type Timeline, WEBM_EXPORT_MAX_FRAMES, WebGLCompositor, type WebMExportOptions, _buildConfig, _resetPlatformCache, addImageLayer, addKeyframeAtTime, addOrUpdateKeyframe, addShapeLayer, addSolidLayer, addTextLayer, addTrack, addVectorShape, advanceSceneTime, alignToLottieJ, applyFillColorToAll, applyLetterSpacing, applyMaskReveal, applyRecipeToScene, applyStyleToLottie, applyStyleToLottieLayer, applyTimelineAtTime, bakeAnimationIntoLayer, blendConfigs, blendScenes, buildDotLottie, buildFontEntries, buildLottieFontName, buildPngSequenceZip, builtInPresets, builtInRecipes, captureLottieFrames, checkFontVariant, clearAnimationFromLayer, clearFontCache, clearRecipeCache, cloneSceneWithNewIds, computeAutoFitFontSize, computeFitZoom, computeTextLayout, countTextGlyphs, createBlankLottie, createCanvas, createDefaultRevealTrack, createEmptyScene, createPulseOpacityTrack, defaultConfig, deleteKeyframe, disposeSharedCompositor, downloadDotLottie, downloadLottieJson, downloadPngSequenceZip, downloadSceneWebM, drawPerCharText, drawRoundedRect, duplicateTrackAtPlayhead, ease, enableKeyframing, encodeGif, ensureDefaultTimeline, ensureFontInLottie, ensureFontsLoaded, evaluateConfig, evaluateScene, findTrackIndex, getAnimPreset, getAnimatableParamDef, getAnimatableParamsForLayer, getDefaultText, getFontLoader, getLayerById, getPresetScene, getSceneTime, getSupportedWebMMimeType, getTemplatePreset, getTemplatesByCategory, getWebMFrameCount, hexToLottieColor, hexToLottieRgb, initializeFontSystem, injectBatch, injectColor, injectFontVariantRules, injectGlobalTextStyle, injectSolidColor, injectText, injectTextStyle, isWebMExportSupported, layerToTextEffectConfig, loadLottieFonts, lottieColorToHex, lottieJToAlign, measureTextFits, mergeSceneIntoConfig, moveKeyframe, newLayerId, parseHistorySnapshot, parseLottieJson, preloadGoogleFont, presetToRecipe, pruneTracksForLayer, rainbowCharFillColors, readLayerScalar, readStyleFromLottieLayer, reindexLayers, releaseCanvas, removeKeyframe, removeTrack, renderPngSequence, renderSceneWebM, renderTextEffectCore, resetFontLoader, resetSceneTime, resizeCharFillColors, resolveAnimatedScalar, resolveCustomEngineId, resolveFontFamilyName, restoreLetterSpacing, scanLottieFonts, scanTextLayers, sceneToConfig, setCharFillColor, setSceneTime, setTracks, shouldUsePerCharFill, snapshotScene, sortKeyframes, supportsCtxFilter, supportsLetterSpacing, supportsOffscreenCanvas, supportsRoundRect, supportsWebGL2, syncCompositorFromScene, textEffectConfigToScene, trackId, updateKeyframe, updateSceneBevel, updateSceneCanvas, updateSceneCustomEngine, updateSceneFill, updateSceneGlow, updateScenePanel, updateSceneShadow, updateSceneStack, updateSceneStroke, updateSceneText, updateStaticProperty, updateTimeline, updateTrack, updateTrackMatte, upsertKeyframe, waitForFontsReady, wrapTextToWidth };
2567
+ export { type AnimBuildOpts, type AnimKeyframe, type AnimTrack, type AnimTrackDef, type AnimatableParamDef, type AnimationCategory, AnimationSchema, type BatchInjection, COMPOSITION_PRESETS, CUSTOM_ENGINE_IDS, CanvasDevice, type CompositionPreset, type CompositorFromScene, type CompositorSettings, type CustomEngineId, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_DURATION, DEFAULT_FONT_SIZE, DEFAULT_FPS, DEFAULT_TEXT_STYLE, type DotLottieManifest, type DrawPerCharTextOptions, EMPHASIS_PRESETS, ENGINE_ID_TO_LEGACY, ENTRANCE_PRESETS, EXIT_PRESETS, type EasingControlPoint, type EffectBevel, EffectBevelSchema, type EffectFill, EffectFillSchema, type EffectFullDefinition, EffectFullDefinitionSchema, type EffectGlow, EffectGlowSchema, type EffectIndexItem, EffectIndexItemSchema, type EffectLayer, type EffectLayerType, type EffectPanel, EffectPanelSchema, type EffectShadow, EffectShadowSchema, type EffectStack, EffectStackSchema, type EffectStroke, EffectStrokeSchema, type EvaluateOptions, type EvaluatedTextLayer, FONT_WEIGHT_OPTIONS, type FillType, type FontDescriptor, type FontLoadResult, FontLoader, FontSchema, type FontVariant, type GifExportOptions, type GifFrame, type GlowLayer, type GradientDir, type GradientStop, GradientStopSchema, InkBrushEngine, type Keyframe, LEGACY_RENDERER_MAP, LOOP_PRESETS, LOTTIE_ANIM_PRESETS, LOTTIE_TEMPLATE_PRESETS, type LayerTarget, type LottieAnimPreset, type LottieFileInfo, type LottieFontEntry, type LottieFontUsage, type LottieGradientStop, type LottieKeyframe, type LottiePropertyPath, type LottieTemplatePreset, type ParsedTextLayer, type PngSequenceFrame, type PngSequenceOptions, type Preset, SCENE_VERSION, SUPPORTED_FONT_FAMILIES, type SceneCanvas, type SceneDocument, type SceneText, type StyleRecipe, TEMPLATE_CATEGORIES, type TemplatePresetCategory, type TextAlign, type TextCustomization, TextEffectBuilder, type TextEffectConfig, type TextEffectDefinition, TextEffectDefinitionSchema, TextEffectRenderer, type TextLayerConfig, type TextLayerStyle, type TextLayoutBounds, type TextLayoutResult, type TextStyleOverride, type Timeline, type ValidatedEffectDefinition, type ValidatedTextEffectDefinition, WEBM_EXPORT_MAX_FRAMES, WebGLCompositor, type WebMExportOptions, _buildConfig, _resetPlatformCache, addImageLayer, addKeyframeAtTime, addOrUpdateKeyframe, addShapeLayer, addSolidLayer, addTextLayer, addTrack, addVectorShape, advanceSceneTime, alignToLottieJ, applyFillColorToAll, applyLetterSpacing, applyMaskReveal, applyRecipeToScene, applyStyleToLottie, applyStyleToLottieLayer, applyTimelineAtTime, bakeAnimationIntoLayer, blendConfigs, blendScenes, buildDotLottie, buildFontEntries, buildLottieFontName, buildPngSequenceZip, builtInPresets, builtInRecipes, captureLottieFrames, checkFontVariant, clearAnimationFromLayer, clearFontCache, clearRecipeCache, cloneSceneWithNewIds, computeAutoFitFontSize, computeFitZoom, computeTextLayout, countTextGlyphs, createBlankLottie, createCanvas, createDefaultRevealTrack, createEmptyScene, createPulseOpacityTrack, defaultConfig, deleteKeyframe, disposeSharedCompositor, downloadDotLottie, downloadLottieJson, downloadPngSequenceZip, downloadSceneWebM, drawPerCharText, drawRoundedRect, duplicateTrackAtPlayhead, ease, enableKeyframing, encodeGif, ensureDefaultTimeline, ensureFontInLottie, ensureFontsLoaded, evaluateConfig, evaluateScene, findTrackIndex, formatValidationErrors, getAnimPreset, getAnimatableParamDef, getAnimatableParamsForLayer, getDefaultText, getFontLoader, getLayerById, getPresetScene, getSceneTime, getSupportedWebMMimeType, getTemplatePreset, getTemplatesByCategory, getWebMFrameCount, hexToLottieColor, hexToLottieRgb, initializeFontSystem, injectBatch, injectColor, injectFontVariantRules, injectGlobalTextStyle, injectSolidColor, injectText, injectTextStyle, isWebMExportSupported, layerToTextEffectConfig, loadLottieFonts, lottieColorToHex, lottieJToAlign, measureTextFits, mergeSceneIntoConfig, moveKeyframe, newLayerId, parseHistorySnapshot, parseLottieJson, preloadGoogleFont, presetToRecipe, pruneTracksForLayer, rainbowCharFillColors, readLayerScalar, readStyleFromLottieLayer, reindexLayers, releaseCanvas, removeKeyframe, removeTrack, renderPngSequence, renderSceneWebM, renderTextEffectCore, resetFontLoader, resetSceneTime, resizeCharFillColors, resolveAnimatedScalar, resolveCustomEngineId, resolveFontFamilyName, restoreLetterSpacing, scanLottieFonts, scanTextLayers, sceneToConfig, setCharFillColor, setSceneTime, setTracks, shouldUsePerCharFill, snapshotScene, sortKeyframes, supportsCtxFilter, supportsLetterSpacing, supportsOffscreenCanvas, supportsRoundRect, supportsWebGL2, syncCompositorFromScene, textEffectConfigToScene, trackId, updateKeyframe, updateSceneBevel, updateSceneCanvas, updateSceneCustomEngine, updateSceneFill, updateSceneGlow, updateScenePanel, updateSceneShadow, updateSceneStack, updateSceneStroke, updateSceneText, updateStaticProperty, updateTimeline, updateTrack, updateTrackMatte, upsertKeyframe, validateEffectDefinition, validateEffectDefinitionStrict, validateTextEffectDefinition, validateTextEffectDefinitionStrict, waitForFontsReady, wrapTextToWidth };