import type { BasemapLayerJsonBase } from "./BasemapLayerJson";
import type { ExtentJson } from "./GeometryJson";
import type { OperationalLayerJsonBase } from "./OperationalLayerJson";
import type { SublayerJson } from "./SublayerJson";
/**
 * 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/}.
 */
export interface TiledMapServiceLayerJson extends OperationalLayerJsonBase, BasemapLayerJsonBase {
    /**
     * A sequence of custom parameters appended to the URL of all requests
     * related to supporting ArcGIS layer types.
     */
    customParameters?: Record<string, unknown> | 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[] | null;
    /**
     * 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?: ExtentJson | null;
        /**
         * The zoom level where the exclusion ends.
         */
        maxScale?: number | null;
        /**
         * The zoom level where the exclusion ends.
         */
        maxZoom?: number | null;
        /**
         * The zoom level where the exclusion starts.
         */
        minScale?: number | null;
        /**
         * The zoom level where the exclusion starts.
         */
        minZoom?: number | null;
    } | null;
    /**
     * Optional string containing the item ID of the service if it's registered
     * on ArcGIS Online or your organization's portal.
     */
    itemId?: string | null;
    /**
     * An array of layer objects defining the styling, geometry, and attribute
     * information for the features.
     */
    layers?: SublayerJson[] | null;
    /**
     * The type of layer.
     */
    layerType: "ArcGISTiledMapServiceLayer";
    /**
     * The path to the supporting offline layer. Mobile only. Only valid in MMAP
     * JSON.
     */
    path?: string | null;
    /**
     * URL to the ArcGIS Server tiled Map Service.
     */
    url?: string | null;
}
