/** * Stochastic Conifer Tree Generator * * Generates pine, fir, and spruce silhouettes using L-system inspired * procedural generation with stochastic (random) variation. * * Unlike pure L-systems, this uses direct procedural generation with * noise-based variation for more control over silhouette shape. */ export type ConiferType = "pine" | "fir" | "spruce" | "cedar"; export interface ConiferBranch { startX: number; startY: number; endX: number; endY: number; thickness: number; level: number; } export interface ConiferFoliageCluster { x: number; y: number; width: number; height: number; angle: number; density: number; } export interface GeneratedConifer { branches: ConiferBranch[]; foliageClusters: ConiferFoliageCluster[]; silhouettePoints: Array<{ x: number; y: number; }>; bounds: { minX: number; maxX: number; minY: number; maxY: number; }; trunkBase: { x: number; y: number; }; type: ConiferType; } export interface ConiferConfig { type: ConiferType; height: number; baseWidth: number; topWidth: number; trunkHeight: number; trunkThickness: number; branchLayers: number; branchesPerLayer: number; branchAngle: number; branchDroop: number; branchLengthVariation: number; asymmetry: number; gnarliness: number; layerSpacingVariation: number; foliageDensity: number; foliageClumpiness: number; } export declare class StochasticConiferTree { private config; private noise; constructor(config?: Partial, seed?: number); generate(baseX: number, baseY: number): GeneratedConifer; private generateTrunk; private generateBranchLayers; private generateSilhouette; private calculateBounds; } /** * Create a randomized conifer configuration */ export declare function createRandomConiferConfig(type: ConiferType, scale?: number, seed?: number): Partial; //# sourceMappingURL=StochasticConiferTree.d.ts.map