import type EsriGraphicsLayer from "@arcgis/core/layers/GraphicsLayer";
import EsriSubtypeSublayer from "@arcgis/core/layers/support/SubtypeSublayer";
import { LayerDefinition } from "./LayerDefinition.js";
import type { OperationalLayerBase } from "./OperationalLayer.js";
import { PopupInfo } from "./PopupInfo.js";
export declare namespace SubtypeSublayer {
    /**
     * Default values from Esri JavaScript API documentation.
     *
     * @deprecated Use "json/*" modules instead.
     */
    const esriSubtypeSublayerDefaults: {
        labelsVisible: boolean;
        legendEnabled: boolean;
        popupEnabled: boolean;
        visible: boolean;
        minScale: number;
        maxScale: number;
    };
    /**
     * Converts an ArcGIS Portal JSON representation of a feature sublayer to
     * its Esri JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param sublayerJson The sublayer JSON to convert.
     */
    function toEsriApiLayer(sublayerJson: SubtypeSublayer): Promise<EsriSubtypeSublayer | EsriGraphicsLayer>;
    /**
     * Applies an ArcGIS Portal JSON representation of a feature sublayer to its
     * Esri JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param sublayerJson The sublayer JSON to apply.
     * @param sublayer The sublayer object to apply it to.
     */
    function applyToEsriApiLayer(sublayerJson: SubtypeSublayer, sublayer: EsriSubtypeSublayer): Promise<void>;
    /**
     * Converts an Esri JavaScript API SubtypeSublayer object to its ArcGIS
     * Portal JSON representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param sublayer The sublayer object to convert.
     */
    function fromEsriApiSubtypeSublayer(sublayer: EsriSubtypeSublayer): SubtypeSublayer;
}
/**
 * Feature layers can be created by referencing a sublayer from either a map
 * service or a feature service or by specifying a feature collection object.
 * Use a map service if you just want to retrieve geometries and attributes from
 * the server and symbolize them yourself. Use a feature service if you want to
 * take advantage of symbols from the service's source map document. Also, use a
 * feature service if you plan on doing editing with the feature sublayer.
 * Feature layers honor any feature templates configured in the source map
 * document. Feature collection objects are used to create a feature sublayer
 * based on the supplied definition.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/subtypeSublayer/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/subtypeSublayer/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface SubtypeSublayer extends OperationalLayerBase {
    /**
     * A sequence of custom parameters appended to the URL of all requests
     * related to supporting ArcGIS sublayer types.
     */
    customParameters?: Record<string, unknown>;
    /**
     * Indicates whether to allow a client to ignore popups defined by the
     * service item.
     */
    disablePopup?: boolean;
    /**
     * The type of sublayer.
     */
    layerType: "ArcGISFeatureLayer";
    /**
     * A PopupInfo object defining the content of pop-up windows when you click
     * or query a feature.
     */
    popupInfo?: PopupInfo;
    /**
     * Indicates whether to display labels for this sublayer. If true, labels
     * will appear as defined in the labelingInfo property.
     */
    showLabels?: boolean;
    /**
     * The feature subtype code identifying the sublayer. Used with
     * SubtypeGroupLayers.
     */
    subtypeCode?: string | number;
    /**
     * A layerDefinition object defining the attribute schema and drawing
     * information for the layer.
     */
    layerDefinition?: LayerDefinition;
}
