import type { LayerDefinitionJson } from "./LayerDefinitionJson";
import type { OperationalLayerJsonBase } from "./OperationalLayerJson";
import type { SubtypeSublayerJson } from "./SubtypeSublayerJson";
/**
 * SubtypeGroupLayer provides the ability to organize several sublayers into one
 * common layer. Suppose there are several FeatureLayers that all represent
 * water features in different dimensions. For example, wells (points), streams
 * (lines), and lakes (polygons). The SubtypeGroupLayer provides the
 * functionality to treat them as one layer called Water Features even though
 * they are stored as separate feature layers.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/subtypeGroupLayer/}.
 */
export interface SubtypeGroupLayerJson extends OperationalLayerJsonBase {
    /**
     * A sequence of custom parameters appended to the URL of all requests
     * related to supporting ArcGIS layer types.
     */
    customParameters?: Record<string, unknown> | 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;
    /**
     * An array of feature layers, each describing the properties for a subtype
     * in the feature service layer.
     */
    layers?: SubtypeSublayerJson[] | null;
    /**
     * String indicating the layer type. Value of this property must be
     * SubtypeGroupLayer.
     */
    layerType: "SubtypeGroupLayer";
    /**
     * Indicates whether to disable time animation if the layer supports it.
     */
    timeAnimation?: boolean | null;
    /**
     * The URL to the layer. If the layer is not from a web service but rather a
     * feature collection, then the url property is omitted.
     */
    url?: string | null;
}
/**
 * Subtype group layers can be created by referencing a layer from a feature
 * service that contains subtypes. Each subtype in the feature service layer can
 * be a separate layer in the subtype group layer, and be given its own display
 * and editing properties. With respect to layer blending, subtype group layers
 * follow the same rules as group layers. See
 * {@link https://developers.arcgis.com/web-map-specification/objects/subtypeSubtypeGroupLayer/}.
 */
export interface SubtypeSubtypeGroupLayerJson extends Omit<SubtypeGroupLayerJson, "layerType" | "layers"> {
    /**
     * A sequence of custom parameters appended to the URL of all requests
     * related to supporting ArcGIS layer types.
     */
    customParameters?: Record<string, unknown> | null;
    /**
     * String indicating the layer type.
     */
    layerType: "SubtypeGroupLayer";
}
