import type AttributeBinsGraphic from "../../AttributeBinsGraphic.js";
import type FeatureSet from "./FeatureSet.js";
import type { ClonableMixin } from "../../core/Clonable.js";
import type { AttributeBinsGraphicProperties } from "../../AttributeBinsGraphic.js";
import type { FeatureSetProperties } from "./FeatureSet.js";

export interface AttributeBinsFeatureSetProperties extends FeatureSetProperties {
  /** The array of attribute bin graphics returned from a `queryAttributeBins()` operation. */
  features?: AttributeBinsGraphicProperties[];
}

/**
 * The AttributeBinsFeatureSet is a collection of [AttributeBinsGraphic](https://developers.arcgis.com/javascript/latest/references/core/AttributeBinsGraphic/) returned from the `queryAttributeBins()` method based on a given [AttributeBinsQuery](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/).
 * It returns an array of results divided into bins based on a numeric or date field. Each feature in the AttributeBinsFeatureSet may contain geometry,
 * attributes, and symbology. Additionally, the feature also can contain [AttributeBinsGraphic.stackedAttributes](https://developers.arcgis.com/javascript/latest/references/core/AttributeBinsGraphic/#stackedAttributes) which can be used to create a stacked
 * chart for visualizing aggregated data by category.
 *
 * @since 4.32
 * @see [AttributeBinsQuery](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/)
 * @see [AttributeBinsGraphic](https://developers.arcgis.com/javascript/latest/references/core/AttributeBinsGraphic/)
 * @see [Sample - Attribute Bins Query](https://developers.arcgis.com/javascript/latest/sample-code/query-attribute-bins/)
 */
export default class AttributeBinsFeatureSet extends AttributeBinsFeatureSetSuperclass {
  constructor(properties?: AttributeBinsFeatureSetProperties);
  /** The array of attribute bin graphics returned from a `queryAttributeBins()` operation. */
  get features(): AttributeBinsGraphic[];
  set features(value: AttributeBinsGraphicProperties[]);
}
declare const AttributeBinsFeatureSetSuperclass: typeof FeatureSet & typeof ClonableMixin