import Basemap from "@arcgis/core/Basemap";
import { type BasemapLayerJson } from "./BasemapLayerJson.js";
import type { ElevationLayerJson } from "./ElevationLayerJson";
/**
 * A basemap layer is a layer that provides geographic context to the map. A web
 * map always contains a basemap. A web scene is not required to always contain
 * a basemap. The basemap has a title and is the combination of each
 * BasemapLayer.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/basemap/}.
 */
export interface BasemapJson {
    /**
     * An array of BasemapLayer objects defining the basemaps used in the web
     * map/web scene.
     */
    baseMapLayers?: BasemapLayerJson[] | null;
    /**
     * Deprecated, use ground.layers instead. An array of elevationLayer objects
     * defining the basemaps used in the web scene.
     */
    elevationLayers?: ElevationLayerJson[] | null;
    /**
     * An identifier used to refer to the basemap when referencing it elsewhere.
     *
     * NOTE: Only available in web scenes!
     */
    id?: string | null;
    /**
     * String title for the basemap that can be used in a table of contents. If
     * not defined, then it takes the title of the first baseMapLayer in the
     * array.
     */
    title?: string | null;
}
/**
 * Creates an ArcGIS JS API Basemap from the given basemap JSON. Small change.
 *
 * @param json The JSON to convert.
 */
export declare function jsonToBasemap(json: BasemapJson): Promise<Basemap>;
/**
 * Updates an ArcGIS JS API Basemap from the given basemap JSON.
 *
 * @param basemapJson The JSON to apply.
 * @param basemap The basemap to update.
 */
export declare function applyJsonToBasemap(basemapJson: Partial<BasemapJson>, basemap: Basemap): Promise<void>;
/**
 * Serializes a basemap to JSON, using the correct origin for 3D basemaps.
 *
 * @param basemap The basemap to serialize.
 * @returns The JSON representation of the basemap.
 */
export declare function basemapToJson(basemap: Basemap): BasemapJson & {
    origin?: "web-map" | "web-scene";
    portal?: {
        url: string;
    };
};
