import type { ClonableMixin } from "../../core/Clonable.js";
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { RendererLegendOptionsOrder } from "./types.js";

/** @since 5.0 */
export interface RendererLegendOptionsProperties extends Partial<Pick<RendererLegendOptions, "order" | "title">> {}

/**
 * An object providing options for displaying the renderer in the Legend.
 *
 * @since 5.0
 */
export default class RendererLegendOptions extends RendererLegendOptionsSuperclass {
  constructor(properties?: RendererLegendOptionsProperties);
  /**
   * Indicates the order in which the legend values are displayed.
   *
   * @since 5.0
   */
  order?: RendererLegendOptionsOrder | null;
  /**
   * Describes the variable driving the visualization. This is displayed
   * as the title of the corresponding renderer in the [Legend](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-legend/) and
   * takes precedence over a [field alias](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Field/#alias)
   * or `valueExpressionTitle`.
   *
   * @since 5.0
   */
  accessor title: string | null | undefined;
}
declare const RendererLegendOptionsSuperclass: typeof JSONSupport & typeof ClonableMixin