import { SpriteBatch } from "./SpriteBatch.js"; import { RegistryData, RunKey } from "../ecs/batchUtils.js"; import { World } from "koota"; //#region src/pipeline/batchQuery.d.ts /** * Opaque batch classification token. The underlying ECS trait never * leaks — the Koota dependency stays swappable behind this facade. */ interface BatchQueryTag { readonly __flBatchTag?: true; } /** Batch classification: material alpha-blends (`transparent`, no alphaTest). */ declare const IsAlphaBlendedBatch: BatchQueryTag; /** Batch classification: material alpha-tests (`alphaTest > 0`, opaque fast path). */ declare const IsAlphaTestedBatch: BatchQueryTag; /** Batch classification: material carries a lighting colorTransform. */ declare const IsLitBatch: BatchQueryTag; /** Batch classification: material is unlit. */ declare const IsUnlitBatch: BatchQueryTag; /** * Read-only view over a world's batches: a `Map` * with a classification query — * * ```ts * const lit = group.batches.where(IsLitBatch) * ``` * * Trait existence is the architectural fact; system implementations may * evolve from branch → query-narrowing as workload demands without * breaking this surface. */ declare class BatchQueryView extends Map { private _world; constructor(world: World | null, entries?: Iterable); /** All batches currently tagged with the given classification. */ where(tag: BatchQueryTag): SpriteBatch[]; } /** * Build a {@link BatchQueryView} from a world's registry data, keyed by * run key. Shared by `SpriteGroup.batches` and `Registry.batches` so the * run → mesh-list traversal has exactly one implementation. */ declare function buildBatchQueryView(world: World | null, registryData: RegistryData | null): BatchQueryView; //#endregion export { BatchQueryTag, BatchQueryView, IsAlphaBlendedBatch, IsAlphaTestedBatch, IsLitBatch, IsUnlitBatch, buildBatchQueryView }; //# sourceMappingURL=batchQuery.d.ts.map