import type BuildingFieldStatistics from "./BuildingFieldStatistics.js";
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { LoadableMixin, LoadableMixinProperties } from "../../core/Loadable.js";
import type { EsriPromiseMixin } from "../../core/Promise.js";

export interface BuildingSummaryStatisticsProperties extends LoadableMixinProperties {}

/**
 * Contains statistics about the fields in all sublayers of a [BuildingSceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/).
 * The statistics contain the most frequent values in that layer, minimum and maximum values in case they are numeric
 * and the sublayers where the field is available.
 *
 * This class can't be instantiated, use it as part of the
 * [BuildingSceneLayer.summaryStatistics](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/#summaryStatistics)
 * property:
 *
 * ```js
 * // load the layer
 * buildingLayer.load().then(function() {
 *  // load the statistics on the summaryStatistics property
 *  // to be able to access them
 *  buildingLayer.summaryStatistics.load().then(function() {
 *    console.log(buildingLayer.summaryStatistics);
 *  });
 * });
 * ```
 *
 * @since 4.15
 * @see [BuildingSceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/)
 */
export default class BuildingSummaryStatistics extends BuildingSummaryStatisticsSuperclass {
  constructor(properties?: BuildingSummaryStatisticsProperties);
  /** An array of statistics on all fields in all sublayers. */
  get fields(): BuildingFieldStatistics[];
}
declare const BuildingSummaryStatisticsSuperclass: typeof JSONSupport & typeof EsriPromiseMixin & typeof LoadableMixin