import EsriExtent from "@arcgis/core/geometry/Extent";
import type EsriImageryLayer from "@arcgis/core/layers/ImageryLayer";
import Portal from "@arcgis/core/portal/Portal";
import type { BaseMapLayerBase } from "./BaseMapLayer.js";
import type { DefinitionEditor } from "./DefinitionEditor.js";
import { LayerDefinition } from "./LayerDefinition.js";
import { MosaicRule } from "./MosaicRule.js";
import type { OperationalLayerBase } from "./OperationalLayer.js";
import { PopupInfo } from "./PopupInfo.js";
import { RenderingRule } from "./RenderingRule.js";
export declare namespace ImageServiceLayer {
    /**
     * Default values from Esri JavaScript API documentation.
     *
     * @deprecated Use "json/*" modules instead.
     */
    const esriImageServiceLayerDefaults: {
        popupEnabled: boolean;
        visible: boolean;
        opacity: number;
        wkid: number;
        minScale: number;
        maxScale: number;
        fullExtent: EsriExtent;
    };
    /**
     * Converts an ArcGIS Portal JSON representation of an image layer to its
     * Esri JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layerJson The layer JSON to convert.
     */
    function toEsriApiLayer(layerJson: ImageServiceLayer): Promise<EsriImageryLayer>;
    /**
     * Applies an ArcGIS Portal JSON representation of an image 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: ImageServiceLayer, layer: EsriImageryLayer, portal?: Portal): Promise<void>;
    /**
     * Converts an Esri JavaScript API ImageryLayer object to its ArcGIS Portal
     * JSON representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layer The layer object to convert.
     */
    function fromEsriApiImageryLayer(layer: EsriImageryLayer): ImageServiceLayer;
}
/**
 * An image service provides access to raster data through a web service.
 * Multiple rasters can be served as one image service through mosaic dataset
 * technology, dynamically processed and mosaiced on the fly. An image service
 * supports accessing both the mosaicked image and its catalog, as well as
 * individual rasters in the catalog. Also, image services can be cached (tiled)
 * or uncached (dynamic). This object specifically details properties within
 * uncached image services.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/imageServiceLayer/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/imageServiceLayer/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface ImageServiceLayer extends OperationalLayerBase, BaseMapLayerBase {
    /**
     * An array of bandIds that are visible, can specify bands to export or
     * rearrange band order(from image service).
     */
    bandIds?: number[];
    /**
     * The attribution information for the layer. (not in the documentation).
     */
    copyright?: string;
    /**
     * Controls how much loss the image will be subjected to by the compression
     * algorithm (from image service).
     */
    compressionQuality?: number;
    /**
     * A sequence of custom parameters appended to the URL of all requests
     * related to supporting ArcGIS layer types.
     */
    customParameters?: Record<string, unknown>;
    /**
     * Stores interactive filters.
     */
    definitionEditor?: DefinitionEditor;
    /**
     * The output image type.
     */
    format?: "jpg" | "jpgpng" | "png" | "png24" | "png32" | "png8" | "tiff" | "lerc";
    /**
     * The algorithm used for interpolation.
     */
    interpolation?: "RSP_BilinearInterpolation" | "RSP_CubicConvolution" | "RSP_Majority" | "RSP_NearestNeighbor";
    /**
     * Optional string containing the item ID of the service if it's registered
     * on ArcGIS Online or your organization's portal.
     */
    itemId?: string;
    /**
     * A layerDefinition object defining the attribute schema and drawing
     * information for the layer.
     */
    layerDefinition?: LayerDefinition;
    /**
     * The type of layer.
     */
    layerType: "ArcGISImageServiceLayer";
    /**
     * Specifies the mosaic rule when defining how individual images should be
     * mosaiced.
     */
    mosaicRule?: MosaicRule;
    /**
     * A string value of interpretation of noData setting. Default is
     * 'esriNoDataMatchAny' when noData is a number, and 'esriNoDataMatchAll'
     * when noData is an array.
     */
    noDataInterpretation?: "esriNoDataMatchAll" | "esriNoDataMatchAny";
    /**
     * Pertains to the type of values stored in the raster, such as signed
     * integer, unsigned integer, or floating point. See OutputPixelType.
     */
    pixelType?: string;
    /**
     * A PopupInfo object defining the content of pop-up windows when you click
     * or query a feature.
     */
    popupInfo?: PopupInfo;
    /**
     * Specifies the rule for how the requested image should be rendered.
     */
    renderingRule?: RenderingRule;
    /**
     * This property is applicable to layers that support time. If 'true',
     * timeAnimation is enabled.
     */
    timeAnimation?: boolean;
    /**
     * The URL to the layer.
     */
    url?: string;
}
