import { Group } from "three";
import type { LandscapeGenerateResult } from "./landscape-generator.worker";
import type { LandscapeDefinition } from "./landscape-types";
export declare class LandscapeMeshBuilder {
    static build(result: LandscapeGenerateResult, definition: LandscapeDefinition): Group;
    static applyWaterEffect(group: Group, radius: number): void;
    static removeWaterEffect(group: Group): void;
    /**
     * Replace the Water's onBeforeRender with a version that uses (0,1,0)
     * as the mirror normal instead of (0,0,1). This is the Three.js Water
     * mirror logic adapted for Y-up geometry in the XZ plane.
     */
    private static _installYUpMirror;
    private static _waterNormalsTexture;
    private static _createWaterNormals;
    private static buildContourGroup;
    static applyNightMode(group: Group): void;
    static removeNightMode(group: Group): void;
    static applyVehicles(group: Group, count?: number): void;
    static removeVehicles(group: Group): void;
    static updateVehicles(group: Group, delta: number): void;
    private static _extractRoadPaths;
    private static _pathLength;
    private static _positionOnPath;
    private static _carGeometry;
    private static _createCarMesh;
    private static addCircleClip;
    private static createGeometry;
}
