import Graphic from "@arcgis/core/Graphic";
import type { GeometryJson } from "./GeometryJson.js";
import type { PopupInfoJson } from "./PopupInfoJson.js";
import type { SymbolJson } from "./SymbolJson.js";
/**
 * 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/}.
 */
export interface FeatureJson {
    /**
     * 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> | null;
    /**
     * The feature geometry.
     */
    geometry?: GeometryJson | null;
    /**
     * Symbol used for drawing the feature.
     */
    symbol?: SymbolJson | null;
    /**
     * 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?: PopupInfoJson | null;
}
/**
 * Converts an ArcGIS Portal JSON representation of a Feature to an Esri
 * JavaScript API Graphic.
 *
 * @param json The feature JSON to convert.
 */
export declare function jsonToGraphic(json: FeatureJson): Graphic;
/**
 * Converts an Esri JavaScript API graphic to an ArcGIS Portal JSON feature.
 *
 * @param graphic The graphic to convert.
 */
export declare function graphicToJson(graphic: Graphic): FeatureJson;
