import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js"; import "@babylonjs/core/Meshes/thinInstanceMesh.js"; import "@babylonjs/core/Meshes/instancedMesh.js"; import type { RuntimeServiceContext, RuntimeServiceInstance } from "./runtime-service-registry.js"; export type InstanceMatrix = readonly number[] | Float32Array; export interface InstanceBatchService extends RuntimeServiceInstance { /** Stable runtime identity; matrices are source-parent-local, column-major. */ add(id: string, matrix: InstanceMatrix): void; update(id: string, matrix: InstanceMatrix): void; remove(id: string): boolean; ids(): readonly string[]; /** Regular instances resolve by mesh identity without an index or revision. */ resolvePick(mesh: AbstractMesh | null): string | null; /** Thin instances require the index and revision observed when picking. */ resolvePick(mesh: AbstractMesh | null, thinInstanceIndex: number, expectedRevision: number): string | null; } export declare function prepareInstanceBatch(context: RuntimeServiceContext): InstanceBatchService; //# sourceMappingURL=instances-service.d.ts.map