import type Accessor from "@arcgis/core/core/Accessor";
import Collection from "@arcgis/core/core/Collection";
import type Layer from "@arcgis/core/layers/Layer";
import type BarChartMediaInfo from "@arcgis/core/popup/content/BarChartMediaInfo";
import type ColumnChartMediaInfo from "@arcgis/core/popup/content/ColumnChartMediaInfo";
import type LineCharMediaInfo from "@arcgis/core/popup/content/LineChartMediaInfo";
import type PieChartMediaInfo from "@arcgis/core/popup/content/PieChartMediaInfo";
/**
 * @deprecated Use "@arcgis/core/core/Collection" instead.
 */
declare const DeprecatedCollection: typeof Collection;
export { DeprecatedCollection as Collection };
export type CIMLineSymbol = __esri.CIMLineSymbol;
export type CIMPointSymbol = __esri.CIMPointSymbol;
export type CIMPolygonSymbol = __esri.CIMPolygonSymbol;
export type CIMSymbolReference = __esri.CIMSymbolReference;
export type CollectionAfterAddEventHandler<T> = __esri.CollectionAfterAddEventHandler<T>;
export type CollectionAfterRemoveEventHandler<T> = __esri.CollectionAfterRemoveEventHandler<T>;
export type CollectionBeforeAddEventHandler<T> = __esri.CollectionBeforeAddEventHandler<T>;
export type CollectionBeforeRemoveEventHandler<T> = __esri.CollectionBeforeRemoveEventHandler<T>;
export type CollectionEvent = __esri.CollectionEvent;
export type CollectionItemEvent<T> = __esri.CollectionItemEvent<T>;
export type CollectionAfterItemEvent<T> = __esri.CollectionAfterItemEvent<T>;
export type CollectionAfterEvent = __esri.CollectionAfterEvent;
export type CollectionChangeEvent<T> = __esri.CollectionChangeEvent<T>;
export type CollectionChangeEventHandler<T> = __esri.CollectionChangeEventHandler<T>;
export type EditFieldsInfo = __esri.EditFieldsInfo;
export type ElevationLayerProperties = __esri.ElevationLayerProperties;
export type EsriError = __esri.Error;
export type EsriErrorDetails = __esri.EsriErrorDetails;
export type EventHandler = __esri.EventHandler;
export type FeatureEditResult = __esri.FeatureEditResult;
export type FeatureLayerApplyEdits = __esri.FeatureLayerApplyEditsEdits;
export type FeatureLayerCapabilities = __esri.Capabilities;
export type FeatureLayerProperties = __esri.FeatureLayerProperties;
export type FieldProperties = __esri.FieldProperties;
export type GraphicHit = __esri.GraphicHit;
export type ImageryLayerProperties = __esri.ImageryLayerProperties;
export type IntegratedMeshLayerProperties = __esri.IntegratedMeshLayerProperties;
export type LayerViewCreateEvent = __esri.ViewLayerviewCreateEvent;
export type LayerViewDestroyEvent = __esri.ViewLayerviewDestroyEvent;
export type MapImageLayerProperties = __esri.MapImageLayerProperties;
export type MapViewViewHit = __esri.MapViewViewHit;
export type OpenStreetMapLayerProperties = __esri.OpenStreetMapLayerProperties;
export type PointCloudLayerProperties = __esri.PointCloudLayerProperties;
export type PopupTemplateProperties = __esri.PopupTemplateProperties;
export type PortalItemProperties = __esri.PortalItemProperties;
export type PresentationProperties = __esri.PresentationProperties;
export type RasterFunctionProperties = __esri.RasterFunctionProperties;
export type RequestResponse = __esri.RequestResponse;
export type RasterInfo = __esri.RasterInfo;
export type RelationshipQueryProperties = __esri.RelationshipQueryProperties;
export type RequestOptions = __esri.RequestOptions;
export type SceneLayerProperties = __esri.SceneLayerProperties;
export type SceneViewGraphicHit = __esri.SceneViewHitTestResult;
export type SceneViewHitTestResult = __esri.SceneViewHitTestResult;
export type SlideVisibleLayers = __esri.SlideVisibleLayers;
export type StreamLayerProperties = __esri.StreamLayerProperties;
export type TileLayerProperties = __esri.TileLayerProperties;
export type VectorTileLayerProperties = __esri.VectorTileLayerProperties;
export type View2DConstraints = __esri.View2DConstraints;
export type ViewHit = __esri.ViewHit;
export type Viewpoint = __esri.Viewpoint;
export type WebMapProperties = __esri.WebMapProperties;
export type WebSceneProperties = __esri.WebSceneProperties;
export type WebTileLayerProperties = __esri.WebTileLayerProperties;
export type WFSCapabilities = __esri.WFSCapabilities;
export type WFSFeatureType = __esri.WFSFeatureType;
export type WFSLayerInfo = __esri.WFSLayerInfo;
export type MapNotesSublayer = __esri.MapNotesSublayer;
export type FeatureLayerBase = __esri.FeatureLayerBase;
export type EditedFeatureResult = __esri.EditedFeatureResult;
export type EditedFeatureResultEditedFeatures = __esri.EditedFeatureResultEditedFeatures;
export type FeatureLayerApplyEditsEdits = __esri.FeatureLayerApplyEditsEdits;
export type locatorAddressToLocationsParams = __esri.locatorAddressToLocationsParams;
export type locatorAddressesToLocationsParams = __esri.locatorAddressesToLocationsParams;
export type locatorSuggestLocationsParams = __esri.locatorSuggestLocationsParams;
export type FeatureIdentifier = __esri.FeatureIdentifier;
export type TimeIntervalUnits = __esri.TimeIntervalProperties["unit"];
export type WebMapTimeSliderObject = __esri.TimeSlider;
export type WebMapWidgetsObject = __esri.Widgets;
export type EditsResult = __esri.EditsResult;
export type FeatureEditResultError = __esri.FeatureEditResultError;
export type InheritedDomain = __esri.InheritedDomain;
export type CodedValueDomain = __esri.CodedValueDomain;
export type RangeDomain = __esri.RangeDomain;
export type Domain = CodedValueDomain | InheritedDomain | RangeDomain;
export type ServiceEditsResult = __esri.ServiceEditsResult;
export type FeatureServiceApplyEditsEdits = __esri.FeatureServiceApplyEditsEdits;
export type FeatureLayerApplyEditsOptions = __esri.FeatureLayerApplyEditsOptions;
export type FeatureService = __esri.FeatureService;
export type FeatureServiceResourcesBundle = __esri.FeatureServiceResourcesBundle;
export interface PointCloudLayerCachedStatistics {
    attribute: string;
    labels: PointCloudLayerCachedStatisticsLabels;
    stats: PointCloudLayerCachedStatisticsStats;
}
export interface PointCloudLayerCachedStatisticsLabels {
    labels: PointCloudLayerCachedStatisticsLabel[];
}
export interface PointCloudLayerCachedStatisticsLabel {
    value: number;
    label: string;
}
export interface PointCloudLayerCachedStatisticsStats {
    avg: number;
    count: number;
    max: number;
    min: number;
    stddev: number;
    sum: number;
    variance: number;
    mostFrequentValues: PointCloudLayerCachedStatisticsFrequentValues[];
    histogram: PointCloudLayerCachedStatisticsHistogram;
}
export interface PointCloudLayerCachedStatisticsFrequentValues {
    value: number;
    count: number;
}
export interface PointCloudLayerCachedStatisticsHistogram {
    counts: number[];
    maximum: number;
    minimum: number;
}
export type ChartMediaInfo = BarChartMediaInfo | ColumnChartMediaInfo | LineCharMediaInfo | PieChartMediaInfo;
export type EventCallback<T = unknown> = (event: T) => void;
export type GeometryType = __esri.Geometry["type"] | "multipatch";
export type FieldType = __esri.Field["type"];
export type SymbolType = __esri.Symbol["type"];
export type SimpleFillSymbolStyle = __esri.SimpleFillSymbol["style"];
export type ElevationMode = "on-the-ground" | "relative-to-ground" | "relative-to-scene" | "absolute-height";
export type DomainType = __esri.Domain["type"];
export type MosaicMethodType = __esri.MosaicRule["method"];
export type MosaicOperationType = __esri.MosaicRule["operation"];
export type OutputPixelType = __esri.RasterFunction["outputPixelType"];
export type LabelPlacement = __esri.LabelClass["labelPlacement"];
export type DateFormat = __esri.FieldInfoFormat["dateFormat"];
export type LoadStatus = "not-loaded" | "loading" | "failed" | "loaded";
export type MediaType = "image" | "bar-chart" | "column-chart" | "line-chart" | "pie-chart";
export type NavigationConstraintType = __esri.GroundNavigationConstraint["type"];
export type RelationshipRole = "esriRelRoleOrigin" | "esriRelRoleDestination";
export type VisibilityMode = __esri.GroupLayer["visibilityMode"];
export type ListMode = __esri.Layer["listMode"];
export type DrawingTool = __esri.FeatureTemplate["drawingTool"];
export type PortalItemType = "Web Map" | "Web Scene" | "Feature Service" | "Map Service" | "Image Service" | "KML" | "Feature Collection" | "Vector Tile Service" | "Scene Service" | "Stream Service" | "WMTS" | "WMS";
/**
 * Raised when items are added, removed, or moved from a Collection.
 */
export interface ChangeEvent<T, Target = Collection<T>> {
    /**
     * The items that were added.
     */
    added: T[];
    /**
     * The items that were moved.
     */
    moved: T[];
    /**
     * The items that were removed.
     */
    removed: T[];
    /**
     * The Collection that raised the event.
     */
    target: Target;
}
/**
 * A callback that is invoked.
 */
export type ChangeEventCallback<T> = (event: ChangeEvent<T>) => void;
/**
 * A callback that is invoked for an item..
 */
export type ItemCallback<T> = __esri.ItemCallback<T>;
/**
 * A callback that is invoked when testing an item for a condition.
 */
export type ItemTestCallback<T> = __esri.ItemTestCallback<T>;
/**
 * A callback that is invoked when mapping an item to another item.
 */
export type ItemMapCallback<T, U> = (item: T, index: number) => U;
/**
 * A callback that is invoked for each item when reducing a collection.
 */
export type ItemReduceCallback<T, U> = (previousValue: U, currentValue: T, index: number) => U;
/**
 * A callback that is invoked when comparing two items.
 */
export type ItemCompareCallback<T> = (firstItem: T, secondItem: T) => number;
/**
 * Base interface for Esri sublayer classes.
 */
export interface SublayerLike extends Accessor {
    /**
     * The unique ID for the sublayer.
     */
    id?: number | string;
    /**
     * The parent Layer object.
     */
    layer?: LayerWithSublayers | null;
    /**
     * A collection of child sublayers. Not all sublayer types support this.
     */
    sublayers?: Collection<SublayerLike> | undefined;
    /**
     * The human readable title of the sublayer.
     */
    title?: string | null;
    /**
     * The opacity of the sublayer, specified as a number between 0
     * (transparent) and 1 (fully opaque).
     */
    opacity?: number;
    /**
     * Whether the sublayer is visible.
     */
    visible?: boolean;
    /**
     * The sublayer's minimum scale.
     */
    minScale?: number;
    /**
     * The sublayer's maximum scale.
     */
    maxScale?: number;
    /**
     * Creates a copy of the sublayer object.
     */
    clone?(): SublayerLike;
    /**
     * Controls the visibility of the sublayer in the layer list.
     */
    listMode?: ListMode;
}
/**
 * A layer that has child sublayers.
 */
export interface LayerWithSublayers extends Layer {
    /**
     * The collection of child sublayers.
     */
    sublayers?: Collection<SublayerLike> | null;
}
/**
 * Well known Esri basemaps.
 */
export declare enum WellKnownBasemap {
    SATELLITE = "satellite",
    HYBRID = "hybrid",
    HYBRID_VECTOR = "hybrid-vector",
    STREETS = "streets",
    STREETS_3D = "streets-3d",
    STREETS_DARK_3D = "streets-dark-3d",
    STREETS_VECTOR = "streets-vector",
    TOPO = "topo",
    TOPO_3D = "topo-3d",
    TOPO_VECTOR = "topo-vector",
    STREETS_NAVIGATION_3D = "navigation-3d",
    STREETS_NAVIGATION_DARK_3D = "navigation-dark-3d",
    STREETS_NAVIGATION_VECTOR = "streets-navigation-vector",
    STREETS_NIGHT_VECTOR = "streets-night-vector",
    TERRAIN = "terrain",
    TERRAIN_VECTOR = "terrain-vector",
    DARK_GRAY = "dark-gray",
    DARK_GRAY_3D = "dark-gray-3d",
    DARK_GRAY_VECTOR = "dark-gray-vector",
    GRAY = "gray",
    GRAY_3D = "gray-3d",
    GRAY_VECTOR = "gray-vector",
    OCEANS = "oceans",
    OCEANS_VECTOR = "oceans-vector",
    OPEN_STREET_MAP = "osm",
    OPEN_STREET_MAP_3D = "osm-3d",
    OPEN_STREET_MAP_VECTOR = "osm-vector",
    STREETS_RELIEF_VECTOR = "streets-relief-vector"
}
export declare const wellKnownBasemapTitles: Record<WellKnownBasemap, string>;
/**
 * The ESRI units for distance. See
 * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-tasks-support-BufferParameters.html#unit}.
 */
export type DistanceUnit = __esri.DistanceParameters["distanceUnit"];
/**
 * Units for linear measurements.
 *
 * @deprecated Since version 4.32. Use 'LengthUnit' instead.
 *
 *   {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-geometryEngine.html#LinearUnits Read more...}.
 */
export type LinearUnits = __esri.LinearUnits;
/**
 * Units for lengths.
 *
 * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-core-units.html#LengthUnit Read more...}.
 */
export type LengthUnit = __esri.LengthUnit;
/**
 * Esri JS API sublayer types.
 */
export type BuildingSceneSublayerType = __esri.BuildingGroupSublayer["type"] | __esri.BuildingComponentSublayer["type"];
