import type EsriMapImageLayer from "@arcgis/core/layers/MapImageLayer";
import Portal from "@arcgis/core/portal/Portal";
import type { BaseMapLayerBase } from "./BaseMapLayer.js";
import { Layer } from "./Layer.js";
import type { OperationalLayerBase } from "./OperationalLayer.js";
export declare namespace MapServiceLayer {
    /**
     * Default values from Esri JavaScript API documentation.
     *
     * @deprecated Use "json/*" modules instead.
     */
    const esriMapImageLayerDefaults: {
        legendEnabled: boolean;
        visible: boolean;
        opacity: number;
    };
    /**
     * Converts an ArcGIS Portal JSON representation of a dynamic layer to its
     * Esri JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layerJson The layer JSON to convert.
     */
    function toEsriApiLayer(layerJson: MapServiceLayer): Promise<EsriMapImageLayer>;
    /**
     * Applies an ArcGIS Portal JSON representation of a dynamic 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 to resolve portal item IDs.
     */
    function applyToEsriApiLayer(layerJson: MapServiceLayer, layer: EsriMapImageLayer, portal?: Portal): Promise<void>;
    /**
     * Converts an Esri JavaScript API MapImageLayer object to its ArcGIS Portal
     * JSON representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layer The layer object to convert.
     */
    function fromEsriApiMapImageLayer(layer: EsriMapImageLayer): MapServiceLayer;
}
/**
 * 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/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface MapServiceLayer extends OperationalLayerBase, BaseMapLayerBase {
    /**
     * A sequence of custom parameters appended to the URL of all requests
     * related to supporting ArcGIS layer types.
     */
    customParameters?: Record<string, unknown>;
    /**
     * 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;
    /**
     * An array of layer objects defining the styling, geometry, and attribute
     * information for the features.
     */
    layers?: Layer[];
    /**
     * This property is applicable to layers that support time. If 'true',
     * timeAnimation is enabled.
     */
    timeAnimation?: boolean;
    /**
     * The URL to the layer.
     */
    url?: string;
    /**
     * 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[];
}
