import * as PIXI from "pixi.js"; import { z } from "zod"; import { ExportOptions } from '../../Engine'; import { ReplaceMediaOptions } from '../../index'; import { ClipStyle } from "./ClipStyle"; import { PropertyAnimator } from "../animation/PropertyAnimator"; import { Effect, EffectSchema } from "../effect"; import { Filter, FilterSchema } from "../filter"; import { CropAnimationFilter } from "../filter/CropAnimationFilter"; import { MaskFilter, MaskFilterSchema, MaskWrapModeEnum } from "../filter/MaskFilter"; import { PropertyDescriptionTypeEnum } from "../library/types/Property.types"; import { BlendModeEnum, FitStyleEnum, WrapModeEnum } from '../../types/clip.types'; import { AnimationData } from '../../utils/animation/animation'; /** * Lifecycle state of a clip's runtime media resources. */ export declare enum ClipState { Idle = 0, Preloading = 1, Loaded = 2, Offloaded = 3 } /** * Built-in animation slots available on every clip. */ export declare enum AnimationTypeEnum { IN = "in", OUT = "out", LOOP = "loop" } /** * Options used when attaching one clip as a mask source for another clip. */ export interface MaskOptions { hideMaskClip?: boolean; wrapMode?: MaskWrapModeEnum; } /** * Mapping between SDK blend mode enums and the Pixi blend modes actually applied at render time. */ export declare const PixiBlendModeMap: Map; /** * Base serialized/runtime options accepted by clip constructors. * * Concrete clip implementations typically extend this with media-specific properties while inheriting * the common timing, styling, visibility, filter, and effect fields defined here. */ export interface ClipOptions { type?: string; id?: string; name?: string; mediaDataId?: string; subtitlesId?: string; subtitlesOffset?: number; startTime?: number; duration?: number; leftTrim?: number; rightTrim?: number; filters?: z.infer[]; effects?: z.infer[]; style?: Partial>; isVisible?: boolean; wrapMode?: WrapModeEnum; blendMode?: BlendModeEnum; } /** * Zod schema for the built-in animation controller payload embedded inside clip serialization. */ export declare const AnimationClassSchema: z.ZodObject<{ animationDataIn: z.ZodOptional; speed: z.ZodOptional; offset: z.ZodOptional; amplification: z.ZodOptional; inOutOfRange: z.ZodDefault>>; outOutOfRange: z.ZodDefault>>; propertyAnimations: z.ZodArray>>; outOutOfRange: z.ZodDefault>>; keyframes: z.ZodArray; easing: z.ZodDefault>>; space: z.ZodDefault>>; relativeProperty: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }, { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }, { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; }, { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>>; animationDataOut: z.ZodOptional; speed: z.ZodOptional; offset: z.ZodOptional; amplification: z.ZodOptional; inOutOfRange: z.ZodDefault>>; outOutOfRange: z.ZodDefault>>; propertyAnimations: z.ZodArray>>; outOutOfRange: z.ZodDefault>>; keyframes: z.ZodArray; easing: z.ZodDefault>>; space: z.ZodDefault>>; relativeProperty: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }, { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }, { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; }, { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>>; animationDataLoop: z.ZodOptional; speed: z.ZodOptional; offset: z.ZodOptional; amplification: z.ZodOptional; inOutOfRange: z.ZodDefault>>; outOutOfRange: z.ZodDefault>>; propertyAnimations: z.ZodArray>>; outOutOfRange: z.ZodDefault>>; keyframes: z.ZodArray; easing: z.ZodDefault>>; space: z.ZodDefault>>; relativeProperty: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }, { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }, { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; }, { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>>; animationInDuration: z.ZodDefault>; animationOutDuration: z.ZodDefault>; animationLoopCount: z.ZodDefault>; loopSmoothing: z.ZodDefault>; }, "strip", z.ZodTypeAny, { animationInDuration: number; animationOutDuration: number; animationLoopCount: number; loopSmoothing: number; animationDataIn?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataOut?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataLoop?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; }, { animationDataIn?: { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; } | undefined; animationDataOut?: { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; } | undefined; animationDataLoop?: { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; } | undefined; animationInDuration?: number | undefined; animationOutDuration?: number | undefined; animationLoopCount?: number | undefined; loopSmoothing?: number | undefined; }>; /** * Zod schema describing the persisted base clip payload shared by all clip implementations. */ export declare const ClipSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodString; name: z.ZodOptional; mediaDataId: z.ZodOptional; subtitlesId: z.ZodOptional; subtitlesOffset: z.ZodNumber; startTime: z.ZodNumber; duration: z.ZodNumber; leftTrim: z.ZodNumber; rightTrim: z.ZodNumber; filters: z.ZodArray; intensity: z.ZodNumber; }, "strip", z.ZodTypeAny, { intensity: number; id: string; provider: string; filterId: string; clipId?: string | undefined; }, { intensity: number; id: string; provider: string; filterId: string; clipId?: string | undefined; }>, "many">; effects: z.ZodArray; wrapMode: z.ZodOptional>; blendMode: z.ZodOptional>; style: z.ZodUnknown; text: z.ZodOptional; animationController: z.ZodOptional; speed: z.ZodOptional; offset: z.ZodOptional; amplification: z.ZodOptional; inOutOfRange: z.ZodDefault>>; outOutOfRange: z.ZodDefault>>; propertyAnimations: z.ZodArray>>; outOutOfRange: z.ZodDefault>>; keyframes: z.ZodArray; easing: z.ZodDefault>>; space: z.ZodDefault>>; relativeProperty: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }, { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }, { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; }, { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>>; animationDataOut: z.ZodOptional; speed: z.ZodOptional; offset: z.ZodOptional; amplification: z.ZodOptional; inOutOfRange: z.ZodDefault>>; outOutOfRange: z.ZodDefault>>; propertyAnimations: z.ZodArray>>; outOutOfRange: z.ZodDefault>>; keyframes: z.ZodArray; easing: z.ZodDefault>>; space: z.ZodDefault>>; relativeProperty: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }, { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }, { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; }, { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>>; animationDataLoop: z.ZodOptional; speed: z.ZodOptional; offset: z.ZodOptional; amplification: z.ZodOptional; inOutOfRange: z.ZodDefault>>; outOutOfRange: z.ZodDefault>>; propertyAnimations: z.ZodArray>>; outOutOfRange: z.ZodDefault>>; keyframes: z.ZodArray; easing: z.ZodDefault>>; space: z.ZodDefault>>; relativeProperty: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }, { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }, { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; }, { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }>>; animationInDuration: z.ZodDefault>; animationOutDuration: z.ZodDefault>; animationLoopCount: z.ZodDefault>; loopSmoothing: z.ZodDefault>; }, "strip", z.ZodTypeAny, { animationInDuration: number; animationOutDuration: number; animationLoopCount: number; loopSmoothing: number; animationDataIn?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataOut?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataLoop?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; }, { animationDataIn?: { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; } | undefined; animationDataOut?: { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; } | undefined; animationDataLoop?: { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; } | undefined; animationInDuration?: number | undefined; animationOutDuration?: number | undefined; animationLoopCount?: number | undefined; loopSmoothing?: number | undefined; }>>; customData: z.ZodOptional, "many">>; isVisible: z.ZodDefault; clipMasks: z.ZodOptional>; }, "strict", z.ZodTypeAny, { wrapMode: MaskWrapModeEnum; id: string; clipId: string; }, { id: string; clipId: string; wrapMode?: MaskWrapModeEnum | undefined; }>, "many">>; propertyAnimator: z.ZodOptional; keyframes: z.ZodArray, z.ZodString, z.ZodBoolean]>; handleIn: z.ZodObject<{ time: z.ZodNumber; value: z.ZodNumber; }, "strip", z.ZodTypeAny, { value: number; time: number; }, { value: number; time: number; }>; handleOut: z.ZodObject<{ time: z.ZodNumber; value: z.ZodNumber; }, "strip", z.ZodTypeAny, { value: number; time: number; }, { value: number; time: number; }>; hold: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: (string | number | boolean | number[]) & (string | number | boolean | number[] | undefined); time: number; handleIn: { value: number; time: number; }; handleOut: { value: number; time: number; }; hold?: boolean | undefined; }, { value: (string | number | boolean | number[]) & (string | number | boolean | number[] | undefined); time: number; handleIn: { value: number; time: number; }; handleOut: { value: number; time: number; }; hold?: boolean | undefined; }>, "many">; defaults: z.ZodOptional>; handleOut: z.ZodOptional>; hold: z.ZodOptional; }, "strip", z.ZodTypeAny, { handleIn?: { value: number; time: number; } | undefined; handleOut?: { value: number; time: number; } | undefined; hold?: boolean | undefined; }, { handleIn?: { value: number; time: number; } | undefined; handleOut?: { value: number; time: number; } | undefined; hold?: boolean | undefined; }>>; customData: z.ZodOptional, "many">>; }, "strip", z.ZodTypeAny, { type: PropertyDescriptionTypeEnum; property: string; keyframes: { value: (string | number | boolean | number[]) & (string | number | boolean | number[] | undefined); time: number; handleIn: { value: number; time: number; }; handleOut: { value: number; time: number; }; hold?: boolean | undefined; }[]; defaults?: { handleIn?: { value: number; time: number; } | undefined; handleOut?: { value: number; time: number; } | undefined; hold?: boolean | undefined; } | undefined; customData?: [string, unknown][] | undefined; }, { type: PropertyDescriptionTypeEnum; property: string; keyframes: { value: (string | number | boolean | number[]) & (string | number | boolean | number[] | undefined); time: number; handleIn: { value: number; time: number; }; handleOut: { value: number; time: number; }; hold?: boolean | undefined; }[]; defaults?: { handleIn?: { value: number; time: number; } | undefined; handleOut?: { value: number; time: number; } | undefined; hold?: boolean | undefined; } | undefined; customData?: [string, unknown][] | undefined; }>, "many">; initialValues: z.ZodOptional, z.ZodString, z.ZodBoolean]>], null>, "many">>; }, "strip", z.ZodTypeAny, { tracks: { type: PropertyDescriptionTypeEnum; property: string; keyframes: { value: (string | number | boolean | number[]) & (string | number | boolean | number[] | undefined); time: number; handleIn: { value: number; time: number; }; handleOut: { value: number; time: number; }; hold?: boolean | undefined; }[]; defaults?: { handleIn?: { value: number; time: number; } | undefined; handleOut?: { value: number; time: number; } | undefined; hold?: boolean | undefined; } | undefined; customData?: [string, unknown][] | undefined; }[]; initialValues?: [string, string | number | boolean | number[]][] | undefined; }, { tracks: { type: PropertyDescriptionTypeEnum; property: string; keyframes: { value: (string | number | boolean | number[]) & (string | number | boolean | number[] | undefined); time: number; handleIn: { value: number; time: number; }; handleOut: { value: number; time: number; }; hold?: boolean | undefined; }[]; defaults?: { handleIn?: { value: number; time: number; } | undefined; handleOut?: { value: number; time: number; } | undefined; hold?: boolean | undefined; } | undefined; customData?: [string, unknown][] | undefined; }[]; initialValues?: [string, string | number | boolean | number[]][] | undefined; }>>; }, "strip", z.ZodTypeAny, { type: string; id: string; duration: number; subtitlesOffset: number; startTime: number; leftTrim: number; rightTrim: number; filters: { intensity: number; id: string; provider: string; filterId: string; clipId?: string | undefined; }[]; effects: any[]; isVisible: boolean; name?: string | undefined; mediaDataId?: string | undefined; subtitlesId?: string | undefined; wrapMode?: WrapModeEnum | undefined; blendMode?: BlendModeEnum | undefined; style?: unknown; text?: string | undefined; animationController?: { animationInDuration: number; animationOutDuration: number; animationLoopCount: number; loopSmoothing: number; animationDataIn?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataOut?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataLoop?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; } | undefined; customData?: [string, unknown][] | undefined; clipMasks?: { wrapMode: MaskWrapModeEnum; id: string; clipId: string; }[] | undefined; propertyAnimator?: { tracks: { type: PropertyDescriptionTypeEnum; property: string; keyframes: { value: (string | number | boolean | number[]) & (string | number | boolean | number[] | undefined); time: number; handleIn: { value: number; time: number; }; handleOut: { value: number; time: number; }; hold?: boolean | undefined; }[]; defaults?: { handleIn?: { value: number; time: number; } | undefined; handleOut?: { value: number; time: number; } | undefined; hold?: boolean | undefined; } | undefined; customData?: [string, unknown][] | undefined; }[]; initialValues?: [string, string | number | boolean | number[]][] | undefined; } | undefined; }, { type: string; id: string; duration: number; subtitlesOffset: number; startTime: number; leftTrim: number; rightTrim: number; filters: { intensity: number; id: string; provider: string; filterId: string; clipId?: string | undefined; }[]; effects: any[]; name?: string | undefined; mediaDataId?: string | undefined; subtitlesId?: string | undefined; wrapMode?: WrapModeEnum | undefined; blendMode?: BlendModeEnum | undefined; style?: unknown; text?: string | undefined; animationController?: { animationDataIn?: { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; } | undefined; animationDataOut?: { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; } | undefined; animationDataLoop?: { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: import('../../index').EasingEnum | undefined; space?: import('../../index').AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: import('../../index').OutOfRangeEnum | undefined; outOutOfRange?: import('../../index').OutOfRangeEnum | undefined; } | undefined; animationInDuration?: number | undefined; animationOutDuration?: number | undefined; animationLoopCount?: number | undefined; loopSmoothing?: number | undefined; } | undefined; customData?: [string, unknown][] | undefined; isVisible?: boolean | undefined; clipMasks?: { id: string; clipId: string; wrapMode?: MaskWrapModeEnum | undefined; }[] | undefined; propertyAnimator?: { tracks: { type: PropertyDescriptionTypeEnum; property: string; keyframes: { value: (string | number | boolean | number[]) & (string | number | boolean | number[] | undefined); time: number; handleIn: { value: number; time: number; }; handleOut: { value: number; time: number; }; hold?: boolean | undefined; }[]; defaults?: { handleIn?: { value: number; time: number; } | undefined; handleOut?: { value: number; time: number; } | undefined; hold?: boolean | undefined; } | undefined; customData?: [string, unknown][] | undefined; }[]; initialValues?: [string, string | number | boolean | number[]][] | undefined; } | undefined; }>; /** * Manages the built-in in, out, and loop animation controllers attached to a clip. */ export declare class AnimationClass { private readonly refClip; private animationControllerIn?; private animationControllerLoop?; private animationControllerOut?; private lastAnimationUpdateTime?; private animationInDuration; private animationOutDuration; private animationLoopCount; private loopSmoothing; private onAnimationChanged?; /** * Creates an animation controller wrapper for a clip. * * @param refClip Clip whose animatable properties are driven by this controller. */ constructor(refClip: Clip); /** * Registers a callback invoked after the configured animation set changes. * * @param callback Callback to invoke after animation definitions are added, removed, or replaced. * @returns Nothing. */ setOnAnimationChanged(callback: () => void): void; private refresh; private recordCurrentAnimationStateUndo; /** * Assigns animation data to one of the clip animation slots. * * @param type Animation slot to replace. * @param animationData Animation definition to load. * @param duration Optional timeline duration to use for the animation slot. * @returns Nothing. */ setAnimation(type: AnimationTypeEnum, animationData: AnimationData, duration?: number): void; /** * Loads animation data from a URL and assigns it to one of the clip animation slots. * * @param type Animation slot to replace. * @param url URL that resolves to animation data understood by the animation controller. * @param duration Optional timeline duration to use for the animation slot. * @returns A promise that resolves after the animation has been loaded and applied. */ loadAnimation(type: AnimationTypeEnum, url: string, duration?: number): Promise; /** * Removes the animation assigned to the specified slot. * * @param type Animation slot to clear. * @returns Nothing. */ removeAnimation(type: AnimationTypeEnum): void; /** * Returns the animation data currently assigned to a slot. * * @param type Animation slot to inspect. * @returns The animation data for the slot, or `undefined` if no animation is configured. */ getAnimationData(type: AnimationTypeEnum): AnimationData | undefined; /** * Returns the configured timeline duration for an animation slot. * * @param type Animation slot to inspect. * @returns The configured duration or loop count value for the slot. */ getAnimationDuration(type: AnimationTypeEnum): number; /** * Sets the timeline duration used by an animation slot. * * @param type Animation slot to update. * @param duration Duration in seconds for `in`/`out`, or loop span metadata for `loop`. * @returns Nothing. */ setAnimationDuration(type: AnimationTypeEnum, duration: number): void; /** * Sets how many times the loop animation should repeat across the clip body. * * @param count Loop repetition count. * @returns Nothing. */ setLoopCount(count: number): void; /** * Returns the configured loop repetition count. * * @returns The number of loop repetitions. */ getLoopCount(): number; /** * Sets fade-in and fade-out smoothing applied to loop animation playback. * * @param smoothing Smoothing factor used near loop boundaries. * @returns Nothing. */ setLoopSmoothing(smoothing: number): void; /** * Returns the current loop smoothing factor. * * @returns The loop smoothing factor. */ getLoopSmoothing(): number; /** * Returns the union of all properties animated by the configured in, out, and loop animations. * * @returns The animated property keys. */ getAnimatedProperties(): Set; /** * Evaluates the active clip animations at the provided timeline time and applies their values to the clip. * * @param currentTime Current timeline time in seconds. * @param forceUpdate When `true`, bypasses the last-time cache and reapplies animation values. * @returns Nothing. */ update(currentTime: number, forceUpdate?: boolean): void; /** * Serializes the clip animation controller state. * * @returns The serialized animation controller payload. */ serialize(): { animationInDuration: number; animationOutDuration: number; animationLoopCount: number; loopSmoothing: number; animationDataIn?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataOut?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataLoop?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; }; /** * Restores animation controller state from serialized data. * * @param payload Serialized animation controller payload. * @returns Nothing. */ deserialize(payload: object): void; } /** * Base class for all timeline clips, including media clips, text clips, shapes, and other renderable items. */ export declare class Clip { id: string; protected name: string; protected startTime: number; protected duration: number; protected leftTrim: number; protected rightTrim: number; protected filters: Filter[]; protected effects: Effect[]; protected wrapMode: WrapModeEnum; protected blendMode: BlendModeEnum; protected mediaDataId?: string; protected subtitlesId?: string; protected subtitlesOffset: number; protected type: string; protected customData?: Map; protected maskFilters: MaskFilter[]; protected maskTargetClipIds: string[]; protected cropAnimationFilter: CropAnimationFilter | null; protected isVisible: boolean; sprite: T; style: K; state: ClipState; protected insideInTransition: boolean; protected insideOutTransition: boolean; protected transitionInId: string | null; protected transitionOutId: string | null; protected layerId: string; protected clipMasksLazyDeserialize: z.infer[]; animationController: AnimationClass; propertyAnimator: PropertyAnimator; private lastPropertyAnimatorTime?; private antialiasFixFilter; /** * Creates a clip with timeline timing, styling, filters, effects, and optional media bindings. * * @param options Initial clip configuration. */ constructor(options: ClipOptions); /** * Attaches the clip to a layer render container and initializes runtime-only resources. * * @param layerId Layer ID that owns this clip. * @returns A promise that resolves after initialization completes. */ init(layerId: string): Promise; /** * Resets every animated clip property back to its non-animated base value. * * @returns Nothing. */ resetAllAnimationProperties(): void; /** * Applies a single animated property value to the clip runtime state. * * @param property Registered animation property key. * @param value Value to apply. * @returns Nothing. */ setAnimationPropertyValue(property: string, value: any): void; getAnimationPropertyValue(property: string): number | string; /** * Resets a single animated property back to its base clip/style value. * * @param property Registered animation property key. * @returns Nothing. */ resetAnimationPropertyValue(property: string): void; protected registerAnimatableProperties(): void; registerEffectProperties(effect: Effect): void; unregisterEffectProperties(effect: Effect): void; registerFilterProperties(filter: Filter): void; unregisterFilterProperties(filter: Filter): void; /** * Stores arbitrary metadata on the clip. * * @param key Metadata key. * @param value Metadata value. * @param overwrite Whether an existing key may be overwritten. * @returns `true` if the value was stored; otherwise `false` when `overwrite` is disabled and the key already exists. */ setCustomData(key: string, value: unknown, overwrite?: boolean): boolean; /** * Returns a stored metadata value for the clip. * * @param key Metadata key to look up. * @returns The stored value, or `undefined` if the key is not present. */ getCustomData(key: string): unknown; /** * Indicates whether the clip has a stored metadata value for the provided key. * * @param key Metadata key to test. * @returns `true` if the key exists; otherwise `false`. */ hasCustomData(key: string): boolean; /** * Removes all custom metadata stored on the clip. * * @returns Nothing. */ clearAllCustomData(): void; /** * Replaces all custom clip metadata with a copy of the provided map. * * @param data Metadata entries to store. * @returns Nothing. */ setAllCustomData(data: Map): void; /** * Returns a copy of all custom metadata stored on the clip. * * @returns A copied metadata map, or `undefined` if no custom data has been stored. */ getAllCustomData(): Map | undefined; /** * Returns the ID of the layer that currently owns the clip. * * @returns The owning layer ID. */ getLayerId(): string; /** * Updates the owning layer ID tracked by the clip. * * @param layerId Owning layer ID. * @returns Nothing. */ setLayerId(layerId: string): void; /** * Returns the user-visible clip name. * * @returns The clip name. */ getName(): string; /** * Indicates whether the clip has a non-empty user-visible name. * * @returns `true` if a name is set; otherwise `false`. */ hasName(): boolean; /** * Sets the user-visible clip name. * * @param name Name to assign. * @returns Nothing. */ setName(name: string): void; /** * Indicates whether the clip has enough runtime state to render and update. * * @returns `true` when the clip is idle or loaded; otherwise `false`. */ isReady(): boolean; /** * Returns the clip ID. * * @returns The clip ID. */ getId(): string; /** * Returns the clip start time in timeline space. * * @returns The clip start time in seconds. */ getStartTime(): number; /** * Returns the clip end time in timeline space. * * @returns The clip end time in seconds. */ getEndTime(): number; /** * Returns the amount trimmed from the left edge of the clip. * * @returns Left trim in seconds. */ getLeftTrim(): number; /** * Returns the amount trimmed from the right edge of the clip. * * @returns Right trim in seconds. */ getRightTrim(): number; /** * Returns the first visible playback time of the clip after left trim is applied. * * @returns The left playback bound in seconds. */ getLeftBound(): number; /** * Returns the final visible playback time of the clip after right trim is applied. * * @returns The right playback bound in seconds. */ getRightBound(): number; /** * Returns the playable duration after both trims are applied. * * @returns The trimmed duration in seconds. */ getTrimmedDuration(): number; /** * Returns the filters currently attached to the clip. * * @returns The clip filters. */ getFilters(): Filter[]; /** * Returns the effects currently attached to the clip. * * @returns The clip effects. */ getEffects(): Effect[]; /** * Returns the mask filters currently applied to the clip. * * @returns The clip mask filters. */ getMasks(): MaskFilter[]; /** * Moves the clip forward or backward on the timeline by the provided offset. * * @param amount Time delta in seconds. * @returns Nothing. */ moveBy(amount: number): void; /** * Returns the clip type identifier. * * @returns The clip type. */ getType(): string; /** * Generates a new clip ID and updates dependent runtime objects that store that ID. * * @returns Nothing. */ generateNewId(): void; setStartTime(startTime: number): void; setLeftTrim(trim: number): void; setRightTrim(trim: number): void; /** * Returns the full clip duration before trims are applied. * * @returns The clip duration in seconds. */ getDuration(): number; getFilterById(filterId: string): Filter | undefined; getEffectById(effectId: string): Effect | undefined; /** * Marks whether the clip is currently inside an incoming transition. * * @param insideTransition Whether the clip participates in an incoming transition. * @returns Nothing. */ setInsideInTransition(insideTransition: boolean): void; /** * Marks whether the clip is currently inside an outgoing transition. * * @param insideTransition Whether the clip participates in an outgoing transition. * @returns Nothing. */ setInsideOutTransition(insideTransition: boolean): void; /** * Indicates whether the clip is currently part of any transition. * * @returns `true` if the clip is inside an incoming or outgoing transition; otherwise `false`. */ getInsideTransition(): boolean; /** * Sets the incoming transition ID currently associated with the clip. * * @param transitionId Incoming transition ID, or `null` to clear it. * @returns Nothing. */ setTransitionInId(transitionId: string | null): void; /** * Returns the incoming transition ID associated with the clip. * * @returns The incoming transition ID, or `null` if none is set. */ getTransitionInId(): string | null; /** * Sets the outgoing transition ID currently associated with the clip. * * @param transitionId Outgoing transition ID, or `null` to clear it. * @returns Nothing. */ setTransitionOutId(transitionId: string | null): void; /** * Returns the outgoing transition ID associated with the clip. * * @returns The outgoing transition ID, or `null` if none is set. */ getTransitionOutId(): string | null; /** * Returns the media asset ID currently bound to the clip. * * @returns The media asset ID, or `undefined` for clips without media. */ getMediaId(): string | undefined; /** * Indicates whether the clip is still processing asynchronous work. * * @returns `false` in the base implementation. Subclasses override this for clip-specific processing. */ getIsProcessing(): boolean; /** * Cancels or discards any in-progress asynchronous clip work. * * @returns Nothing. */ discardProcessing(): void; addFilter(filter: Filter): Filter; addFilter(filterId: string): Filter; removeFilter(id: string): void; addEffect(effect: Effect): Effect; addEffect(effectId: string, properties?: Record): Effect; removeAllEffectsByEffectId(effectId: string): void; removeEffect(id: string): void; /** * Tests whether a screen-space point falls inside the clip's local bounds. * * @param point Screen-space cursor coordinates. * @param ignoreVisibility When `true`, performs the hit test even if the sprite is not currently visible. * @returns `true` if the point hits the clip; otherwise `false`. */ hitTest(point: { cursorX: number; cursorY: number; }, ignoreVisibility?: boolean): boolean; /** * Releases clip-owned runtime resources, masks, transitions, effects, and cached lookup state. * * @returns Nothing. */ destroy(): void; onPlay(currentTime: number): Promise; onPause(currentTime: number): Promise; onResize(width: number, height: number): Promise; onRenderStart(options: ExportOptions): Promise; onRenderDone(canceled: boolean): Promise; /** * Indicates whether the clip is active on the specified timeline frame. * * @param currentTime Timeline time in seconds. * @returns `true` if the current frame falls within the clip playback bounds; otherwise `false`. */ isActive(currentTime: number): boolean; updateVisibility(currentTime: number): void; /** * Associates a subtitles asset with the clip and stores its playback offset. * * @param subtitlesId Subtitles asset ID to attach. * @param offset Global subtitles offset in seconds. * @returns Nothing. */ setSubtitles(subtitlesId: string, offset?: number): void; /** * Removes any subtitles association from the clip. * * @returns Nothing. */ removeSubtitles(): void; /** * Returns the subtitles asset ID currently assigned to the clip. * * @returns The subtitles asset ID, or `undefined` if none is assigned. */ getSubtitlesId(): string | undefined; /** * Replaces the subtitles asset ID assigned to the clip without changing the stored offset. * * @param subtitlesId Subtitles asset ID to assign. * @returns Nothing. */ setSubtitlesId(subtitlesId: string): void; /** * Returns the stored subtitles offset for the clip. * * @returns The subtitles offset in seconds. */ getSubtitlesOffset(): number; /** * Sets the stored subtitles offset for the clip. * * @param offset Subtitles offset in seconds. * @returns Nothing. */ setSubtitlesOffset(offset: number): void; render(currentTime: number): void; /** * * @description This is called after all the clips have been rendered in the preview, useful if you want to change some other clip states after rendering * @param currentTime - The current time of the timeline */ postRender(currentTime: number): void; updateMediaData(newMediaId?: string, options?: ReplaceMediaOptions): Promise; private addMaskTarget; private removeMaskTarget; protected maskTextureUpdated(): void; protected maskSpriteUpdated(): void; /** * Uses another clip as a mask source for this clip. * * @param clip Clip whose sprite should be used as the mask source. * @param options Optional mask behavior. * @returns The created mask filter, or `undefined` if the source clip has no sprite. */ addClipMask(clip: Clip, options?: MaskOptions): MaskFilter | undefined; /** * Removes a previously attached clip mask. * * @param clip Mask source clip to detach. * @returns Nothing. */ removeClipMask(clip: Clip): void; /** * Sets whether the clip sprite is renderable. * * @param visible Whether the clip should render. * @returns Nothing. */ setVisible(visible: boolean): void; /** * Indicates whether the clip is marked as visible. * * @returns `true` if the clip is renderable; otherwise `false`. */ getVisible(): boolean; /** * Sets the texture wrap mode used by the clip. * * @param wrapMode Wrap mode to apply. * @returns Nothing. */ setWrapMode(wrapMode: WrapModeEnum): void; /** * Returns the current texture wrap mode. * * @returns The configured wrap mode. */ getWrapMode(): WrapModeEnum; /** * Sets the clip blend mode and applies the matching PIXI blend mode. * * @param blendMode Blend mode to apply. * @returns Nothing. */ setBlendMode(blendMode: BlendModeEnum): void; /** * Returns the clip blend mode. * * @returns The configured blend mode. */ getBlendMode(): BlendModeEnum; protected setupBlendingMode(pixiBlendMode: PIXI.BLEND_MODES | undefined): void; private static readonly CROP_ANIMATION_PROPERTIES; private needsCropAnimationFilter; private updatePIXIFilters; protected updateCropAnimationFilter(): void; /** * Indicates whether the clip exposes a sprite that can be added to the render stage. * * @returns `true` in the base implementation. Sprite-less subclasses can override this. */ hasSprite(): boolean; protected fitToSize(oldFullWidth: number, oldFullHeight: number, oldWidth: number, oldHeight: number, oldScale: number[], newCrop: number[], fitStyle: FitStyleEnum, crop?: boolean): void; /** * Updates clip animations, keyframed properties, style state, and effect state for the current frame. * * @param currentTime Current timeline time in seconds. * @returns Nothing. */ update(currentTime: number): void; /** * Starts clip-specific preload work ahead of playback or rendering. * * @param currentTime Current timeline time in seconds. * @returns Nothing. */ preload(currentTime: number): void; /** * Creates a serialized copy of the clip with a new runtime instance. * * @returns A cloned clip instance. */ clone(): Clip>; protected postRendererInit(): void; /** * Serializes the clip into a project-safe payload. * * @returns The serialized clip payload. */ serialize(): { type: string; id: string; duration: number; subtitlesOffset: number; startTime: number; leftTrim: number; rightTrim: number; filters: { intensity: number; id: string; provider: string; filterId: string; clipId?: string | undefined; }[]; effects: any[]; isVisible: boolean; name?: string | undefined; mediaDataId?: string | undefined; subtitlesId?: string | undefined; wrapMode?: WrapModeEnum | undefined; blendMode?: BlendModeEnum | undefined; style?: unknown; text?: string | undefined; animationController?: { animationInDuration: number; animationOutDuration: number; animationLoopCount: number; loopSmoothing: number; animationDataIn?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataOut?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; animationDataLoop?: { name: string; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: import('../../index').EasingEnum; space: import('../../index').AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: import('../../index').OutOfRangeEnum; outOutOfRange: import('../../index').OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; } | undefined; } | undefined; customData?: [string, unknown][] | undefined; clipMasks?: { wrapMode: MaskWrapModeEnum; id: string; clipId: string; }[] | undefined; propertyAnimator?: { tracks: { type: PropertyDescriptionTypeEnum; property: string; keyframes: { value: (string | number | boolean | number[]) & (string | number | boolean | number[] | undefined); time: number; handleIn: { value: number; time: number; }; handleOut: { value: number; time: number; }; hold?: boolean | undefined; }[]; defaults?: { handleIn?: { value: number; time: number; } | undefined; handleOut?: { value: number; time: number; } | undefined; hold?: boolean | undefined; } | undefined; customData?: [string, unknown][] | undefined; }[]; initialValues?: [string, string | number | boolean | number[]][] | undefined; } | undefined; }; protected postDeserialize(validatedData: z.infer): void; static deserialize(data: object): Clip>; }