import type { ListMode } from "../support/esri.js";
import type { AnnotationLayerJson } from "./AnnotationLayerJson.js";
import type { BuildingSceneLayerJson } from "./BuildingSceneLayerJson.js";
import type { CSVLayerJson } from "./CSVLayerJson.js";
import type { FeatureLayerJson } from "./FeatureLayerJson.js";
import type { GeoJSONLayerJson } from "./GeoJSONLayerJson.js";
import type { GeoRSSLayerJson } from "./GeoRSSLayerJson.js";
import type { GroupLayerJson } from "./GroupLayerJson.js";
import type { ImageServiceLayerJson } from "./ImageServiceLayerJson.js";
import type { ImageServiceVectorLayerJson } from "./ImageServiceVectorLayerJson.js";
import type { IntegratedMeshLayerJson } from "./IntegratedMeshLayerJson.js";
import type { KMLLayerJson } from "./KMLLayerJson.js";
import type { LayerJsonBase } from "./LayerJson.js";
import type { MapServiceLayerJson } from "./MapServiceLayerJson.js";
import type { MediaLayerJson } from "./MediaLayerJson.js";
import type { PointCloudLayerJson } from "./PointCloudLayerJson.js";
import type { SceneLayerJson } from "./SceneLayerJson.js";
import type { StreamLayerJson } from "./StreamLayerJson.js";
import type { SubtypeGroupLayerJson } from "./SubtypeGroupLayerJson.js";
import type { TiledImageServiceLayerJson } from "./TiledImageServiceLayerJson.js";
import type { TiledMapServiceLayerJson } from "./TiledMapServiceLayerJson.js";
import type { VectorTileLayerJson } from "./VectorTileLayerJson.js";
import type { WFSLayerJson } from "./WFSLayerJson.js";
import type { WMSLayerJson } from "./WMSLayerJson.js";
import type { WebTileLayerJson } from "./WebTileLayerJson.js";
/**
 * An operational layer in a web map.
 *
 * Part of the Esri web map specification. See
 * {@link http://resources.arcgis.com/en/help/arcgis-web-map-json/}.
 */
export interface OperationalLayerJsonBase extends LayerJsonBase {
    /**
     * Indicates how the layer should display in the table of contents. The
     * known values are listed below. See {@link support/esri!ListMode}.
     */
    listMode?: ListMode | null;
    /**
     * When the refresh interval is set on a layer, the client must refresh that
     * layer only, not the entire web map. The default value is '0', meaning the
     * no refresh. You can enable a refresh interval on the following types of
     * layers: ArcGIS Server web service, hosted feature layer, hosted tile
     * layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers,
     * basemaps (including Bing Maps basemaps), CSV from the web with latitude
     * and longitude fields, and KML when added to ArcGIS Online through the My
     * Content page. See
     * {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.
     */
    refreshInterval?: number | null;
}
/**
 * An operational layer in a web map/scene.
 */
export type OperationalLayerJson = AnnotationLayerJson | BuildingSceneLayerJson | CSVLayerJson | FeatureLayerJson | GeoJSONLayerJson | GeoRSSLayerJson | GroupLayerJson | ImageServiceLayerJson | ImageServiceVectorLayerJson | IntegratedMeshLayerJson | KMLLayerJson | MediaLayerJson | MapServiceLayerJson | PointCloudLayerJson | SceneLayerJson | StreamLayerJson | SubtypeGroupLayerJson | TiledImageServiceLayerJson | TiledMapServiceLayerJson | VectorTileLayerJson | WebTileLayerJson | WFSLayerJson | WMSLayerJson;
