import type { ChartModel } from "../chart-model/chart-model.js";

export abstract class ModelWithTooltips extends ChartModel {
  /**
   * Gets the setting of the `dataTooltipReverseColor` property.
   * - If the `seriesIndex` is provided, the `dataTooltipReverseColor` for that series will be returned. Otherwise, the same property of the first series will be returned.
   * - If the `dataTooltipReverseColor` is not set on the series, the default value of `false` will be returned.
   *
   * @param seriesIndex - The index of the series.
   */
  getDataTooltipReverseColor(seriesIndex?: number): boolean;
  /**
   * Gets the visibility of the data tooltips.
   * - If the `seriesIndex` is provided, the visibility for that series will be returned. Otherwise, the visibility of the first series will be returned.
   * - If the visibility is not set on the series, the default value of `true` will be returned.
   *
   * @param seriesIndex - The index of the series.
   */
  getDataTooltipVisibility(seriesIndex?: number): boolean;
  /**
   * Sets the setting of the `dataTooltipReverseColor` property.
   * - If the `seriesIndex` is provided, the reverse color will be set for that series only. Otherwise, the reverse color will be set for all series.
   *
   * @param reverseColor - Indicator of whether to reverse the color.
   * @param seriesIndex - The index of the series to set the reverse color.
   */
  setDataTooltipReverseColor(reverseColor: boolean, seriesIndex?: number): void;
  /**
   * Sets the visibility of the data tooltips.
   * - If the `seriesIndex` is provided, the visibility will be set for that series only. Otherwise, the visibility will be set for all series.
   *
   * @param visibility - The visibility of the data tooltips.
   * @param seriesIndex - The index of the series to set the visibility.
   */
  setDataTooltipVisibility(visibility: boolean, seriesIndex?: number): void;
}