import type { BasemapLayerJsonBase } from "./BasemapLayerJson";
import type { OperationalLayerJsonBase } from "./OperationalLayerJson";
import type { SublayerJson } from "./SublayerJson";
/**
 * ArcGIS web maps are designed to work with web services hosted on ArcGIS
 * Server and ArcGIS Online, in addition to other types of servers. Map services
 * can be cached (tiled) or uncached (dynamic). This object specifically details
 * properties within uncached map services.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/mapServiceLayer/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/mapServiceLayer/}.
 */
export interface MapServiceLayerJson 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;
    /**
     * Type of the layer.
     */
    layerType: "ArcGISMapServiceLayer";
    /**
     * 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;
    /**
     * This property is applicable to layers that support time. If 'true',
     * timeAnimation is enabled.
     */
    timeAnimation?: boolean | null;
    /**
     * The URL to the layer.
     */
    url?: string | null;
    /**
     * An array of layers that should appear visible. Used with ArcGIS map
     * services that are not tiled in addition to WMS layers. Array of items of
     * the following types: Number With ArcGIS map services, the array contains
     * integers of the index positions of each visible layer.
     */
    visibleLayers?: number[] | null;
}
