/**
Wrapper around babylonjs dynamic terrain.
See https://github.com/BabylonJS/Extensions/blob/b16eb03254c90438e8f6ea0ff5b3406f52035cd0/DynamicTerrain/src/babylon.dynamicTerrain.ts
 */
export class Terrain {
    constructor(world: any, params?: {
        xSize: number;
        zSize: number;
        visibility: number;
        material: any;
    });
    world: any;
    xSize: number;
    zSize: number;
    visibility: number;
    terrainMaterial: any;
    checkCollisions: boolean;
    enabled: boolean;
    sps: any;
    buildGrid(): void;
    mapData: Float32Array<ArrayBuffer>;
    params: {
        mapSubX: number;
        mapSubZ: number;
        mapData: Float32Array<ArrayBuffer>;
        terrainSub: number;
    };
    /** Height function used in constructor, intended to be overridden by subclasses
    @param x coordinate of current grid element
    @param y coordinate of current grid element
    @param index index of of current element in mapData array
    @param col current column
    @param row current row
    @returns 0
     */
    gridHeight(x: any, z: any, index: any, col: any, row: any): number;
    mesh(): any;
    init(scene: any): void;
    scene: any;
    terrain: any;
    setEnabled(flag: any): void;
    /** Returns true if both this terrain and terrain mesh exist, i.e. safe to use */
    isCreated(): any;
    /**
    Build Solid Particle System, e.g. trees and other objects seeded over the terrain.
    Called during initialization, before the terrain is created.
    This implementation does nothing.
    */
    buildSPS(): void;
    /**
    Returns index in mapData containing point closest to given x,y.
    Mapdata then contains x of the point on returned index, y at index+1 and z at index+2.
    */
    findIndex(x: any, z: any): number;
    /**
    Update a grid element at index to given coordinates.
     */
    update(index: any, x: any, y: any, z: any): void;
    /**
    Set height at given coordinates
    @param x coordinate
    @param y coordinate
    @param height new height
    @param refresh default true, triggers terrain update and renders the change
     */
    setHeight(x: any, z: any, height: any, refresh?: boolean): number;
    /**
    Set height at given coordinates
    @param x coordinate
    @param y coordinate
    @param height how much to raise
    @param refresh default true, triggers terrain update and renders the change
     */
    raise(x: any, z: any, height: any, refresh?: boolean): number;
    /**
    Set height at given coordinates
    @param x coordinate
    @param y coordinate
    @param depth how deep to dig
    @param refresh default true, triggers terrain update and renders the change
     */
    dig(x: any, z: any, depth: any, refresh?: boolean): number;
    /**
    Refresh (compute normals, update and render) the terrain.
    Normally terrain only updates when moving around, update needs to be forced after grid data (e.g. height) changes.
    @param force default true
     */
    refresh(force?: boolean): void;
    point(index: any): {
        x: any;
        y: any;
        z: any;
    };
}
