import { LeviarObject } from '../LeviarObject.js'; import type { LeviarObjectOptions } from '../types.js'; import type { SpriteClip, SpriteManager } from '../SpriteManager.js'; export interface SpriteAttribute { currentTime?: number; playbackRate?: number; src?: string; } export declare class Sprite = Record> extends LeviarObject { /** 연결된 SpriteManager */ private manager; /** 현재 재생 중인 클립 이름 */ private clipName; /** 현재 클립 정보 (Renderer에서 직접 참조) */ __clip: SpriteClip | null; /** 생성자 시점에 __manager가 없어서 보류된 src 값 */ private pendingSrc; /** 커스텀 재생 속도 (fps). undefined면 clip의 frameRate 사용 */ __playbackRate?: number; /** 현재 프레임 인덱스 (clip.start 기준 절대 인덱스) */ __currentFrame: number; /** 마지막 프레임 변경 시각 (rAF timestamp) */ __lastFrameTime: number; /** 재생 중 여부 */ __playing: boolean; /** 일시정지 여부 */ __paused: boolean; private static readonly DELEGATED_GETTERS; private static readonly DELEGATED_SETTERS; constructor(options?: LeviarObjectOptions); /** * SpriteManager를 연결합니다. */ __setManager(manager: SpriteManager): this; /** * 애니메이션 클립을 재생합니다. */ play(): this; /** 재생을 일시정지합니다. */ pause(): this; /** 애니메이션을 정지하고 처음으로 되돌립니다. */ stop(): this; /** * Renderer에서 매 프레임 호출하여 현재 프레임 인덱스를 업데이트합니다. */ __tick(timestamp: number): void; protected _getDelegatedAttribute(key: string): any; protected _setDelegatedAttribute(key: string, value: any): void; }