import { Animation } from './animation'; import { Animator } from './animator'; import { Vector3 } from '../modeling/transform'; /** * Advanced animation operations and utilities */ /** * Interpolation types */ export declare const InterpolationType: { readonly LINEAR: "linear"; readonly STEP: "step"; readonly BEZIER: "bezier"; readonly CATMULLROM: "catmullrom"; }; export type InterpolationType = typeof InterpolationType[keyof typeof InterpolationType]; /** * Evaluate animation at a specific time * Returns the interpolated values for all channels */ export declare function evaluateAnimation(animation: Animation, time: number, options?: { loop?: boolean; channels?: string[]; }): Record>; /** * Interpolate a specific channel at a given time */ export declare function interpolateChannel(animator: Animator, channel: string, time: number): Vector3 | null; /** * Blend two animations together */ export declare function blendAnimations(animation1: Animation, animation2: Animation, blendFactor: number, // 0 = animation1, 1 = animation2 time: number): Record>; /** * Optimize keyframes by removing redundant ones */ export declare function optimizeKeyframes(animator: Animator, channel: string, threshold?: number): number; /** * Create animation from keyframe data */ export declare function createAnimationFromKeyframes(name: string, keyframeData: Array<{ animatorKey: string; channel: string; time: number; value: Vector3; interpolation?: InterpolationType; }>, length?: number): Animation; /** * Extract animation segment (time range) */ export declare function extractAnimationSegment(animation: Animation, startTime: number, endTime: number): Animation; /** * Reverse animation */ export declare function reverseAnimation(animation: Animation): Animation; /** * Scale animation speed (time stretch/compress) */ export declare function scaleAnimationSpeed(animation: Animation, speedFactor: number): Animation; /** * Get animation duration (actual length based on keyframes) */ export declare function getAnimationDuration(animation: Animation): number; /** * Merge multiple animations into one */ export declare function mergeAnimations(animations: Animation[], options?: { offsetTime?: boolean; blendOverlap?: boolean; }): Animation; //# sourceMappingURL=animation_operations.d.ts.map