import type { IDrawingInfo } from "../../spec/rest-js-types.js";
import type { ChartModelBase } from "../chart-model/chart-model-base.js";

/** Adds support for working with chart renderer. */
export abstract class WithChartRenderer extends ChartModelBase {
  /**
   * The chart renderer.
   *
   * @example
   * In this example, we set the chartRenderer for a class-break heat chart.
   * ```ts
   * heatChartModel.chartRenderer = {
   *    "type": "classBreaks",
   *    "field": "arcgis_charts_heat_chart_value",
   *    "classBreakInfos": [
   *        {
   *          "label": "70 - 145",
   *          "classMinValue": 70,
   *          "classMaxValue": 145,
   *          "symbol": {
   *            "type": "esriSFS",
   *            "color": [
   *              212,
   *              227,
   *              255,
   *              255
   *            ],
   *            "style": "esriSFSSolid"
   *          }
   *        },
   *        {
   *          "label": "146 - 250",
   *          "classMinValue": 146,
   *          "classMaxValue": 250,
   *          "symbol": {
   *            "type": "esriSFS",
   *            "color": [
   *              43,
   *              108,
   *              240,
   *              255
   *            ],
   *            "style": "esriSFSSolid"
   *          }
   *        }
   *    ]
   *  };
   * ```
   */
  get chartRenderer(): IDrawingInfo["renderer"] | undefined;
  set chartRenderer(value: IDrawingInfo["renderer"]);
}