import { MaterialEffect } from "../../materials/MaterialEffect.js"; import { Trait, World } from "koota"; //#region src/ecs/systems/batchReassignSystem.d.ts /** * Create a batch-reassign system bound to its own scratch state. * * Each SpriteGroup constructs one. The returned function takes a world * + effect-trait map and moves sprites between batches when their sort * key (layer or material) changes. * * Triggered by Changed(SortLayer), Changed(SpriteMaterialRef), or * Changed(CameraLayersMask) on batched sprites. If the new * (sortLayer, materialId, layers.mask) differs from the current batch's * run, removes from old batch and inserts into the correct one. * * zIndex changes within the same run do NOT require * batch movement — Z-offset handles depth sorting. * * Closes over its own `Changed` subscription + reused dedup Set so each * group has clean change-tracking state and the Set is cleared-and- * filled instead of allocated per frame. */ declare function createBatchReassignSystem(): (world: World, effectTraits: ReadonlyMap) => void; //#endregion export { createBatchReassignSystem }; //# sourceMappingURL=batchReassignSystem.d.ts.map