import type { ListMode } from "../support/esri";
import type { OperationalLayerJson, OperationalLayerJsonBase } from "./OperationalLayerJson";
/**
 * GroupLayer 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 GroupLayer 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-scene-specification/objects/groupLayer/}.
 */
export interface GroupLayerJson extends OperationalLayerJsonBase {
    /**
     * String indicating the layer type. Value of this property must be
     * GroupLayer.
     */
    layerType: "GroupLayer";
    /**
     * List of child operationalLayers.
     */
    layers?: OperationalLayerJson[] | null;
    /**
     * To show or hide the group layer in the layer list. See
     * {@link support/esri!ListMode}.
     */
    listMode?: ListMode | null;
    /**
     * How visibility of children is affected: independent, exclusive,
     * inherited.
     */
    visibilityMode?: "independent" | "exclusive" | "inherited" | null;
}
