/** * Animation utility functions * Helper functions for animation operations */ import { Animation } from './animation'; import { Keyframe } from './keyframe'; /** * Snap time to nearest grid point */ export declare function snapTime(time: number, snapping?: number): number; /** * Get animation duration from keyframes */ export declare function getAnimationDurationFromKeyframes(keyframes: Keyframe[]): number; /** * Find keyframes in time range */ export declare function findKeyframesInRange(keyframes: Keyframe[], startTime: number, endTime: number): Keyframe[]; /** * Get keyframe before time */ export declare function getKeyframeBefore(keyframes: Keyframe[], time: number): Keyframe | undefined; /** * Get keyframe after time */ export declare function getKeyframeAfter(keyframes: Keyframe[], time: number): Keyframe | undefined; /** * Get keyframes at time (within epsilon) */ export declare function getKeyframesAtTime(keyframes: Keyframe[], time: number, epsilon?: number): Keyframe[]; /** * Sort keyframes by time */ export declare function sortKeyframesByTime(keyframes: Keyframe[]): Keyframe[]; /** * Remove duplicate keyframes (same time and channel) */ export declare function removeDuplicateKeyframes(keyframes: Keyframe[]): Keyframe[]; /** * Get all channels used in keyframes */ export declare function getChannelsFromKeyframes(keyframes: Keyframe[]): string[]; /** * Group keyframes by channel */ export declare function groupKeyframesByChannel(keyframes: Keyframe[]): Record; /** * Calculate animation FPS from keyframes */ export declare function calculateAnimationFPS(keyframes: Keyframe[]): number; /** * Check if animation is looping */ export declare function isAnimationLooping(animation: Animation): boolean; /** * Check if animation should hold at end */ export declare function shouldAnimationHold(animation: Animation): boolean; /** * Get effective animation length (accounting for keyframes) */ export declare function getEffectiveAnimationLength(animation: Animation): number; /** * Normalize animation time (handle looping) */ export declare function normalizeAnimationTime(time: number, animation: Animation): number; /** * Check if time is within animation bounds */ export declare function isTimeInAnimation(time: number, animation: Animation): boolean; //# sourceMappingURL=animation_utils.d.ts.map