import { BlendMode, SortLayerDescriptor, SortMode } from "./types.js"; import { Sprite2D } from "../sprites/Sprite2D.js"; //#region src/pipeline/SortLayerManager.d.ts /** * A managed sort layer containing sprites. */ declare class SortLayer { /** * Layer name. */ readonly name: string; /** * Layer value (render order). */ readonly value: number; /** * Sprites in this layer. */ private _sprites; /** * Blend mode for this layer. */ blendMode: BlendMode; /** * Sort mode for sprites in this layer. */ sortMode: SortMode; /** * Whether this layer is visible. */ private _visible; /** * Callback when visibility changes. */ onVisibilityChange?: (visible: boolean) => void; constructor(config: SortLayerDescriptor); /** * Get sprites in this layer. */ get sprites(): ReadonlySet; /** * Get sprite count. */ get count(): number; /** * Get visibility. */ get visible(): boolean; /** * Set visibility. */ set visible(value: boolean); /** * Add a sprite to this layer. */ add(sprite: Sprite2D): void; /** * Remove a sprite from this layer. */ remove(sprite: Sprite2D): void; /** * Check if layer contains a sprite. */ has(sprite: Sprite2D): boolean; /** * Clear all sprites from this layer. */ clear(): void; /** * Iterate over sprites in this layer. */ [Symbol.iterator](): Iterator; } /** * Manages named sort layers for 2D scenes. * * Provides a higher-level API for organizing sprites into layers. * Use with SpriteGroup for automatic batching and sorting. * * @example * ```typescript * const layers = new SortLayerManager() * * // Create layers * const entities = layers.createLayer({ name: 'entities', value: SortLayers.ENTITIES }) * const effects = layers.createLayer({ name: 'effects', value: SortLayers.EFFECTS }) * * // Add sprites to layers * layers.addToLayer('entities', playerSprite) * layers.addToLayer('effects', particleSprite) * * // Toggle layer visibility * layers.setLayerVisible('effects', false) * ``` * * @internal */ declare class SortLayerManager { /** * Layers by name. */ private _layers; /** * Layers by value (for fast lookup). */ private _layersByValue; /** * Create default layers based on the SortLayers constant. */ static withDefaults(): SortLayerManager; /** * Create a new layer. */ createLayer(config: SortLayerDescriptor): SortLayer; /** * Get a layer by name. */ getLayer(name: string): SortLayer | undefined; /** * Get a layer by value. */ getLayerByValue(value: number): SortLayer | undefined; /** * Remove a layer. */ removeLayer(name: string): boolean; /** * Add a sprite to a layer. */ addToLayer(layerName: string, sprite: Sprite2D): void; /** * Remove a sprite from its current layer. */ removeFromLayer(sprite: Sprite2D): void; /** * Move a sprite to a different layer. */ moveToLayer(sprite: Sprite2D, newLayerName: string): void; /** * Set layer visibility. */ setLayerVisible(name: string, visible: boolean): void; /** * Get layer visibility. */ isLayerVisible(name: string): boolean; /** * Toggle layer visibility. */ toggleLayerVisible(name: string): boolean; /** * Get all layer names. */ getLayerNames(): string[]; /** * Get all layers. */ getLayers(): SortLayer[]; /** * Check if a layer exists. */ hasLayer(name: string): boolean; /** * Get the number of layers. */ get count(): number; /** * Clear all layers. */ clear(): void; /** * Iterate over layers. */ [Symbol.iterator](): Iterator; } //#endregion export { SortLayer, SortLayerManager }; //# sourceMappingURL=SortLayerManager.d.ts.map