import { Observable } from '../../observable'; import { Animation } from '../animation'; import { Keyframe } from '../keyframe'; /** * Abstract base class for animation tracks. * Tracks are responsible for managing animated properties and responding to time-based updates. * * @param anim The associated Animation instance. * @param id Optional unique identifier for the track. */ export declare abstract class Track { readonly id?: string | undefined; /** @internal */ influencedPathsDirty: Observable; constructor(anim: Animation, id?: string | undefined); /** * Abstract getter for the list of paths influenced by the track. * Must be implemented by subclasses to return the relevant paths. * * @returns An array of strings representing the influenced paths. */ abstract get influencedPaths(): string[]; /** * Abstract method to compute the property value for a given path at a specific time. * Must be implemented by subclasses to provide the property computation logic. * * @param t The time at which to compute the property. * @param p The path of the property to compute. * @param valueBefore The initial value of the property before computation. * @param parentWeight Optional weight from the parent track. * @returns The computed property value. */ abstract computePathProperty(t: number, p: string, valueBefore: any, parentWeight?: number): any; /** * Determines if the track is stalled. Default implementation returns false. * * @returns A boolean indicating if the track is stalled. */ isStalled(): boolean; } /** * Resolves the interpolated value between two keyframes at a given time. * * @param t The current time. * @param before The keyframe before the current time. * @param after The keyframe after the current time, if any. * @returns The interpolated value. */ export declare function resolveKeyframeValue(t: number, before: Keyframe, after: Keyframe | undefined): any; /** * Finds the keyframes before and after a given time. * * @param keyframes An array of keyframes. * @param t The time for which to find the keyframes. * @returns A tuple containing the keyframes before and after the given time. */ export declare function resolveKeyframes(keyframes: Keyframe[], t: number): [before: Keyframe | undefined, after: Keyframe | undefined]; /** * Resolves the clip time and loop number for a given time within a clip. * * @param t The current time. * @param t0 The start time of the clip. * @param s0 The initial state time of the clip. * @param rate The rate of playback. * @param length The length of the clip. * @param timeBackwards A boolean indicating if time is moving backwards. * @param t1 Optional end time of the clip. * @returns A tuple containing the resolved clip time and loop number. */ export declare function resolveClipTimeLoops(t: number, t0: number, s0: number, rate: number, length: number, timeBackwards: boolean, t1?: number): [ct: number, loop: number];