import type EsriGround from "@arcgis/core/Ground";
import type EsriElevationLayer from "@arcgis/core/layers/ElevationLayer";
import type Portal from "@arcgis/core/portal/Portal";
import type { ElevationLayer } from "./ElevationLayer.js";
import type { Color } from "./Symbol.js";
export declare namespace Ground {
    /**
     * The default elevation layer's ID.
     *
     * @deprecated Use "json/*" modules instead.
     */
    const DEFAULT_ELEVATION_ID = "globalElevation";
    /**
     * The default elevation layer's URL.
     *
     * @deprecated Use "json/*" modules instead.
     */
    const DEFAULT_ELEVATION_URL = "http://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer";
    /**
     * The default elevation layer's title.
     *
     * @deprecated Use "json/*" modules instead.
     */
    const DEFAULT_ELEVATION_TITLE = "Terrain 3D";
    /**
     * Converts an ArcGIS Portal JSON representation of a ground to its Esri
     * JavaScript API equivalent.
     *
     * @deprecated Use "json/*" modules instead.
     * @param json The ground JSON to convert.
     * @param portal The Portal to use for resolving portal item IDs.
     */
    function toEsriApiGround(json: Ground, portal?: Portal): Promise<EsriGround>;
    /**
     * Applies an ArcGIS Portal JSON representation of a ground to its Esri
     * JavaScript API equivalent.
     *
     * @deprecated Use "json/*" modules instead.
     * @param json The ground JSON to apply.
     * @param ground The Ground object to apply it to.
     * @param portal The Portal to use for resolving portal item IDs.
     */
    function applyToEsriApiGround(json: Ground, ground: EsriGround, portal?: Portal): Promise<void>;
    /**
     * Converts an Esri JavaScript API Ground object to its ArcGIS Portal JSON
     * representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param ground The Ground object to convert.
     */
    function fromEsriApiGround(ground: EsriGround): Ground;
    /**
     * Creates the elevation layer used in the default instance of Ground.
     *
     * @deprecated Use "json/*" modules instead.
     */
    function createDefaultElevationService(): Promise<EsriElevationLayer>;
}
/**
 * Types of ground navigation constraints.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type NavigationConstraintType = "none" | "stayAbove";
/**
 * Ground defines the main surface of the web scene, based on elevation layers..
 *
 * See https://developers.arcgis.com/web-scene-specification/objects/ground/.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface Ground {
    /**
     * An array of elevationLayer objects defining the elevation of the ground
     * in the web scene.
     */
    layers?: ElevationLayer[];
    /**
     * Determines whether the camera is constrained to navigate only above, or
     * also under the ground surface.
     */
    navigationConstraint?: {
        /**
         * One of the {@link support/esri!NavigationConstraintType} constants.
         */
        type: NavigationConstraintType;
    };
    /**
     * Defines the color of the ground surface, displayed underneath the
     * basemap. If no color, the default grid is shown.
     */
    surfaceColor?: Color;
    /**
     * 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;
}
