export class TerrainLayer {
    /**
     *
     * @param {string} url
     * @param {number} width
     * @param {number} height
     */
    static from(url: string, width: number, height: number): TerrainLayer;
    /**
     *
     * @param {TerrainLayerDescription} d
     * @returns {TerrainLayer}
     */
    static fromDescription(d: TerrainLayerDescription): TerrainLayer;
    /**
     *
     * @type {String}
     */
    textureDiffuseURL: string;
    /**
     *
     * @type {Sampler2D}
     */
    diffuse: Sampler2D;
    /**
     *
     * @type {Vector2}
     */
    size: Vector2;
    /**
     * Additional free-form JSON metadata
     * @type {Object}
     */
    extra: any;
    /**
     *
     * @type {Signal}
     */
    onChanged: Signal;
    toJSON(): {
        textureDiffuseURL: string;
        size: {
            x: number;
            y: number;
        };
        extra: any;
    };
    fromJSON({ textureDiffuseURL, size, extra }: {
        textureDiffuseURL: any;
        size: any;
        extra?: {};
    }): void;
    /**
     *
     * @param {AssetManager} assetManager
     * @returns {Promise}
     */
    loadTextureData(assetManager: AssetManager): Promise<any>;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isTerrainLayer: boolean;
}
import { Sampler2D } from "../../../../graphics/texture/sampler/Sampler2D.js";
import Vector2 from "../../../../../core/geom/Vector2.js";
import Signal from "../../../../../core/events/signal/Signal.js";
//# sourceMappingURL=TerrainLayer.d.ts.map