import type Color from "@arcgis/core/Color";
import type Graphic from "@arcgis/core/Graphic";
import type EsriPopupTemplate from "@arcgis/core/PopupTemplate";
import type Viewpoint from "@arcgis/core/Viewpoint";
import type Extent from "@arcgis/core/geometry/Extent.js";
import type Mesh from "@arcgis/core/geometry/Mesh.js";
import type Multipoint from "@arcgis/core/geometry/Multipoint.js";
import type Point from "@arcgis/core/geometry/Point.js";
import type Polygon from "@arcgis/core/geometry/Polygon.js";
import type Polyline from "@arcgis/core/geometry/Polyline.js";
import type SpatialReference from "@arcgis/core/geometry/SpatialReference";
import type { GeometryUnion } from "@arcgis/core/geometry/types.js";
import type CodedValueDomain from "@arcgis/core/layers/support/CodedValueDomain";
import type FeatureType from "@arcgis/core/layers/support/FeatureType";
import type Field from "@arcgis/core/layers/support/Field";
import type EsriFieldInfo from "@arcgis/core/popup/FieldInfo";
import type EsriAttachmentsContent from "@arcgis/core/popup/content/AttachmentsContent";
import type EsriPopupContent from "@arcgis/core/popup/content/Content";
import type EsriCustomContent from "@arcgis/core/popup/content/CustomContent";
import type EsriExpressionContent from "@arcgis/core/popup/content/ExpressionContent";
import type EsriFieldsContent from "@arcgis/core/popup/content/FieldsContent";
import type ImageMediaInfo from "@arcgis/core/popup/content/ImageMediaInfo";
import type EsriMediaContent from "@arcgis/core/popup/content/MediaContent";
import type EsriRelationshipContent from "@arcgis/core/popup/content/RelationshipContent";
import type EsriTextContent from "@arcgis/core/popup/content/TextContent";
import type PortalItem from "@arcgis/core/portal/PortalItem";
import type FeatureSet from "@arcgis/core/rest/support/FeatureSet";
import type { PopupTemplateProperties } from "../support/esri.js";
/**
 * Loads the given Esri API object and returns a promise that is fulfilled when
 * the object is loaded.
 *
 * @param object The object to load.
 */
export declare function load(object: unknown): Promise<void>;
/**
 * Returns a promise that is fulfilled when the given Esri API object is ready.
 *
 * @param object The object to wait for.
 */
export declare function ready(object: unknown): Promise<void>;
/**
 * Returns all the
 * [FieldInfo](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-FieldInfo.html)
 * within a
 * [PopupTemplate](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html).
 *
 * @param template The PopupTemplate from which to extract the FieldInfos.
 */
export declare function getAllFieldInfos(template: EsriPopupTemplate): EsriFieldInfo[];
/**
 * Returns all field names referenced within a
 * [PopupTemplate's](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html)
 * content. If the content is a function or Promise, it should be evaluated
 * first. Field names of FieldInfos are not returned.
 *
 * @param template The PopupTemplate from which the field names are extracted.
 */
export declare function getAllReferencedFieldNames(template: EsriPopupTemplate | PopupTemplateProperties): string[];
/**
 * Returns true if the domain is a CodedValueDomain.
 *
 * @param domain The domain to check.
 */
export declare function isCodedValueDomain(domain: unknown): domain is CodedValueDomain;
/**
 * Returns true if color is an ESRI Color.
 *
 * @param color The object to check.
 */
export declare function isColor(color: unknown): color is Color;
/**
 * Returns true if the mediaInfo is an ImageMediaInfo.
 *
 * @param mediaInfo The mediaInfo to check.
 */
export declare function isImageMediaInfo(mediaInfo: unknown): mediaInfo is ImageMediaInfo;
/**
 * Returns true if popupTemplate is an Esri PopupTemplate object.
 *
 * @param popupTemplate The popupTemplate to check.
 */
export declare function isPopupTemplate(popupTemplate: unknown): popupTemplate is EsriPopupTemplate;
/**
 * Returns true if field is an Esri Field object.
 *
 * @param field The field to check.
 */
export declare function isField(field: unknown): field is Field;
/**
 * Returns true if content is an Esri AttachmentsContent.
 *
 * @param content The content to check.
 */
export declare function isAttachmentsContent(content: unknown): content is EsriAttachmentsContent;
/**
 * Returns true if content is an Esri CustomContent.
 *
 * @param content The content to check.
 */
export declare function isCustomContent(content: unknown): content is EsriCustomContent;
/**
 * Returns true if content is an Esri ExpressionContent.
 *
 * @param content The content to check.
 */
export declare function isExpressionContent(content: unknown): content is EsriExpressionContent;
/**
 * Returns true if content is an Esri FieldsContent.
 *
 * @param content The content to check.
 */
export declare function isFieldsContent(content: unknown): content is EsriFieldsContent;
/**
 * Returns true if content is an Esri MediaContent.
 *
 * @param content The content to check.
 */
export declare function isMediaContent(content: unknown): content is EsriMediaContent;
/**
 * Returns true if content is an Esri TextContent.
 *
 * @param content The content to check.
 */
export declare function isTextContent(content: unknown): content is EsriTextContent;
/**
 * Returns true if content is an Esri RelationshipContent.
 *
 * @param content The content to check.
 */
export declare function isRelationshipContent(content: unknown): content is EsriRelationshipContent;
/**
 * Returns true if content is an Esri PopupContent.
 *
 * @param content The content to check.
 */
export declare function isPopupContent(content: unknown): content is EsriPopupContent;
/**
 * Returns true if featureSet is an Esri FeatureSet object.
 *
 * @param featureSet The featureSet to check.
 */
export declare function isFeatureSet(featureSet: unknown): featureSet is FeatureSet;
/**
 * Returns true if featureType is an Esri FeatureType object.
 *
 * @param featureType The featureType to check.
 */
export declare function isFeatureType(featureType: unknown): featureType is FeatureType;
/**
 * Returns true if viewpoint is an Esri Viewpoint object.
 *
 * @param viewpoint The Viewpoint to check.
 */
export declare function isViewpoint(viewpoint: unknown): viewpoint is Viewpoint;
/**
 * Returns true if portalItem is an Esri PortalItem object.
 *
 * @param portalItem The portalItem to check.
 */
export declare function isPortalItem(portalItem: unknown): portalItem is PortalItem;
/**
 * Returns true if graphic is an Esri Graphic object.
 *
 * @param graphic The portalItem to check.
 */
export declare function isGraphic(graphic: unknown): graphic is Graphic;
/**
 * Returns true if spatialReference is an Esri SpatialReference object.
 *
 * @param spatialReference The spatialReference to check.
 */
export declare function isSpatialReference(spatialReference: unknown): spatialReference is SpatialReference;
/**
 * Returns true if an Esri object.
 *
 * @param esriObject The object to check.
 */
export declare function isEsriObject(esriObject: unknown): boolean;
/**
 * Returns true if the argument is an ESRI Geometry.
 *
 * @param geometry The geometry to check.
 */
export declare function isGeometry(geometry: unknown): geometry is GeometryUnion;
/**
 * Returns true if the argument is an ESRI Point geometry.
 *
 * @param geometry The geometry to check.
 */
export declare function isPoint(geometry: unknown): geometry is Point;
/**
 * Returns true if the argument is an ESRI Multipoint geometry.
 *
 * @param geometry The geometry to check.
 */
export declare function isMultipoint(geometry: unknown): geometry is Multipoint;
/**
 * Returns true if the argument is an ESRI Polyline geometry.
 *
 * @param geometry The geometry to check.
 */
export declare function isPolyline(geometry: unknown): geometry is Polyline;
/**
 * Returns true if the argument is an ESRI Polygon geometry.
 *
 * @param geometry The geometry to check.
 */
export declare function isPolygon(geometry: unknown): geometry is Polygon;
/**
 * Returns true if the argument is an ESRI Extent geometry.
 *
 * @param geometry The geometry to check.
 */
export declare function isExtent(geometry: unknown): geometry is Extent;
/**
 * Returns true if the argument is an ESRI Mesh geometry.
 *
 * @param geometry The geometry to check.
 */
export declare function isMesh(geometry: unknown): geometry is Mesh;
