import { Color, ColorRepresentation, Euler, Quaternion, Vector2, Vector3, Vector4 } from 'three'; import { Easing } from './Easings.js'; export type Vector = Vector2 | Vector3 | Vector4; export type AllowedTypes = number | Vector | Quaternion | Euler | ColorRepresentation; export type Omitype = { [P in keyof T as T[P] extends U ? never : P]: T[P]; }; export type PickType = { [P in keyof T as T[P] extends U ? P : never]: T[P]; }; export type TransformType = { [P in keyof T]: T[P] extends U ? T[P] | V : T[P]; }; export type TransformedTypes = TransformType, Vector, number>; export type FilteredType = PickType>, AllowedTypes>; export type Motion = { [key in keyof FilteredType]: FilteredType[key]; }; export type SetMotion = { [key in keyof T]?: T[key]; }; /** * Interface for configuring motion animations in a Tween. * You can specify easing, callback functions, and progress tracking functions. * @template T - The type of the target object being tweened. */ export interface MotionConfig { /** The easing function to control the animation's progression. */ easing?: Easing; /** * A callback function to execute when the animation completes. * @param target - The target object that was tweened. */ onComplete?: (target: T) => void; /** * A callback function to execute when the animation starts. * @param target - The target object that is being tweened. */ onStart?: (target: T) => void; /** * A callback function to be executed after each property has been updated. * @param target - The target object that is being tweened. */ onUpdate?: (target: T) => void; /** * A callback function to be executed before each property is updated. * @param target - The target object that is being tweened. * @param key - The key or property being animated. * @param start - The initial value of the animated property. * @param end - The final value of the animated property. * @param alpha - The current animation progress as a normalized value (0 to 1). * @returns If `false`, will not assign a new value to the property. */ onProgress?: (target: T, key: string, start: AllowedTypes, end: AllowedTypes, alpha: number) => boolean | void; } //# sourceMappingURL=Actions.d.ts.map