/**
 * Function that suggests a [FeatureReductionBinning#fixedBinLevel](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureReductionBinning.html#fixedBinLevel) in a
 * [FeatureReductionBinning](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureReductionBinning.html) visualization.
 *
 * > [!WARNING]
 * >
 * > **Known Limitations**
 * >
 * > This function is not intended for use in 3D [SceneViews](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).
 *
 * @since 4.25
 */
import type { BinLevelParameters } from "./types.js";

/**
 * Generates a suggested [FeatureReductionBinning#fixedBinLevel](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureReductionBinning.html#fixedBinLevel)
 * for a binning visualization based on the view scale at the time this method is called.
 *
 * @param parameters - See the table below for details about parameters that may be passed to this function.
 * @returns Resolves to the suggested `fixedBinLevel` to apply to the layer at the given view scale. Set this value
 *   to the [FeatureReductionBinning#fixedBinLevel](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureReductionBinning.html#fixedBinLevel)
 *   property.
 * @example
 * const fixedBinLevel = await binLevel({ view });
 * layer.featureReduction = {
 *   type: "binning",
 *   fixedBinLevel,
 *   //  ...otherBinningProperties
 * };
 */
export default function binLevel(parameters: BinLevelParameters): Promise<number>;