import type { LayerDefinitionJson } from "./LayerDefinitionJson";
import type { OperationalLayerJsonBase } from "./OperationalLayerJson";
import type { PopupInfoJson } from "./PopupInfoJson";
/**
 * OGC Web Feature Service (WFS) is a dynamic feature service that follows the
 * specifications of OGC.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/wfsLayer/}
 * and
 * {@link https://developers.arcgis.com/web-scene-specification/objects/wfsLayer/}.
 */
export interface WFSLayerJson extends OperationalLayerJsonBase {
    /**
     * Indicates whether to allow a client to ignore popups defined by the
     * service item.
     */
    disablePopup?: boolean | 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;
    /**
     * A layerDefinition object defining the attribute schema and drawing
     * information for the layer.
     */
    layerDefinition?: LayerDefinitionJson | null;
    /**
     * The type of layer.
     */
    layerType: "WFS";
    /**
     * Number where 0 means 'snapshot' and 1 means 'ondemand'.
     */
    mode?: 0 | 1 | null;
    /**
     * A PopupInfo object defining the content of pop-up windows when you click
     * or query a feature.
     */
    popupInfo?: PopupInfoJson | null;
    /**
     * Indicates whether to display labels for this layer. If true, labels will
     * appear as defined in the labelingInfo property.
     */
    showLabels?: boolean | null;
    /**
     * The URL to the layer. If the layer is not from a web service but rather a
     * feature collection, than the url property is omitted.
     */
    url?: string | null;
    /**
     * Object that defines and provides information about layers in a WFS
     * service.
     */
    wfsInfo?: WFSInfoJson | null;
}
/**
 * Object that defines and provides information about layers in a WFS service.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/wfsInfo/}.
 */
export interface WFSInfoJson {
    /**
     * A sequence of parameters used to append custom parameters to all WFS
     * requests. These parameters are applied to GetCapabilities,
     * DescribeFeatureType, and GetFeatures.
     */
    customParameters?: Record<string, string> | null;
    /**
     * URL of the WFS service operation.
     */
    featureUrl?: string | null;
    /**
     * Set this to limit the number of requested features that a GetFeature
     * request presents.
     */
    maxFeatures?: number | null;
    /**
     * The name of the WFS layer. This is used to set layer visibility.
     */
    name?: string | null;
    /**
     * List of supported spatial reference IDs.
     */
    supportedSpatialReferences?: number[] | null;
    /**
     * Boolean value indicating whether X and Y axis are flipped.
     */
    swapXY?: boolean | null;
    /**
     * Value indicating which version of the WFS specification is used.
     */
    version?: string | null;
    /**
     * String indicating namespace.
     */
    wfsNamespace?: string | null;
}
