/** * Returns a lerp smoother that animates a value towards a target value. Lerp smoothing * is conceptually similar to easing, but can be used when the current and target * values are not known in advance. * * Read more at: https://www.gamedeveloper.com/programming/improved-lerp-smoothing- * * @param {import("../utils/animator.js").default} animator * @param {(value: T) => void} callback Function to be called with the interpolated value * @param {number} halfLife Time until half of the value is reached, in milliseconds * @param {number} stopAt Stop animation when the value is within this distance from the target * @param {T} initialValue Initial value * @returns {((target: T) => void) & { stop: () => void}} Function that activates the transition with a new target value * @template {Record} T */ export function makeLerpSmoother>(animator: import("../utils/animator.js").default, callback: (value: T) => void, halfLife: number, stopAt: number, initialValue: T): ((target: T) => void) & { stop: () => void; }; export default class Animator { /** * * @param {function(number):void} renderCallback */ constructor(renderCallback: (arg0: number) => void); _renderCallback: (arg0: number) => void; _renderRequested: boolean; _warn: boolean; /** @type {(function(number):void)[]} */ transitions: ((arg0: number) => void)[]; /** * Schedules a "transition" to be called before the actual rendering * is preformed. The transition could adjust the layout, for example. * This method also requests rendering to be performed. * * If the callback has already been requested (compared by identity), * it is removed from the queue and added to the end. * * @param {function(number):void} callback */ requestTransition(callback: (arg0: number) => void): void; /** * @param {function(number):void} callback */ cancelTransition(callback: (arg0: number) => void): void; /** * Requests the request transitions and rendering callback to be called * during the next animation frame. Redundant calls to this method are safe, * they have no effect. */ requestRender(): void; /** * Initiates a transition with a `requestAnimationFrame` that is synced * with this Animator instance. * * @param {import("./transition.js").TransitionOptions} options */ transition(options: import("./transition.js").TransitionOptions): Promise; } //# sourceMappingURL=animator.d.ts.map