import type { SpriteAtlas } from "../assets/spriteAtlas.js"; /** Serializable playback position for a named sprite animation. */ export interface SpriteClipState { animation: string; frameIndex: number; elapsed: number; done: boolean; } /** Create a renderer-independent sprite animation player. * @capability sprite-2d animate a sprite atlas clip from headless or rendered game code */ export declare function createSpriteClipPlayer(atlas: SpriteAtlas): { play(name: string): void; advance(dt: number): void; frame: () => { x: number; y: number; w: number; h: number; pivot?: [number, number]; } | undefined; snapshot: () => { animation: string; frameIndex: number; elapsed: number; done: boolean; }; restore(next: SpriteClipState): void; retune(next: { speed: number; }): void; }; /** Canonical layers used by 2D presentations. */ export declare const SortingLayers: readonly ["background", "world", "actors", "effects", "foreground", "ui"]; /** Resolve a layer name and local offset into a stable render order. * @capability sprite-2d order sprites by named presentation layers */ export declare function sortingOrder(layers: readonly string[], layer: string, offset?: number): number;