import type EsriSubtypeGroupLayer from "@arcgis/core/layers/SubtypeGroupLayer";
import type { FeatureLayer } from "./FeatureLayer.js";
import { LayerDefinition } from "./LayerDefinition.js";
import type { OperationalLayerBase } from "./OperationalLayer.js";
export declare namespace SubtypeGroupLayer {
    /**
     * 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.
     */
    function toEsriApiLayer(layerJson: SubtypeGroupLayer): Promise<EsriSubtypeGroupLayer>;
    /**
     * 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.
     */
    function applyToEsriApiLayer(layerJson: SubtypeGroupLayer, layer: EsriSubtypeGroupLayer): Promise<void>;
    /**
     * Converts an Esri JavaScript API SubtypeGroupLayer object to its ArcGIS
     * Portal JSON representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param subtypeGroupLayer The layer object to convert.
     */
    function fromEsriApiSubtypeGroupLayer(subtypeGroupLayer: EsriSubtypeGroupLayer): SubtypeGroupLayer;
}
/**
 * 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-scene-specification/objects/subtypeGroupLayer/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface SubtypeGroupLayer extends OperationalLayerBase {
    /**
     * A sequence of custom parameters appended to the URL of all requests
     * related to supporting ArcGIS layer types.
     */
    customParameters?: Record<string, string>;
    /**
     * A layerDefinition object defining the attribute schema and drawing
     * information for the layer.
     */
    layerDefinition?: LayerDefinition;
    /**
     * An array of feature layers, each describing the properties for a subtype
     * in the feature service layer.
     */
    layers?: FeatureLayer[];
    /**
     * String indicating the layer type. Value of this property must be
     * SubtypeGroupLayer.
     */
    layerType: "SubtypeGroupLayer";
    /**
     * 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;
}
/**
 * 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/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface SubtypeSubtypeGroupLayer extends Omit<SubtypeGroupLayer, "layerType" | "layers"> {
    /**
     * A sequence of custom parameters appended to the URL of all requests
     * related to supporting ArcGIS layer types.
     */
    customParameters?: Record<string, string>;
    /**
     * String indicating the layer type.
     */
    layerType: "SubtypeGroupLayer";
}
/**
 * Group layer visibility mode which indicates how visibility of children is
 * affected.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type SubtypeGroupLayerVisibilityMode = "independent" | "exclusive" | "inherited";
