import type { QueryTerm } from '@ecsia/core'; import type { InstancedMesh } from 'three'; import type { PositionDef, RotationDef, ScaleDef, SystemDefLike } from './schema.js'; export interface InstancedSyncOptions { /** The instanced mesh whose `instanceMatrix` is written. Its capacity caps the synced entity count. */ readonly mesh: InstancedMesh; /** Position component (`{ x, y, z }` f32). */ readonly position: PositionDef; /** Optional rotation quaternion (`{ x, y, z, w }` f32; identity when omitted). */ readonly rotation?: RotationDef; /** Optional scale (`{ x, y, z }` f32; (1,1,1) when omitted). */ readonly scale?: ScaleDef; /** Extra query terms to narrow the matched set (e.g. `has(Renderable)`, `without(Hidden)`). */ readonly where?: readonly QueryTerm[]; /** System name (default 'three:instancedSync'). */ readonly name?: string; } export declare function makeInstancedSyncSystem(opts: InstancedSyncOptions): SystemDefLike; //# sourceMappingURL=instanced-sync.d.ts.map