import { z } from "zod"; /** * Value spaces supported by the legacy animation controller. * * These modes define how numeric keyframe values are combined with the current property state when applied. */ export declare enum AnimationSpaceEnum { ABSOLUTE = 0,// keyValue RELATIVE_ADDITIVE = 1,// propertyValue + keyValue RELATIVE_MULTIPLICATIVE = 2,// propertyValue * keyValue PERCENTAGE = 3,// propertyValue * keyValue / 100 ADDITIVE_MULTIPLICATIVE_TO_RELATIVE = 4 } /** * Behavior used when an evaluated time falls outside a property's or animation's defined keyframe range. */ export declare enum OutOfRangeEnum { NONE = "none", EXTEND = "extend", LOOP = "loop" } /** * Easing presets accepted by the legacy animation controller keyframe model. */ export declare enum EasingEnum { LinearIn = "linearIn", LinearOut = "linearOut", LinearInOut = "linearInOut", QuadraticIn = "quadraticIn", QuadraticOut = "quadraticOut", QuadraticInOut = "quadraticInOut", CubicIn = "cubicIn", CubicOut = "cubicOut", CubicInOut = "cubicInOut", QuarticIn = "quarticIn", QuarticOut = "quarticOut", QuarticInOut = "quarticInOut", QuinticIn = "quinticIn", QuinticOut = "quinticOut", QuinticInOut = "quinticInOut", SinusoidalIn = "sinusoidalIn", SinusoidalOut = "sinusoidalOut", SinusoidalInOut = "sinusoidalInOut", ExponentialIn = "exponentialIn", ExponentialOut = "exponentialOut", ExponentialInOut = "exponentialInOut", CircularIn = "circularIn", CircularOut = "circularOut", CircularInOut = "circularInOut", ElasticIn = "elasticIn", ElasticOut = "elasticOut", ElasticInOut = "elasticInOut", BackIn = "backIn", BackOut = "backOut", BackInOut = "backInOut", BounceIn = "bounceIn", BounceOut = "bounceOut", BounceInOut = "bounceInOut" } /** * Single legacy keyframe entry used by `AnimationController`. */ export interface Keyframe { time: number; value: number | string; easing?: EasingEnum; space?: AnimationSpaceEnum; relativeProperty?: string; } /** * Keyframed animation for one property in the legacy clip animation system. */ export interface PropertyAnimation { property: string; inOutOfRange?: OutOfRangeEnum; outOutOfRange?: OutOfRangeEnum; keyframes: Keyframe[]; } /** * Legacy animation payload used by the clip in/out/loop animation controller. */ export interface AnimationData { id?: string; name?: string; speed?: number; offset?: number; amplification?: number; inOutOfRange?: OutOfRangeEnum; outOutOfRange?: OutOfRangeEnum; propertyAnimations: PropertyAnimation[]; } /** * Zod schema for a serialized legacy keyframe. */ export declare const KeyframeSchema: z.ZodObject<{ time: z.ZodNumber; value: z.ZodUnion<[z.ZodNumber, z.ZodString]>; easing: z.ZodDefault>>; space: z.ZodDefault>>; relativeProperty: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: string | number; time: number; easing: EasingEnum; space: AnimationSpaceEnum; relativeProperty?: string | undefined; }, { value: string | number; time: number; easing?: EasingEnum | undefined; space?: AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }>; /** * Zod schema for a serialized legacy property animation track. */ export declare const PropertyAnimationSchema: z.ZodObject<{ property: z.ZodString; inOutOfRange: z.ZodDefault>>; outOutOfRange: z.ZodDefault>>; keyframes: z.ZodArray; easing: z.ZodDefault>>; space: z.ZodDefault>>; relativeProperty: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: string | number; time: number; easing: EasingEnum; space: AnimationSpaceEnum; relativeProperty?: string | undefined; }, { value: string | number; time: number; easing?: EasingEnum | undefined; space?: AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { property: string; keyframes: { value: string | number; time: number; easing: EasingEnum; space: AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: OutOfRangeEnum; outOutOfRange: OutOfRangeEnum; }, { property: string; keyframes: { value: string | number; time: number; easing?: EasingEnum | undefined; space?: AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: OutOfRangeEnum | undefined; outOutOfRange?: OutOfRangeEnum | undefined; }>; /** * Zod schema for a serialized legacy animation payload. */ export declare const AnimationDataSchema: z.ZodObject<{ name: z.ZodDefault; 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: EasingEnum; space: AnimationSpaceEnum; relativeProperty?: string | undefined; }, { value: string | number; time: number; easing?: EasingEnum | undefined; space?: AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { property: string; keyframes: { value: string | number; time: number; easing: EasingEnum; space: AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: OutOfRangeEnum; outOutOfRange: OutOfRangeEnum; }, { property: string; keyframes: { value: string | number; time: number; easing?: EasingEnum | undefined; space?: AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: OutOfRangeEnum | undefined; outOutOfRange?: OutOfRangeEnum | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { name: string; inOutOfRange: OutOfRangeEnum; outOutOfRange: OutOfRangeEnum; propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing: EasingEnum; space: AnimationSpaceEnum; relativeProperty?: string | undefined; }[]; inOutOfRange: OutOfRangeEnum; outOutOfRange: OutOfRangeEnum; }[]; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; }, { propertyAnimations: { property: string; keyframes: { value: string | number; time: number; easing?: EasingEnum | undefined; space?: AnimationSpaceEnum | undefined; relativeProperty?: string | undefined; }[]; inOutOfRange?: OutOfRangeEnum | undefined; outOutOfRange?: OutOfRangeEnum | undefined; }[]; name?: string | undefined; speed?: number | undefined; offset?: number | undefined; amplification?: number | undefined; inOutOfRange?: OutOfRangeEnum | undefined; outOutOfRange?: OutOfRangeEnum | undefined; }>; type SetCallbackType = (property: string, value: number | string) => void; type GetCallbackType = (property: string) => number | string; /** * Runtime evaluator for the SDK's legacy clip animation format. * * This controller predates the newer property animator system and is still used for clip-level in/out/loop * animations that drive property callbacks over time. */ export declare class AnimationController { private animationData; private setCallback; private getCallback; private initialized; private startTime; private endTime; private duration; private animatedProperties; constructor(setCallback: SetCallbackType, getCallback: GetCallbackType); loadFromUrl(url: string): Promise; loadFromAnimationData(data: AnimationData): this; private initialize; isLoaded(): boolean; getAnimatedProperties(): Set; getAnimationData(): AnimationData; setSpeed(speed: number): this; getSpeed(): number | undefined; setOffset(offset: number): this; getOffset(): number | undefined; setAmplification(amplification: number): this; getAmplification(): number | undefined; getStart(): number | undefined; getEnd(): number | undefined; getDuration(): number; private resolvePropertyValue; seek(time: number): this | undefined; } export {};