export type ManagedIconSource = HTMLImageElement | ImageBitmap | HTMLCanvasElement | OffscreenCanvas; export interface ManagedIconOptions { pixelRatio?: number; /** Anchor in 0..1 relative to sprite size. Default [0.5, 0.5]. */ anchor?: readonly [number, number]; } export interface PackedIcon { name: string; u0: number; v0: number; u1: number; v1: number; width: number; height: number; anchorX: number; anchorY: number; pixelRatio: number; } /** * Packs registered icons into a single canvas/texture atlas. * Rebuilds only on register/remove/clear — never on object moves. */ export declare class ObjectIconAtlas { #private; private readonly sources; private packed; private canvas; private textureVersion; private dirty; get version(): number; get size(): number; has(name: string): boolean; register(name: string, source: ManagedIconSource, options?: ManagedIconOptions): this; remove(name: string): this; clear(): this; getPacked(name: string): PackedIcon | null; getCanvas(): HTMLCanvasElement | OffscreenCanvas | null; names(): string[]; } //# sourceMappingURL=object-icon-atlas.d.ts.map