import type EsriCSVLayer from "@arcgis/core/layers/CSVLayer";
import type EsriFeatureLayer from "@arcgis/core/layers/FeatureLayer";
import type EsriGeoJSONLayer from "@arcgis/core/layers/GeoJSONLayer";
import type EsriImageryLayer from "@arcgis/core/layers/ImageryLayer";
import type EsriLayer from "@arcgis/core/layers/Layer";
import type EsriPointCloudLayer from "@arcgis/core/layers/PointCloudLayer";
import type EsriSceneLayer from "@arcgis/core/layers/SceneLayer";
import type EsriStreamLayer from "@arcgis/core/layers/StreamLayer";
import type EsriSublayer from "@arcgis/core/layers/support/Sublayer";
import { LabelingInfo } from "./LabelingInfo.js";
import type { PointCloudFilter } from "./PointCloudFilter.js";
import { Renderer } from "./Renderer.js";
export declare namespace DrawingInfo {
    /**
     * Applies an ArcGIS Portal JSON representation of drawing info to a Layer
     * object.
     *
     * @deprecated Use "json/*" modules instead.
     * @param json The layer definition JSON to apply.
     * @param layer The Layer object to apply it to.
     */
    function applyToEsriApiLayer(json: DrawingInfo, layer: EsriStreamLayer | EsriCSVLayer | EsriFeatureLayer | EsriImageryLayer | EsriSceneLayer | EsriPointCloudLayer | EsriSublayer | EsriGeoJSONLayer): Promise<void>;
    /**
     * Creates ArcGIS Portal drawing info JSON from a Layer object.
     *
     * @deprecated Use "json/*" modules instead.
     * @param layer The Layer object to convert.
     */
    function fromEsriApiLayer(layer: EsriLayer | EsriSublayer): DrawingInfo;
}
/**
 * The drawingInfo object contains drawing information for a feature collection
 * or a single layer in a map service. This object is used in LayerDefinition.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/drawingInfo/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/drawingInfo/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface DrawingInfo {
    /**
     * Filters for PointCloud layers.
     */
    filters?: PointCloudFilter[];
    /**
     * Only used for feature collections with a renderer. The feature's symbol
     * is defined by the layer's renderer. Not implemented in JSAPI 4.x.
     */
    fixedSymbols?: boolean;
    /**
     * An object defining the properties used for labeling the layer.
     */
    labelingInfo?: LabelingInfo[];
    /**
     * A renderer object that provides the symbology for the layer.
     */
    renderer?: Renderer;
    /**
     * Boolean property indicating whether symbols should stay the same size in
     * screen units as you zoom in. A value of false means the symbols stay the
     * same size in screen units regardless of the map scale. Not implemented in
     * JSAPI 4.x.
     */
    scaleSymbols?: boolean;
    /**
     * Defines whether labels should be shown or not. This is only valid for
     * sublayers.
     */
    showLabels?: boolean;
    /**
     * Number value ranging between 0 (no transparency) to 100 (completely
     * transparent).
     */
    transparency?: number;
}
