/** * Tree Silhouette System * * Orchestrates tree silhouette rendering by composing specialized services: * - TreePlacementResolver: Grid-based placement with collision detection * - EcologicalPatternProvider: Zone-based tree type distribution * - TreeSilhouetteRenderer: Image-based rendering with depth tinting * - TreeGenerator: Creates tree instances with proper positioning * * This system manages layer-based canvas caching and coordinates the render pipeline. */ import type { Dimensions } from "../../../core/domain/types.js"; import type { TreeType, TreeTypeVisibility, RenderedTree, PlacementConfig, EcologicalPattern, TreeSilhouetteSystemOptions } from "../domain/models/tree-silhouette-models.js"; import { NUM_LAYERS, ECOLOGICAL_PATTERNS } from "../domain/constants/tree-silhouette-constants.js"; export type { TreeType, TreeTypeVisibility, RenderedTree, PlacementConfig, EcologicalPattern, }; export { NUM_LAYERS, ECOLOGICAL_PATTERNS }; /** * Creates forest silhouettes rising from the bottom of the screen. * Trees are dark shapes against the sky - no ground layers needed. */ export declare function createTreeSilhouetteSystem(options?: TreeSilhouetteSystemOptions): { initialize: (dimensions: Dimensions) => void; preloadImages: () => Promise; draw: (ctx: CanvasRenderingContext2D, dimensions: Dimensions) => void; drawLayer: (ctx: CanvasRenderingContext2D, dimensions: Dimensions, layer: number) => void; handleResize: (_oldDimensions: Dimensions, newDimensions: Dimensions) => void; regenerate: (dimensions: Dimensions) => void; cleanup: () => void; setTreeVisibility: (visibility: Partial) => void; getTreeVisibility: () => TreeTypeVisibility; setPlacementConfig: (config: Partial) => void; getPlacementConfig: () => PlacementConfig; resetPlacementConfig: () => void; setEcologicalPattern: (patternId: string) => void; getEcologicalPatternId: () => string; getEcologicalPattern: () => EcologicalPattern; getAvailablePatterns: () => EcologicalPattern[]; setRandomEcologicalPattern: () => string; getRenderedTrees: () => RenderedTree[]; removeTree: (treeId: string) => boolean; removeTreesByImage: (imageFilename: string) => number; getTreeCounts: () => { total: number; byLayer: number[]; }; getLayerCount: () => number; }; //# sourceMappingURL=TreeSilhouetteSystem.d.ts.map