import type { BasemapLayerJsonBase } from "./BasemapLayerJson";
import type { OperationalLayerJsonBase } from "./OperationalLayerJson";
import type { WMSSublayerJson } from "./WMSSublayerJson";
/**
 * A layer consuming a Web Map Service (WMS). The WMS specification is an
 * international specification for serving and consuming dynamic maps on the
 * web. For additional information on publishing WMS services, please see the
 * ArcGIS Server help.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/wmsLayer/}.
 */
export interface WMSLayerJson extends OperationalLayerJsonBase, BasemapLayerJsonBase {
    /**
     * A string containing copyright and access information for a WMS layer.
     * This is copied from the capabilities document exposed by the WMS
     * service.
     */
    copyright?: string | null;
    /**
     * A sequence of custom parameters to WMS layer requests. These parameters
     * are applied to GetMap and GetFeatureInfo requests. The
     * customLayerParameters property takes precedence if customParameters is
     * also present.
     */
    customLayerParameters?: Record<string, unknown> | null;
    /**
     * A sequence of custom parameters to all WMS requests. These parameters are
     * applied to GetCapabilities, GetMap, and GetFeatureInfo requests. If used
     * with the customLayerParameters property, customParameters will not take
     * precedence.
     */
    customParameters?: Record<string, unknown> | null;
    /**
     * The rectangular map extent that should be requested from the service.
     */
    extent?: number[][] | null;
    /**
     * Format of the Feature.
     */
    featureInfoFormat?: "text/html" | "text/plain" | null;
    /**
     * URL of the Feature.
     */
    featureInfoUrl?: string | null;
    /**
     * A string containing the image format to be requested from a WMS service.
     */
    format?: string | null;
    /**
     * 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 wms sub layer objects defining the styling, geometry, and
     * attribute information for the features.
     */
    layers?: WMSSublayerJson[] | null;
    /**
     * Type of the layer.
     */
    layerType: "WMS";
    /**
     * URL to legend.
     */
    legendUrl?: string | null;
    /**
     * The URL of the WMS map. You should also supply the url property, which is
     * the URL of the WMS capabilities document.
     */
    mapUrl?: string | null;
    /**
     * A number defining the maximum height, in pixels, that should be requested
     * from the service.
     */
    maxHeight?: number | null;
    /**
     * A number defining the maximum width, in pixels, that should be requested
     * from the service.
     */
    maxWidth?: number | null;
    /**
     * An array of numbers containing well-known IDs for spatial references
     * supported by the service.
     */
    spatialReferences?: number[] | null;
    /**
     * The URL to the layer.
     */
    url?: string | null;
    /**
     * A string containing the version number of the service.
     */
    version?: string | null;
    /**
     * An array of layers that should appear visible. The array contains the
     * names of the visible layers.
     */
    visibleLayers?: string[] | null;
}
