import type { EasingType, AnimationEvents } from './types.js'; export type { EasingType } from './types.js'; import { EventEmitter } from './EventEmitter.js'; export declare const easings: Record number>; type DeepRecord = { [key: string]: number | string | DeepRecord; }; export type AnimationCallback = (state: Record) => void; export declare class Animation extends EventEmitter { private initialTarget; private rafId; private startTime; private pausedElapsed; private isPaused; private duration; private easingFn; private callback; private from; private to; constructor(target: DeepRecord); /** * 애니메이션을 시작합니다. * @param callback 매 프레임마다 현재 상태를 전달받는 콜백 * @param duration 지속 시간 (ms) * @param easing 이징 함수 이름 (기본값: 'linear') */ start(callback: AnimationCallback, duration: number, easing?: EasingType): this; pause(): this; resume(): this; stop(): this; private _tick; } /** LeviarObject의 animate()에서 사용 - source 객체를 직접 업데이트합니다. */ export declare function animateObject(source: Record, rawTarget: DeepRecord, duration: number, easing?: EasingType): Animation;