import type EsriWMTSLayer from "@arcgis/core/layers/WMTSLayer";
import type EsriWebTileLayer from "@arcgis/core/layers/WebTileLayer";
import Portal from "@arcgis/core/portal/Portal";
import type { BaseMapLayerBase } from "./BaseMapLayer.js";
import type { Extent } from "./Extent.js";
import type { OperationalLayerBase } from "./OperationalLayer.js";
import { TileInfo } from "./TileInfo.js";
import { WMTSInfo } from "./WMTSInfo.js";
export declare namespace WebTileLayer {
    /**
     * Converts an ArcGIS Portal JSON representation of a web tile layer to its
     * Esri JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layerJson The layer JSON to convert.
     */
    function toEsriApiLayer(layerJson: WebTileLayer): Promise<EsriWebTileLayer | EsriWMTSLayer>;
    /**
     * Applies an ArcGIS Portal JSON representation of a web tile 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: WebTileLayer, layer: EsriWebTileLayer | EsriWMTSLayer, portal?: Portal): Promise<void>;
    /**
     * Converts an Esri JavaScript API WebTileLayer or WMTSLayer object to its
     * ArcGIS Portal JSON representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layer The layer object to convert.
     */
    function fromEsriApiLayer(layer: EsriWebTileLayer | EsriWMTSLayer): WebTileLayer;
    /**
     * Checks if WebTileLayer json can be deserialized to a WMTSLayer api
     * object.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layerJson The layer json to check.
     */
    function isTileLayerWMTS(layerJson: WebTileLayer): boolean;
}
/**
 * A tile layer is a derived from a set of web-accessible tiles which reside on
 * a server. The tiles are accessed by a direct URL request from the web
 * browser. Because the tiles in a tile layer are not available as a service,
 * they must be in a specific format for a web app such as the ArcGIS.com map
 * viewer to display the layer on a map.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/tiledLayer/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/tiledLayer/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface WebTileLayer extends OperationalLayerBase, BaseMapLayerBase {
    /**
     * Attribution to the Web Tile Layer provider. It is displayed in the
     * attribution on the web map. Input required by the user when the layer is
     * added to the web map.
     */
    copyright?: string;
    /**
     * An extent object representing the full extent envelope for the layer.
     */
    fullExtent?: Extent;
    /**
     * Optional string containing the item ID of the service if it's registered
     * on ArcGIS Online or your organization's portal.
     */
    itemId?: string;
    /**
     * The type of layer.
     */
    layerType: "WebTiledLayer";
    /**
     * If sub-domains are detected, they must be specified. The map viewer
     * detects if the Web Tile Layer has sub-domains by parsing the templateURL
     * value for `{subDomain}`.
     */
    subDomains?: string[];
    /**
     * URL to the Web Tile Layer. Input required by the user when the layer is
     * added to the web scene. The template URL contains a parameterized URL.
     * The URL can contain the following template parameters: `{level}`,
     * `{col}`, `{row}`, and `{subDomain}`.
     */
    templateUrl?: string;
    /**
     * An extent object representing the full extent envelope for the layer.
     */
    tileInfo?: TileInfo;
    /**
     * An object representing information about this layer if it is a WMTS
     * layer.
     */
    wmtsInfo?: WMTSInfo;
}
