import type ElevationLayer from "@arcgis/core/layers/ElevationLayer";
import type Layer from "@arcgis/core/layers/Layer";
import type PortalItem from "@arcgis/core/portal/PortalItem";
import type { Schema } from "../data/Schema.js";
import type { ElevationLayerJson } from "../json/ElevationLayerJson.js";
import type { PropertyDefs } from "../support/Serializable.js";
import type { LayerExtensionProperties, LayerProperties } from "./_LayerExtension.js";
import { LayerExtension } from "./_LayerExtension.js";
/**
 * Properties that can be passed into the constructor for
 * {@link ElevationLayerExtension}.
 */
export interface ElevationLayerExtensionProperties extends LayerExtensionProperties {
    /**
     * The Esri ElevationLayer object being extended.
     */
    layer?: ElevationLayer | (ElevationLayerJson & LayerProperties);
}
/**
 * Extends the capabilities of an Esri `ElevationLayer` object.
 */
export declare class ElevationLayerExtension extends LayerExtension<ElevationLayerExtensionProperties> {
    get layer(): ElevationLayer;
    protected _getSerializableProperties(): PropertyDefs<ElevationLayerExtensionProperties>;
    get canChangeScale(): boolean;
    /**
     * @inheritDoc
     */
    protected _isSupportedLayer(layer: Layer): boolean;
    protected _createSchema(): Schema;
    protected _applyLayerProperties(properties: LayerProperties, layer: ElevationLayer): Promise<void>;
    protected _applyPortalItemProperties(portalItem: PortalItem): Promise<void>;
}
