import type Ground from "@arcgis/core/Ground";
import type { ElevationLayerJson } from "./ElevationLayerJson";
import type { ColorJson } from "./SymbolJson";
/**
 * Ground defines the main surface of the web scene, based on elevation layers..
 *
 * See https://developers.arcgis.com/web-scene-specification/objects/ground/.
 */
export interface GroundJson {
    /**
     * An array of elevationLayer objects defining the elevation of the ground
     * in the web scene.
     */
    layers?: ElevationLayerJson[] | null;
    /**
     * Determines whether the camera is constrained to navigate only above, or
     * also under the ground surface.
     */
    navigationConstraint?: {
        /**
         * The type of constraint.
         */
        type: "none" | "stayAbove";
    } | null;
    /**
     * Defines the color of the ground surface, displayed underneath the
     * basemap. If no color, the default grid is shown.
     */
    surfaceColor?: ColorJson | null;
    /**
     * The transparency of the ground surface. It is used for seeing through the
     * ground, therefore this property also changes the transparency of the
     * basemap. Draped operational layers are not affected by this property. The
     * value has to lie between 100 (full transparency) and 0 (full opacity).
     */
    transparency?: number | null;
}
/**
 * Updates an ArcGIS JS API Ground from the given ground JSON.
 *
 * @param groundJson The JSON to apply.
 * @param ground The basemap to update.
 */
export declare function applyJsonToGround(groundJson: Partial<GroundJson>, ground: Ground): Promise<void>;
