import EsriGraphic from "@arcgis/core/Graphic";
import type { Geometry } from "./Geometry.js";
import { PopupInfo } from "./PopupInfo.js";
import type { Symbol } from "./Symbol.js";
import type { Symbol3D } from "./Symbol3D.js";
export declare namespace Feature {
    /**
     * A special field that stores whether the graphic is visible.
     *
     * @deprecated Use "json/*" modules instead.
     */
    const GRAPHIC_VISIBLE_FIELD = "graphic-visible";
    /**
     * A special field that stores the graphic's popup template settings.
     *
     * @deprecated Use "json/*" modules instead.
     */
    const GRAPHIC_POPUP_TEMPLATE_FIELD = "graphic-popup-template";
    /**
     * Converts an ArcGIS Portal JSON representation of a Feature to an Esri
     * JavaScript API graphic.
     *
     * @deprecated Use "json/*" modules instead.
     * @param featureJson The feature JSON to convert.
     */
    function toEsriApiGraphic(featureJson: Feature): EsriGraphic;
    /**
     * Converts an Esri JavaScript API graphic to an ArcGIS Portal JSON feature.
     *
     * @deprecated Use "json/*" modules instead.
     * @param graphic The graphic to convert.
     */
    function fromEsriApiGraphic(graphic: EsriGraphic): Feature;
}
/**
 * Contains information about an attribute field and feature geometry.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/feature/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/feature/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface Feature {
    /**
     * The feature attributes. It is a JSON object that contains a dictionary of
     * name-value pairs. The names are the feature field names. The values are
     * the field values and they can be any of the standard JSON types - string,
     * number and boolean. Note that date values are encoded as numbers. The
     * number represents the number of milliseconds since epoch (January 1,
     * 1970) in UTC.
     */
    attributes?: Record<string, unknown>;
    /**
     * The feature geometry.
     */
    geometry?: Geometry;
    /**
     * Symbol used for drawing the feature.
     */
    symbol?: Symbol | Symbol3D;
    /**
     * A popupInfo object defining the content of popup window when you click a
     * feature on the map. Applicable to features in a map notes feature layer
     * only.
     */
    popupInfo?: PopupInfo;
}
