export default Water;
declare class Water {
    constructor(options: any);
    level: Vector1;
    /**
     *
     * @type {Color}
     */
    color: Color;
    /**
     * Defines what is considered as shore as well as how long is the transition between shore and deep water
     * @type {NumericInterval}
     */
    shoreDepthTransition: NumericInterval;
    /**
     * Color of the water at the shore
     * @type {Color}
     */
    shoreColor: Color;
    /**
     *
     * @type {Vector1}
     */
    waveSpeed: Vector1;
    /**
     *
     * @type {Vector1}
     */
    waveAmplitude: Vector1;
    /**
     *
     * @type {Vector1}
     */
    waveFrequency: Vector1;
    /**
     * Scattering of light, the higher this value is - the more opaque water will become
     * @type {Vector1}
     */
    scattering: Vector1;
    bvh: BvhClient;
    /**
     *
     * @type {ShaderMaterial}
     */
    __shader: ShaderMaterial;
    /**
     *
     * @type {Object3D}
     * @private
     */
    private __threeObject;
    updateTransform(): void;
    updateBounds(): void;
    /**
     *
     * @param {Terrain} terrain
     * @param {number} waterSize
     */
    updateShaderForTerrain(terrain: Terrain, waterSize: number): void;
    writeShaderUniforms(): void;
    fromJSON(json: any): void;
    toJSON(): {
        level: number;
        color: any;
    };
}
declare namespace Water {
    let typeName: string;
}
import Vector1 from "../../../../core/geom/Vector1.js";
import { Color } from "../../../../core/color/Color.js";
import { NumericInterval } from "../../../../core/math/interval/NumericInterval.js";
import { BvhClient } from "../../../../core/bvh2/bvh3/BvhClient.js";
//# sourceMappingURL=Water.d.ts.map