import type EsriGroupLayer from "@arcgis/core/layers/GroupLayer";
import type Portal from "@arcgis/core/portal/Portal";
import type { ListMode } from "../support/esri.js";
import type { OperationalLayerBase, OperationalLayer } from "./OperationalLayer.js";
export declare namespace GroupLayer {
    /**
     * Converts an ArcGIS Portal JSON representation of a group layer to its
     * Esri JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layerJson The layer JSON to convert.
     * @param portal The Portal to use for resolving portal item IDs.
     */
    function toEsriApiLayer(layerJson: GroupLayer, portal?: Portal): Promise<EsriGroupLayer>;
    /**
     * Applies an ArcGIS Portal JSON representation of a group layer to its Esri
     * JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layerJson The layer JSON to apply.
     * @param layer The layer object to apply it to.
     * @param portal The Portal to use for resolving portal item IDs.
     */
    function applyToEsriApiLayer(layerJson: GroupLayer, layer: EsriGroupLayer, portal?: Portal): Promise<void>;
    /**
     * Converts an Esri JavaScript API GroupLayer object to its ArcGIS Portal
     * JSON representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param groupLayer The layer object to convert.
     */
    function fromEsriApiGroupLayer(groupLayer: EsriGroupLayer): GroupLayer;
}
/**
 * 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/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface GroupLayer extends OperationalLayerBase {
    /**
     * String indicating the layer type. Value of this property must be
     * GroupLayer.
     */
    layerType: "GroupLayer";
    /**
     * List of child operationalLayers.
     */
    layers?: OperationalLayer[];
    /**
     * To show or hide the group layer in the layer list. See
     * {@link support/esri!ListMode}.
     */
    listMode?: ListMode;
    /**
     * How visibility of children is affected: independent, exclusive,
     * inherited. See {@link GroupLayerVisibilityMode}.
     */
    visibilityMode?: GroupLayerVisibilityMode;
}
/**
 * Group layer visibility mode which indicates how visibility of children is
 * affected.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type GroupLayerVisibilityMode = "independent" | "exclusive" | "inherited";
