/** * Tree Silhouette Renderer * * Handles image-based tree rendering with depth-based atmospheric * perspective (tinting) and rim light effects. */ import type { TreeType, TreeColors, TreeSilhouetteStyle } from "../../domain/models/tree-silhouette-models.js"; import type { TreeSilhouetteImageLoader } from "../TreeSilhouetteImageLoader.js"; type RenderContext = CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D; export interface ITreeSilhouetteRenderer { /** Preload tree silhouette images */ preloadImages(): Promise; /** Check if images are loaded */ areImagesLoaded(): boolean; /** Clear the used images tracker for a fresh scene */ clearUsedImages(): void; /** * Draw a tree using a pre-loaded silhouette image. * Applies depth-based tinting for atmospheric perspective. * @returns The filename of the image used (for tracking), or null if no image available */ drawTreeImage(ctx: RenderContext, x: number, baseY: number, width: number, height: number, treeType: TreeType, layer: number, seed: number): string | null; /** Get silhouette color for a tree based on its layer depth */ getTreeColors(layer: number): TreeColors; /** * Get the ground/base Y position for a given layer. * Far trees sit BELOW the visible horizon. * Near trees extend below the viewport. */ getLayerBaseY(layer: number, canvasHeight: number): number; } export declare function createTreeSilhouetteRenderer(imageLoader: TreeSilhouetteImageLoader, layerCount?: number, styleOverrides?: Partial): ITreeSilhouetteRenderer; export {}; //# sourceMappingURL=TreeSilhouetteRenderer.d.ts.map