/** * TreePlacer.ts * * Procedural tree placement: biome rules, collision avoidance, * density control, and distribution patterns. * * @module environment */ export interface TreeTemplate { id: string; meshId: string; minScale: number; maxScale: number; trunkRadius: number; biomes: string[]; probability: number; } export interface PlacedTree { id: string; templateId: string; position: [number, number, number]; scale: number; rotation: number; } export interface BiomeRule { id: string; name: string; density: number; minSpacing: number; heightRange: { min: number; max: number; }; slopeMax: number; } export declare class TreePlacer { private templates; private biomes; private trees; addTemplate(template: TreeTemplate): void; getTemplate(id: string): TreeTemplate | undefined; getTemplateCount(): number; addBiome(biome: BiomeRule): void; getBiome(id: string): BiomeRule | undefined; placeInRegion(biomeId: string, bounds: { x: number; z: number; w: number; h: number; }, heightSampler?: (x: number, z: number) => number, slopeSampler?: (x: number, z: number) => number, seed?: number): PlacedTree[]; private checkSpacing; private pickTemplate; getPlacedCount(): number; getAllTrees(): PlacedTree[]; getTreesInRadius(x: number, z: number, radius: number): PlacedTree[]; removeTree(id: string): boolean; clear(): void; } //# sourceMappingURL=TreePlacer.d.ts.map