import type EsriTileLayer from "@arcgis/core/layers/TileLayer";
import Portal from "@arcgis/core/portal/Portal";
import type { BaseMapLayerBase } from "./BaseMapLayer.js";
import type { Extent } from "./Extent.js";
import { Layer } from "./Layer.js";
import type { OperationalLayerBase } from "./OperationalLayer.js";
export declare namespace TiledMapServiceLayer {
    /**
     * Default values from Esri JavaScript API documentation.
     *
     * @deprecated Use "json/*" modules instead.
     */
    const esriTileLayerDefaults: {
        legendEnabled: boolean;
        visible: boolean;
        opacity: number;
        minScale: number;
        maxScale: number;
    };
    /**
     * Converts an ArcGIS Portal JSON representation of a tiled layer to its
     * Esri JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layerJson The layer JSON to convert.
     */
    function toEsriApiLayer(layerJson: TiledMapServiceLayer): Promise<EsriTileLayer>;
    /**
     * Applies an ArcGIS Portal JSON representation of a tiled layer to its Esri
     * JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layerJson The layer JSON to apply.
     * @param layer The layer object to apply it to.
     * @param portal The Portal to use for resolving portal item IDs.
     */
    function applyToEsriApiLayer(layerJson: TiledMapServiceLayer, layer: EsriTileLayer, portal?: Portal): Promise<void>;
    /**
     * Converts an Esri JavaScript API TileLayer object to its ArcGIS Portal
     * JSON representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layer The layer object to convert.
     */
    function fromEsriApiTileLayer(layer: EsriTileLayer): TiledMapServiceLayer;
}
/**
 * An ArcGIS Tiled Map Service layer displays map content from an ArcGIS Server
 * Map service that has been cached (tiled).
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/tiledMapServiceLayer/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/tiledMapServiceLayer/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface TiledMapServiceLayer extends OperationalLayerBase, BaseMapLayerBase {
    /**
     * A sequence of custom parameters appended to the URL of all requests
     * related to supporting ArcGIS layer types.
     */
    customParameters?: Record<string, string> | null;
    /**
     * NOTE: Applicable if used as a baseMapLayer. Integer value(s) indicating
     * the display levels of the basemap layer. Only applicable for
     * TiledMapService layers. All tiled map service layers should share the
     * same tiling scheme. This property cannot be set via the Map Viewer UI.
     */
    displayLevels?: number[];
    /**
     * Exclusion areas define extent areas where no data will be fetched for a
     * layer. NOTE: Applicable if used as a baseMapLayer. An array of
     * exclusionArea objects defining the layer exclusions. See
     * {@link https://developers.arcgis.com/web-map-specification/objects/exclusionArea/}.
     */
    exclusionAreas?: {
        /**
         * The geometry defining the area where no data will be fetched. Only
         * extent is supported.
         */
        geometry?: Extent;
        /**
         * The zoom level where the exclusion ends.
         */
        maxScale?: number;
        /**
         * The zoom level where the exclusion ends.
         */
        maxZoom?: number;
        /**
         * The zoom level where the exclusion starts.
         */
        minScale?: number;
        /**
         * The zoom level where the exclusion starts.
         */
        minZoom?: number;
    };
    /**
     * Optional string containing the item ID of the service if it's registered
     * on ArcGIS Online or your organization's portal.
     */
    itemId?: string;
    /**
     * An array of layer objects defining the styling, geometry, and attribute
     * information for the features.
     */
    layers?: Layer[];
    /**
     * The type of layer.
     */
    layerType: "ArcGISTiledMapServiceLayer";
    /**
     * The path to the supporting offline layer. Mobile only. Only valid in MMAP
     * JSON.
     */
    path?: string;
    /**
     * URL to the ArcGIS Server tiled Map Service.
     */
    url?: string;
}
