import { Axis, AxisManager } from "../AxisManager"; import { InterruptManager } from "../InterruptManager"; import { EventManager, ChangeEventOption } from "../EventManager"; import { AxesOption } from "../Axes"; import { AnimationParam, UpdateAnimationOption } from "../types"; export interface AnimationState { pos: Axis; easingPer: number; finished: boolean; } export declare abstract class AnimationManager { interruptManager: InterruptManager; eventManager: EventManager; axisManager: AxisManager; protected _options: AxesOption; protected _animateParam: AnimationParam; private _raf; constructor({ options, interruptManager, eventManager, axisManager, }: { options: AxesOption; interruptManager: InterruptManager; eventManager: EventManager; axisManager: AxisManager; }); abstract interpolate(displacement: number, threshold: number): number; abstract updateAnimation(options: UpdateAnimationOption): void; protected abstract _initState(info: AnimationParam): AnimationState; protected abstract _getNextState(prevState: AnimationState): AnimationState; getDuration(depaPos: Axis, destPos: Axis, wishDuration?: number): number; getDisplacement(velocity: number[]): number[]; stopAnimation(option?: ChangeEventOption): void; getEventInfo(): ChangeEventOption; restore(option: ChangeEventOption): void; animationEnd(): void; finish(isTrusted: boolean): void; getUserControl(param: AnimationParam): { destPos: Axis; duration: number; }; animateTo(destPos: Axis, duration: number, option?: ChangeEventOption): void; setTo(pos: Axis, duration?: number): this; setBy(pos: Axis, duration?: number): this; setOptions(options: AxesOption): void; private _createAnimationParam; private _animateLoop; private _getFinalPos; private _getRoundUnit; }