/// <reference path="../../index.d.ts" />
import type MapView from "@arcgis/core/views/MapView.js";
import type SceneView from "@arcgis/core/views/SceneView.js";
import type FeatureLayerView from "@arcgis/core/views/layers/FeatureLayerView.js";
import type { DOMContainerAria } from "@arcgis/core/views/DOMContainer.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { AxisLabelFormatCallback, ChartOptions, GaugeInnerLabelFormatCallback, GuideTooltipFormatCallback, PieChartLegendValueLabelFormatCallback, PreRenderCallback } from "../../chart-rendering/common/interfaces.js";
import type { CSVOptions, SupportedLayer } from "../../interfaces.js";
import type { AxesMinMaxChangePayload, DataProcessCompletePayload, LegendItemVisibilityChangePayload, NoRenderPropChangePayload, SelectionCompletePayload, SeriesColorChangePayload } from "../../utils/components/event-payloads.js";
import type { MissingSplitBySeriesProps, DownloadableChartImagesTypes } from "../../utils/components/interfaces.js";
import type { ChartModel } from "../../model/chart-model/chart-model.js";
import type { WebChartLegendPositions } from "../../spec/chart-object-literals.js";
import type { WebChart, WebChartDataFilters } from "../../spec/web-chart.js";
import type { WebChartDataTypes } from "../../spec/data-source.js";
import type { LoaderColors, SelectionData, SelectionTheme } from "../../utils/misc/interfaces.js";
import type { ErrorPolicy, LayerFieldsChangePolicy, LayerFilterChangePolicy, LayerRendererChangePolicy, SyncSelectionsBetweenChartAndLayerViewPolicy, ViewTimeExtentChangePolicy } from "../../utils/types/index.js";
import type { ActionModes, CursorRange } from "../../utils/cursor/interfaces.js";
import type { ChartElementLimit } from "../../utils/defaults/interfaces.js";
import type { DataWarningObject, ValidationStatus } from "../../utils/chart-config/validator/interfaces.js";
import type { T9nMeta } from "@arcgis/lumina/controllers";

/**
 * The Chart component renders a chart based on the provided model. Get started by reading the [introduction to charts](https://developers.arcgis.com/javascript/latest/charts-components-intro/) page.
 *
 * Supported chart types include bar charts, box plots, line charts, combo bar-line charts, gauges, heat charts, histograms, pie charts, scatterplots, and radar charts.
 *
 * @slot [action-bar] - Slot for adding a `charts-action-bar` component or `calcite-action-bar`.
 * @see [Introduction to charts](https://developers.arcgis.com/javascript/latest/charts-components-intro/)
 * @see
 * [Tutorial: Display a chart](https://developers.arcgis.com/javascript/latest/tutorials/display-a-chart/)
 *
 * **Note**: When the chart is getting rendered while its container is not yet fully sized, a console error about the chart's attribute height may appear. This is a known issue and should not affect the functionality of the chart.
 * @since 4.32
 */
export abstract class ArcgisChart extends LitElement {
  /** @internal */
  protected _messages: Partial<{ chartNotFoundWarning: string; }> & T9nMeta<{ chartNotFoundWarning: string; }>;
  /**
   * Specifies the user action behavior for the chart.
   *
   * - `monoSelection`: Select a single data point or series, new selection replaces the previous one.
   * - `multiSelection`: Select multiple data points or series, new selection adds to the previous one.
   * - `multiSelectionWithCtrlKey`: Select multiple data points or series while holding the Ctrl key (Cmd on Mac). When the key is held, each new selection is added; otherwise, the selection is replaced.
   * - `none`: No action is performed on user interaction.
   * - `zoom`: Zoom into a specific area of the chart.
   *
   * **Note**: Not applicable to gauge.
   */
  accessor actionMode: ActionModes | undefined;
  /**
   * Whether to allow the object id to be used as a statistic other than `COUNT`.
   *
   * @default false
   */
  accessor allowUsingObjectIdStat: boolean;
  /**
   * The ARIA attributes for the chart.
   *
   * @since 5.0
   */
  accessor aria: DOMContainerAria;
  /**
   * When `true`, the chart will not be destroyed automatically when it is disconnected from the document. This is useful when you want to move the chart to a different place on the page, or temporarily hide it.
   *
   * @default false
   */
  accessor autoDestroyDisabled: boolean;
  /**
   * Auto disposes the chart when a new one is created in the same container.
   *
   * @deprecated since 5.0. Use [autoDestroyDisabled](https://developers.arcgis.com/javascript/latest/references/charts-components/components/arcgis-chart/#autoDestroyDisabled) instead.
   * @default false
   */
  accessor autoDisposeChart: boolean | undefined;
  /**
   * When `true`, the data label text color is automatically adjusted for readability based on its background.
   * If the label is dark and appears over a dark series area, the text color is switched to either the chart background color or white.
   *
   * @default false
   */
  accessor autoInverseDataLabelTextColor: boolean | undefined;
  /**
   * The index of the chart to be rendered from the layer. Must be used in conjunction with the `layerItemId` or `layer` property.
   *
   * If a `layer` or `layerItemId` is set without `chartIndex`, the first chart in the layer will be rendered.
   *
   * If the `chartIndex` is out of bounds, the first chart in the layer will be rendered and a warning event will be emitted.
   *
   * @example
   * ```html
   * <arcgis-chart layer-item-id="8871626e970a4f3e9d6113ec63a92f2f" chart-index="2"></arcgis-chart>
   * ```
   */
  accessor chartIndex: number | undefined;
  /**
   * Used to customize the number maximum of bars allowed on the chart.
   *
   * The chart's behavior once that limit is reached can be adjusted through the `behaviorAfterLimit` nested property, to either reject the creation
   * or update of the chart, or render the elements up to the given limits.
   *
   * **Note**: Not applicable to gauge.
   */
  accessor chartLimits: ChartElementLimit | undefined;
  /**
   * Lifecycle function executed after the data has been processed and before the chart renders.
   * Can be used to alter the config from information extracted from the data for instance.
   *
   * **Note**: Applicable to gauge and pie chart only.
   */
  accessor chartWillRender: PreRenderCallback | undefined;
  /**
   * Localized common strings.
   *
   * @internal
   */
  protected commonStrings: {
      utilsStrings: {
          chartType: {
              chart: string;
              barChart: string;
              lineChart: string;
              pieChart: string;
              histogram: string;
              scatterplot: string;
              boxPlot: string;
              heatChart: string;
              calendarHeatChart: string;
              matrixHeatChart: string;
          };
          statistics: {
              mean: string;
              median: string;
              sum: string;
              discretePercentile: string;
              minimum: string;
              maximum: string;
              firstQuartile: string;
              thirdQuartile: string;
              iqr: string;
              standardDeviation: string;
              variance: string;
              count: string;
              aggregation: string;
              percent: string;
              noAggregation: string;
              meanValue: string;
          };
          overlays: {
              mean: string;
              median: string;
              stdDev: string;
              normal: string;
              trendline: string;
          };
          actions: {
              editChart: string;
              expand: string;
              collapse: string;
          };
          tooltips: { logDisabled: string; };
          guideTooltipLabel: string;
          pieChart: { defaultSliceGroupingLabel: string; };
          notAvailable: string;
          field: string;
          heatChartCalendarDatePartsUnits: {
              dayOfWeek: string;
              monthOfYear: string;
              dayOfMonth: string;
              hourOfDay: string;
              dayOfYear: string;
              minuteOfDay: string;
              weekOfYear: string;
              quarterOfYear: string;
          };
          null: string;
      };
      errorStrings: {
          errorHeading: string;
          placeholders: {
              barChartCreateMsg: string;
              boxPlotCreateMsg: string;
              lineChartCreateMsg: string;
              pieChartCreateMsg: string;
              histogramCreateMsg: string;
              scatterplotCreateMsg: string;
              calendarHeatChartCreateMsg: string;
          };
          notifications: {
              invalidConfig: string;
              invalidSeriesConfig: string;
              invalidSeriesConfigTitle: string;
              validateAggregationTypeMsg: string;
              missingNumericFields: string;
              noAggregationRequiresNumericFields: string;
          };
          tooManySelectedElements: {
              title: string;
              message: string;
          };
          incompatibleChartVersion: {
              title: string;
              message: string;
          };
          modalHeaders: {
              invalidData: string;
              invalidChart: string;
              noDataAvailable: string;
              tooManyFeatures: string;
              cannotCombineNegativeAndPositiveSlices: string;
              error: string;
              warning: string;
              newChart: string;
          };
          errors: {
              divNode: string;
              errorRequest: string;
              warningRequest: string;
              newChartRequest: string;
              invalidValueFormatForLineChart: string;
              invalidValueFormatForBarChart: string;
              invalidValueFormatForComboBarLineChart: string;
              invalidValueFormatForBoxPlot: string;
              invalidValueFormatForHistogram: string;
              invalidValueFormatForScatterplot: string;
              invalidValueFormatForGauge: string;
              invalidValueFormatForHeatChart: string;
              mismatchAxisAndValueFormat: string;
              queryError: string;
              simpleError: string;
              defaultInvalidChart: string;
              categoryCountCannotExceedLimit: string;
              uniqueSeriesBarCountCannotExceedLimit: string;
              twoSeriesBarCountCannotExceedLimit: string;
              threePlusSeriesBarCountCannotExceedLimit: string;
              barSeriesCountCannotExceedLimit: string;
              uniqueSeriesLineCountCannotExceedLimit: string;
              twoSeriesLineCountCannotExceedLimit: string;
              threePlusSeriesLineCountCannotExceedLimit: string;
              uniqueTemporalSeriesLineCountCannotExceedLimit: string;
              twoTemporalSeriesLineCountCannotExceedLimit: string;
              threePlusTemporalSeriesLineCountCannotExceedLimit: string;
              lineSeriesCountCannotExceedLimit: string;
              uniqueSeriesBoxCountCannotExceedLimit: string;
              twoSeriesBoxCountCannotExceedLimit: string;
              threePlusBoxLineCountCannotExceedLimit: string;
              boxSeriesCountCannotExceedLimit: string;
              boxSeriesOutlierCannotExceedLimit: string;
              pieChartCannotHaveMixtureOfPositiveAndNegativeSlices: string;
              pieChartSlicesCannotExceedLimit: string;
              gaugeCannotExceedLimit: string;
              heatChartCannotExceedLimit: string;
              negativeValueInDataForLogTransformation: string;
              negativeValueInDataForSqrtTransformation: string;
              logarithmicXAxisNotPossible: string;
              logarithmicYAxisNotPossible: string;
              histogramEmptyField: string;
              noDataMessage: string;
              noDataFBSMessage: string;
              noDataFBEMessage: string;
              exportImageChartNotReady: string;
              exportImage: string;
              defaultError: string;
              layerLoadFailure: string;
              layerFieldsNotFound: string;
              duplicateSeriesID: string;
              nonNumericAggregation: string;
              requiredProperty: string;
              minLength: string;
              minItems: string;
              maxItems: string;
              whiteSpacePattern: string;
              additionalProperty: string;
              enumValues: string;
              anyOfValues: string;
              bubbleChartValidateMsg: string;
              queryBinsNotSupported: string;
              invalidSeriesType: string;
              or: string;
          };
      };
      countSeries: string;
      xAxis: string;
      timeAggregationTypes: {
          start: string;
          end: string;
      };
      axisLabels: {
          values: string;
          standardizedValues: string;
          aggregationOfValues: string;
          aggregationOfFieldName: string;
      };
      titleLabels: {
          aggrFieldsByCategory: string;
          aggrTypeCategory: string;
          aggrTypeCategoryBySplitBy: string;
          aggrTypeOfAggrFields: string;
          aggrTypeOfAggrFieldByCategoryBySplitByField: string;
          aggrTypeOfAggrFieldsByCategory: string;
          aggrFieldsByXAxisField: string;
          aggrTypeXAxisField: string;
          aggrTypeXAxisFieldBySplitBy: string;
          aggrTypeOfAggrFieldByXAxisFieldBySplitByField: string;
          aggrTypeOfAggrFieldsByXAxisField: string;
          distributionOfField: string;
          distributionOfFields: string;
          distributionOfFieldsByCategory: string;
          distributionOfFieldsByCategoryAndSplitBy: string;
          xAndY: string;
      };
      customAmchartsStrings: {
          "Zoom Out": string;
          Play: string;
          Stop: string;
          Legend: string;
          "Press ENTER to toggle": string;
          Loading: string;
          Home: string;
          Chart: string;
          "Serial chart": string;
          "X/Y chart": string;
          "Pie chart": string;
          "Gauge chart": string;
          "Radar chart": string;
          "Sankey diagram": string;
          "Flow diagram": string;
          "Chord diagram": string;
          "TreeMap chart": string;
          "Sliced chart": string;
          Series: string;
          "Candlestick Series": string;
          "OHLC Series": string;
          "Column Series": string;
          "Line Series": string;
          "Pie Slice Series": string;
          "Funnel Series": string;
          "Pyramid Series": string;
          "X/Y Series": string;
          Map: string;
          "Press ENTER to zoom in": string;
          "Press ENTER to zoom out": string;
          "Use arrow keys to zoom in and out": string;
          "Use plus and minus keys on your keyboard to zoom in and out": string;
          Export: string;
          Image: string;
          Data: string;
          Print: string;
          "Press ENTER to open": string;
          "Press ENTER to print.": string;
          "Press ENTER to export as %1.": string;
          "(Press ESC to close this message)": string;
          "Image Export Complete": string;
          "Export operation took longer than expected. Something might have gone wrong.": string;
          "Saved from": string;
          "Use TAB to select grip buttons or left and right arrows to change selection": string;
          "Use left and right arrows to move selection": string;
          "Use left and right arrows to move left selection": string;
          "Use left and right arrows to move right selection": string;
          "Use TAB select grip buttons or up and down arrows to change selection": string;
          "Use up and down arrows to move selection": string;
          "Use up and down arrows to move lower selection": string;
          "Use up and down arrows to move upper selection": string;
          "From %1 to %2": string;
          "From %1": string;
          "To %1": string;
          "No parser available for file: %1": string;
          "Error parsing file: %1": string;
          "Unable to load file: %1": string;
          "Invalid date": string;
      };
  } & T9nMeta<{
      utilsStrings: {
          chartType: {
              chart: string;
              barChart: string;
              lineChart: string;
              pieChart: string;
              histogram: string;
              scatterplot: string;
              boxPlot: string;
              heatChart: string;
              calendarHeatChart: string;
              matrixHeatChart: string;
          };
          statistics: {
              mean: string;
              median: string;
              sum: string;
              discretePercentile: string;
              minimum: string;
              maximum: string;
              firstQuartile: string;
              thirdQuartile: string;
              iqr: string;
              standardDeviation: string;
              variance: string;
              count: string;
              aggregation: string;
              percent: string;
              noAggregation: string;
              meanValue: string;
          };
          overlays: {
              mean: string;
              median: string;
              stdDev: string;
              normal: string;
              trendline: string;
          };
          actions: {
              editChart: string;
              expand: string;
              collapse: string;
          };
          tooltips: { logDisabled: string; };
          guideTooltipLabel: string;
          pieChart: { defaultSliceGroupingLabel: string; };
          notAvailable: string;
          field: string;
          heatChartCalendarDatePartsUnits: {
              dayOfWeek: string;
              monthOfYear: string;
              dayOfMonth: string;
              hourOfDay: string;
              dayOfYear: string;
              minuteOfDay: string;
              weekOfYear: string;
              quarterOfYear: string;
          };
          null: string;
      };
      errorStrings: {
          errorHeading: string;
          placeholders: {
              barChartCreateMsg: string;
              boxPlotCreateMsg: string;
              lineChartCreateMsg: string;
              pieChartCreateMsg: string;
              histogramCreateMsg: string;
              scatterplotCreateMsg: string;
              calendarHeatChartCreateMsg: string;
          };
          notifications: {
              invalidConfig: string;
              invalidSeriesConfig: string;
              invalidSeriesConfigTitle: string;
              validateAggregationTypeMsg: string;
              missingNumericFields: string;
              noAggregationRequiresNumericFields: string;
          };
          tooManySelectedElements: {
              title: string;
              message: string;
          };
          incompatibleChartVersion: {
              title: string;
              message: string;
          };
          modalHeaders: {
              invalidData: string;
              invalidChart: string;
              noDataAvailable: string;
              tooManyFeatures: string;
              cannotCombineNegativeAndPositiveSlices: string;
              error: string;
              warning: string;
              newChart: string;
          };
          errors: {
              divNode: string;
              errorRequest: string;
              warningRequest: string;
              newChartRequest: string;
              invalidValueFormatForLineChart: string;
              invalidValueFormatForBarChart: string;
              invalidValueFormatForComboBarLineChart: string;
              invalidValueFormatForBoxPlot: string;
              invalidValueFormatForHistogram: string;
              invalidValueFormatForScatterplot: string;
              invalidValueFormatForGauge: string;
              invalidValueFormatForHeatChart: string;
              mismatchAxisAndValueFormat: string;
              queryError: string;
              simpleError: string;
              defaultInvalidChart: string;
              categoryCountCannotExceedLimit: string;
              uniqueSeriesBarCountCannotExceedLimit: string;
              twoSeriesBarCountCannotExceedLimit: string;
              threePlusSeriesBarCountCannotExceedLimit: string;
              barSeriesCountCannotExceedLimit: string;
              uniqueSeriesLineCountCannotExceedLimit: string;
              twoSeriesLineCountCannotExceedLimit: string;
              threePlusSeriesLineCountCannotExceedLimit: string;
              uniqueTemporalSeriesLineCountCannotExceedLimit: string;
              twoTemporalSeriesLineCountCannotExceedLimit: string;
              threePlusTemporalSeriesLineCountCannotExceedLimit: string;
              lineSeriesCountCannotExceedLimit: string;
              uniqueSeriesBoxCountCannotExceedLimit: string;
              twoSeriesBoxCountCannotExceedLimit: string;
              threePlusBoxLineCountCannotExceedLimit: string;
              boxSeriesCountCannotExceedLimit: string;
              boxSeriesOutlierCannotExceedLimit: string;
              pieChartCannotHaveMixtureOfPositiveAndNegativeSlices: string;
              pieChartSlicesCannotExceedLimit: string;
              gaugeCannotExceedLimit: string;
              heatChartCannotExceedLimit: string;
              negativeValueInDataForLogTransformation: string;
              negativeValueInDataForSqrtTransformation: string;
              logarithmicXAxisNotPossible: string;
              logarithmicYAxisNotPossible: string;
              histogramEmptyField: string;
              noDataMessage: string;
              noDataFBSMessage: string;
              noDataFBEMessage: string;
              exportImageChartNotReady: string;
              exportImage: string;
              defaultError: string;
              layerLoadFailure: string;
              layerFieldsNotFound: string;
              duplicateSeriesID: string;
              nonNumericAggregation: string;
              requiredProperty: string;
              minLength: string;
              minItems: string;
              maxItems: string;
              whiteSpacePattern: string;
              additionalProperty: string;
              enumValues: string;
              anyOfValues: string;
              bubbleChartValidateMsg: string;
              queryBinsNotSupported: string;
              invalidSeriesType: string;
              or: string;
          };
      };
      countSeries: string;
      xAxis: string;
      timeAggregationTypes: {
          start: string;
          end: string;
      };
      axisLabels: {
          values: string;
          standardizedValues: string;
          aggregationOfValues: string;
          aggregationOfFieldName: string;
      };
      titleLabels: {
          aggrFieldsByCategory: string;
          aggrTypeCategory: string;
          aggrTypeCategoryBySplitBy: string;
          aggrTypeOfAggrFields: string;
          aggrTypeOfAggrFieldByCategoryBySplitByField: string;
          aggrTypeOfAggrFieldsByCategory: string;
          aggrFieldsByXAxisField: string;
          aggrTypeXAxisField: string;
          aggrTypeXAxisFieldBySplitBy: string;
          aggrTypeOfAggrFieldByXAxisFieldBySplitByField: string;
          aggrTypeOfAggrFieldsByXAxisField: string;
          distributionOfField: string;
          distributionOfFields: string;
          distributionOfFieldsByCategory: string;
          distributionOfFieldsByCategoryAndSplitBy: string;
          xAndY: string;
      };
      customAmchartsStrings: {
          "Zoom Out": string;
          Play: string;
          Stop: string;
          Legend: string;
          "Press ENTER to toggle": string;
          Loading: string;
          Home: string;
          Chart: string;
          "Serial chart": string;
          "X/Y chart": string;
          "Pie chart": string;
          "Gauge chart": string;
          "Radar chart": string;
          "Sankey diagram": string;
          "Flow diagram": string;
          "Chord diagram": string;
          "TreeMap chart": string;
          "Sliced chart": string;
          Series: string;
          "Candlestick Series": string;
          "OHLC Series": string;
          "Column Series": string;
          "Line Series": string;
          "Pie Slice Series": string;
          "Funnel Series": string;
          "Pyramid Series": string;
          "X/Y Series": string;
          Map: string;
          "Press ENTER to zoom in": string;
          "Press ENTER to zoom out": string;
          "Use arrow keys to zoom in and out": string;
          "Use plus and minus keys on your keyboard to zoom in and out": string;
          Export: string;
          Image: string;
          Data: string;
          Print: string;
          "Press ENTER to open": string;
          "Press ENTER to print.": string;
          "Press ENTER to export as %1.": string;
          "(Press ESC to close this message)": string;
          "Image Export Complete": string;
          "Export operation took longer than expected. Something might have gone wrong.": string;
          "Saved from": string;
          "Use TAB to select grip buttons or left and right arrows to change selection": string;
          "Use left and right arrows to move selection": string;
          "Use left and right arrows to move left selection": string;
          "Use left and right arrows to move right selection": string;
          "Use TAB select grip buttons or up and down arrows to change selection": string;
          "Use up and down arrows to move selection": string;
          "Use up and down arrows to move lower selection": string;
          "Use up and down arrows to move upper selection": string;
          "From %1 to %2": string;
          "From %1": string;
          "To %1": string;
          "No parser available for file: %1": string;
          "Error parsing file: %1": string;
          "Unable to load file: %1": string;
          "Invalid date": string;
      };
  }>;
  /**
   * Sets the cursor range when `actionMode` is set to `zoom`, `multiSelection` or `multiSelectionWithCtrlKey`.
   *
   * - `multi-axes`: Allows to draw a free rectangle.
   * - `x-axis`: Allows to draw a rectangle bound to the x-axis.
   * - `y-axis`: Allows to draw a rectangle bound to the y-axis.
   * - `undefined`: Defaults to the preset behavior according to the chart type and action mode.
   *
   * **Note**: Not applicable to gauge.
   */
  accessor cursorRange: CursorRange | undefined;
  /**
   * A callback function used to format the data labels. If the returned string contains HTML tags they will be interpreted as such.
   *
   * **Note**: Not applicable to gauge.
   */
  accessor dataLabelFormatter: ChartOptions["dataLabelFormatter"] | undefined;
  /**
   * Disables all interactions on the chart.
   *
   * @default false
   */
  get disableInteractions(): boolean;
  set disableInteractions(value: boolean | undefined);
  /**
   * Disables the toggling of series via the legend items.
   *
   * **Note**: Only applicable to multi-series charts.
   *
   * @default false
   */
  accessor disableTogglingLegendItems: boolean | undefined;
  /**
   * Whether to enable automatic chart theming based on Calcite theme detection.
   *
   * **Note**: Currently, only the `calcite-mode-dark` theme is supported. When this theme
   * is applied, all chart colors are automatically adjusted for dark mode and
   * any custom chart colors will be overridden. This includes series, axes, grid and other elements.
   *
   * When `true`, the chart component will automatically apply the
   * supported Calcite theme if it is detected on the chart container or any
   * parent element.
   *
   * When `false` (default), the chart component will not apply any Calcite-based theming,
   * even if a supported Calcite theme is detected.
   *
   * @default false
   * @since 5.0
   * @internal
   */
  accessor enableAutoTheming: boolean;
  /**
   * Whether to enable the beta features from the chart component.
   *
   * @default false
   * @internal
   */
  accessor enableBetaFeatures: boolean;
  /**
   * Whether to use features uniquely designed for a chart currently being configured by a user via the UI.
   *
   * @default false
   */
  accessor enableConfiguration: boolean;
  /**
   * Enables the responsive features.
   *
   * @default false
   */
  accessor enableResponsiveFeatures: boolean | undefined;
  /**
   * Whether to display an error alert and hide the chart when it can't be created or updated.
   *
   * @default "throw"
   */
  accessor errorPolicy: ErrorPolicy;
  /**
   * The index of the feature to render when using a feature based gauge.
   *
   * **Note**: Only applicable to gauge.
   *
   * @deprecated since 5.0. Use charts model's [featureIndex](https://developers.arcgis.com/javascript/latest/references/charts-components/model/gauge-model/gauge-model/#featureIndex) prop instead.
   */
  accessor featureIndex: number | undefined;
  /**
   * When `true`, all chart elements are filtered based on the view extent.
   *
   * @default false
   */
  accessor filterByExtent: boolean | undefined;
  /**
   * When `true`, all chart elements are filtered based on the selection.
   *
   * **Note**: Not applicable to gauge.
   *
   * @default false
   */
  accessor filterBySelection: boolean | undefined;
  /**
   * A callback function used to format the gauge inner label. If the returned string contains HTML tags they will be interpreted as such.
   *
   * **Note**: Applicable to gauge only.
   */
  accessor gaugeInnerLabelFormatter: GaugeInnerLabelFormatCallback | undefined;
  /**
   * A callback function used to format the axes guides tooltip. If the returned string contains HTML tags they will be interpreted as such.
   *
   * **Note**: Not applicable to pie chart.
   */
  accessor guideTooltipFormatter: GuideTooltipFormatCallback | undefined;
  /**
   * When `true`, the empty series are completely hidden from the chart and the legend.
   * For example, a series may become empty after applying a data filter, filter by attribute or geometry (as when using the filter by extent).
   *
   * **Note**: Not applicable to gauge.
   *
   * @default false
   */
  accessor hideEmptySeries: boolean | undefined;
  /**
   * Hides the license watermark.
   *
   * @default false
   */
  accessor hideLicenseWatermark: boolean | undefined;
  /**
   * Hides the loader animation (curtain and spinner), showed by default at every update.
   *
   * @default false
   */
  accessor hideLoaderAnimation: boolean | undefined;
  /**
   * When `true`, disables the default setting that uses debounce functions to handle the visibility of markers
   * that are outside of the plotting area when the min/max bound changes and/or when a zoom action is performed
   * (via chart cursor or scrollbar), to increase performance.
   *
   * This property will be set when the chart is created and cannot be updated after that.
   * It's recommended that this property should only be set to `true` for small datasets.
   * When left `undefined`, will be treated as `false`.
   *
   * **Note**: Applicable to line chart only.
   *
   * @default false
   */
  accessor ignoreSmoothRenderingLimit: boolean | undefined;
  /**
   * This property will be effective when the component's `view` is provided or when the `layer` is set to a FeatureLayerView.
   *
   * By default the queries made by the chart will consider the view's extent as the unique geometry filter applicable. This implies ignoring any
   * geometry passed through the config (`component.config.dataFilters`) or the runtime filters (`component.runtimeDataFilters`).
   *
   * Setting this property to `false` signals the queries to ignore the view's extent, whether an additional geometry filter is provided or not.
   *
   * @default false
   */
  accessor ignoreViewExtent: boolean | undefined;
  /**
   * Used to perform queries.
   * If the layer is a `FeatureLayerView` or if the layer and the `view` property are both provided, the queries will be executed client-side.
   */
  accessor layer: FeatureLayerView | SupportedLayer | undefined;
  /**
   * Allows the chart to update automatically when the layer's fields change.
   *
   * Applies when the field list (`fields`) in the feature layer is updated.
   *
   * @default "refresh"
   */
  accessor layerFieldsChangePolicy: LayerFieldsChangePolicy;
  /**
   * Whether the chart should be refreshed when the layer's filter (`definitionExpression`) changes.
   *
   * @default "refresh"
   */
  accessor layerFilterChangePolicy: LayerFilterChangePolicy;
  /**
   * Layer item ID associated with the chart to be rendered. Can be used in conjunction with the `chartIndex` property.
   *
   * If `layerItemId` is set without `chartIndex`, the first chart in the layer will be rendered.
   *
   * @example
   * ```html
   * <arcgis-chart layer-item-id="8871626e970a4f3e9d6113ec63a92f2f" chart-index="2"></arcgis-chart>
   * ```
   */
  accessor layerItemId: string | undefined;
  /**
   * Allows the chart to update automatically when the layer's renderer changes.
   *
   * Applies when the color match feature is enabled.
   *
   * **Note**: If the property is set to `ignore` the chart will use the layer's renderer information when the data is updated.
   *
   * @default "refresh"
   */
  accessor layerRendererChangePolicy: LayerRendererChangePolicy;
  /**
   * Sets the legend's position on the chart.
   *
   * **Note**: Not applicable to gauge.
   *
   * @deprecated since 5.0. Use charts model's [legendPosition](https://developers.arcgis.com/javascript/latest/references/charts-components/model/bar-chart-model/bar-chart-model/#legendPosition) prop instead.
   */
  accessor legendPosition: WebChartLegendPositions | undefined;
  /**
   * A callback function used to format the legend value labels. If the returned string contains HTML tags they will be interpreted as such.
   * If provided, the formatter will be used if at least `WebChartPieChartLegend.displayNumericValue` or `WebChartPieChartLegend.displayPercentage` is true.
   *
   * **Note**: Applicable to pie chart only.
   */
  accessor legendValueLabelFormatter: PieChartLegendValueLabelFormatCallback | undefined;
  /**
   * When `true`, the legend is visible on the chart.
   *
   * **Note**: Not applicable to gauge.
   *
   * @deprecated since 5.0. Use charts model's [legendVisibility](https://developers.arcgis.com/javascript/latest/references/charts-components/model/bar-chart-model/bar-chart-model/#legendVisibility) prop instead.
   * @default false
   */
  accessor legendVisibility: boolean | undefined;
  /** Defines the colors for the loader animation. */
  accessor loaderColors: LoaderColors | undefined;
  /** Custom message overrides for the chart's strings. */
  accessor messageOverrides: { chartNotFoundWarning?: string | undefined; } & {
      utilsStrings?: {
          chartType?: {
              chart?: string | undefined;
              barChart?: string | undefined;
              lineChart?: string | undefined;
              pieChart?: string | undefined;
              histogram?: string | undefined;
              scatterplot?: string | undefined;
              boxPlot?: string | undefined;
              heatChart?: string | undefined;
              calendarHeatChart?: string | undefined;
              matrixHeatChart?: string | undefined;
          } | undefined;
          statistics?: {
              mean?: string | undefined;
              median?: string | undefined;
              sum?: string | undefined;
              discretePercentile?: string | undefined;
              minimum?: string | undefined;
              maximum?: string | undefined;
              firstQuartile?: string | undefined;
              thirdQuartile?: string | undefined;
              iqr?: string | undefined;
              standardDeviation?: string | undefined;
              variance?: string | undefined;
              count?: string | undefined;
              aggregation?: string | undefined;
              percent?: string | undefined;
              noAggregation?: string | undefined;
              meanValue?: string | undefined;
          } | undefined;
          overlays?: {
              mean?: string | undefined;
              median?: string | undefined;
              stdDev?: string | undefined;
              normal?: string | undefined;
              trendline?: string | undefined;
          } | undefined;
          actions?: {
              editChart?: string | undefined;
              expand?: string | undefined;
              collapse?: string | undefined;
          } | undefined;
          tooltips?: { logDisabled?: string | undefined; } | undefined;
          guideTooltipLabel?: string | undefined;
          pieChart?: { defaultSliceGroupingLabel?: string | undefined; } | undefined;
          notAvailable?: string | undefined;
          field?: string | undefined;
          heatChartCalendarDatePartsUnits?: {
              dayOfWeek?: string | undefined;
              monthOfYear?: string | undefined;
              dayOfMonth?: string | undefined;
              hourOfDay?: string | undefined;
              dayOfYear?: string | undefined;
              minuteOfDay?: string | undefined;
              weekOfYear?: string | undefined;
              quarterOfYear?: string | undefined;
          } | undefined;
          null?: string | undefined;
      } | undefined;
      errorStrings?: {
          errorHeading?: string | undefined;
          placeholders?: {
              barChartCreateMsg?: string | undefined;
              boxPlotCreateMsg?: string | undefined;
              lineChartCreateMsg?: string | undefined;
              pieChartCreateMsg?: string | undefined;
              histogramCreateMsg?: string | undefined;
              scatterplotCreateMsg?: string | undefined;
              calendarHeatChartCreateMsg?: string | undefined;
          } | undefined;
          notifications?: {
              invalidConfig?: string | undefined;
              invalidSeriesConfig?: string | undefined;
              invalidSeriesConfigTitle?: string | undefined;
              validateAggregationTypeMsg?: string | undefined;
              missingNumericFields?: string | undefined;
              noAggregationRequiresNumericFields?: string | undefined;
          } | undefined;
          tooManySelectedElements?: {
              title?: string | undefined;
              message?: string | undefined;
          } | undefined;
          incompatibleChartVersion?: {
              title?: string | undefined;
              message?: string | undefined;
          } | undefined;
          modalHeaders?: {
              invalidData?: string | undefined;
              invalidChart?: string | undefined;
              noDataAvailable?: string | undefined;
              tooManyFeatures?: string | undefined;
              cannotCombineNegativeAndPositiveSlices?: string | undefined;
              error?: string | undefined;
              warning?: string | undefined;
              newChart?: string | undefined;
          } | undefined;
          errors?: {
              divNode?: string | undefined;
              errorRequest?: string | undefined;
              warningRequest?: string | undefined;
              newChartRequest?: string | undefined;
              invalidValueFormatForLineChart?: string | undefined;
              invalidValueFormatForBarChart?: string | undefined;
              invalidValueFormatForComboBarLineChart?: string | undefined;
              invalidValueFormatForBoxPlot?: string | undefined;
              invalidValueFormatForHistogram?: string | undefined;
              invalidValueFormatForScatterplot?: string | undefined;
              invalidValueFormatForGauge?: string | undefined;
              invalidValueFormatForHeatChart?: string | undefined;
              mismatchAxisAndValueFormat?: string | undefined;
              queryError?: string | undefined;
              simpleError?: string | undefined;
              defaultInvalidChart?: string | undefined;
              categoryCountCannotExceedLimit?: string | undefined;
              uniqueSeriesBarCountCannotExceedLimit?: string | undefined;
              twoSeriesBarCountCannotExceedLimit?: string | undefined;
              threePlusSeriesBarCountCannotExceedLimit?: string | undefined;
              barSeriesCountCannotExceedLimit?: string | undefined;
              uniqueSeriesLineCountCannotExceedLimit?: string | undefined;
              twoSeriesLineCountCannotExceedLimit?: string | undefined;
              threePlusSeriesLineCountCannotExceedLimit?: string | undefined;
              uniqueTemporalSeriesLineCountCannotExceedLimit?: string | undefined;
              twoTemporalSeriesLineCountCannotExceedLimit?: string | undefined;
              threePlusTemporalSeriesLineCountCannotExceedLimit?: string | undefined;
              lineSeriesCountCannotExceedLimit?: string | undefined;
              uniqueSeriesBoxCountCannotExceedLimit?: string | undefined;
              twoSeriesBoxCountCannotExceedLimit?: string | undefined;
              threePlusBoxLineCountCannotExceedLimit?: string | undefined;
              boxSeriesCountCannotExceedLimit?: string | undefined;
              boxSeriesOutlierCannotExceedLimit?: string | undefined;
              pieChartCannotHaveMixtureOfPositiveAndNegativeSlices?: string | undefined;
              pieChartSlicesCannotExceedLimit?: string | undefined;
              gaugeCannotExceedLimit?: string | undefined;
              heatChartCannotExceedLimit?: string | undefined;
              negativeValueInDataForLogTransformation?: string | undefined;
              negativeValueInDataForSqrtTransformation?: string | undefined;
              logarithmicXAxisNotPossible?: string | undefined;
              logarithmicYAxisNotPossible?: string | undefined;
              histogramEmptyField?: string | undefined;
              noDataMessage?: string | undefined;
              noDataFBSMessage?: string | undefined;
              noDataFBEMessage?: string | undefined;
              exportImageChartNotReady?: string | undefined;
              exportImage?: string | undefined;
              defaultError?: string | undefined;
              layerLoadFailure?: string | undefined;
              layerFieldsNotFound?: string | undefined;
              duplicateSeriesID?: string | undefined;
              nonNumericAggregation?: string | undefined;
              requiredProperty?: string | undefined;
              minLength?: string | undefined;
              minItems?: string | undefined;
              maxItems?: string | undefined;
              whiteSpacePattern?: string | undefined;
              additionalProperty?: string | undefined;
              enumValues?: string | undefined;
              anyOfValues?: string | undefined;
              bubbleChartValidateMsg?: string | undefined;
              queryBinsNotSupported?: string | undefined;
              invalidSeriesType?: string | undefined;
              or?: string | undefined;
          } | undefined;
      } | undefined;
      countSeries?: string | undefined;
      xAxis?: string | undefined;
      timeAggregationTypes?: {
          start?: string | undefined;
          end?: string | undefined;
      } | undefined;
      axisLabels?: {
          values?: string | undefined;
          standardizedValues?: string | undefined;
          aggregationOfValues?: string | undefined;
          aggregationOfFieldName?: string | undefined;
      } | undefined;
      titleLabels?: {
          aggrFieldsByCategory?: string | undefined;
          aggrTypeCategory?: string | undefined;
          aggrTypeCategoryBySplitBy?: string | undefined;
          aggrTypeOfAggrFields?: string | undefined;
          aggrTypeOfAggrFieldByCategoryBySplitByField?: string | undefined;
          aggrTypeOfAggrFieldsByCategory?: string | undefined;
          aggrFieldsByXAxisField?: string | undefined;
          aggrTypeXAxisField?: string | undefined;
          aggrTypeXAxisFieldBySplitBy?: string | undefined;
          aggrTypeOfAggrFieldByXAxisFieldBySplitByField?: string | undefined;
          aggrTypeOfAggrFieldsByXAxisField?: string | undefined;
          distributionOfField?: string | undefined;
          distributionOfFields?: string | undefined;
          distributionOfFieldsByCategory?: string | undefined;
          distributionOfFieldsByCategoryAndSplitBy?: string | undefined;
          xAndY?: string | undefined;
      } | undefined;
      customAmchartsStrings?: {
          "Zoom Out"?: string | undefined;
          Play?: string | undefined;
          Stop?: string | undefined;
          Legend?: string | undefined;
          "Press ENTER to toggle"?: string | undefined;
          Loading?: string | undefined;
          Home?: string | undefined;
          Chart?: string | undefined;
          "Serial chart"?: string | undefined;
          "X/Y chart"?: string | undefined;
          "Pie chart"?: string | undefined;
          "Gauge chart"?: string | undefined;
          "Radar chart"?: string | undefined;
          "Sankey diagram"?: string | undefined;
          "Flow diagram"?: string | undefined;
          "Chord diagram"?: string | undefined;
          "TreeMap chart"?: string | undefined;
          "Sliced chart"?: string | undefined;
          Series?: string | undefined;
          "Candlestick Series"?: string | undefined;
          "OHLC Series"?: string | undefined;
          "Column Series"?: string | undefined;
          "Line Series"?: string | undefined;
          "Pie Slice Series"?: string | undefined;
          "Funnel Series"?: string | undefined;
          "Pyramid Series"?: string | undefined;
          "X/Y Series"?: string | undefined;
          Map?: string | undefined;
          "Press ENTER to zoom in"?: string | undefined;
          "Press ENTER to zoom out"?: string | undefined;
          "Use arrow keys to zoom in and out"?: string | undefined;
          "Use plus and minus keys on your keyboard to zoom in and out"?: string | undefined;
          Export?: string | undefined;
          Image?: string | undefined;
          Data?: string | undefined;
          Print?: string | undefined;
          "Press ENTER to open"?: string | undefined;
          "Press ENTER to print."?: string | undefined;
          "Press ENTER to export as %1."?: string | undefined;
          "(Press ESC to close this message)"?: string | undefined;
          "Image Export Complete"?: string | undefined;
          "Export operation took longer than expected. Something might have gone wrong."?: string | undefined;
          "Saved from"?: string | undefined;
          "Use TAB to select grip buttons or left and right arrows to change selection"?: string | undefined;
          "Use left and right arrows to move selection"?: string | undefined;
          "Use left and right arrows to move left selection"?: string | undefined;
          "Use left and right arrows to move right selection"?: string | undefined;
          "Use TAB select grip buttons or up and down arrows to change selection"?: string | undefined;
          "Use up and down arrows to move selection"?: string | undefined;
          "Use up and down arrows to move lower selection"?: string | undefined;
          "Use up and down arrows to move upper selection"?: string | undefined;
          "From %1 to %2"?: string | undefined;
          "From %1"?: string | undefined;
          "To %1"?: string | undefined;
          "No parser available for file: %1"?: string | undefined;
          "Error parsing file: %1"?: string | undefined;
          "Unable to load file: %1"?: string | undefined;
          "Invalid date"?: string | undefined;
      } | undefined;
  };
  /**
   * Provides an API to interact with the chart's configuration.
   *
   * **Note**: This property has a union type of `ChartModel | WebChart` meaning a raw chart config object can be passed to it instead, however it is recommended to use a `ChartModel` instance whenever possible.
   */
  accessor model: ChartModel | WebChart | undefined;
  /**
   * Whether to consider a `null` statistic as valid. If set to `false` and the data has only null values, the chart's dataset will be considered empty:
   * - The corresponding warning event will be sent
   * - The "no data" message will be displayed (unless `showUIMesssages` is set to `false`)
   *
   * @default false
   */
  accessor nullAsValid: boolean;
  /** A placeholder string to provides a brief hint to the user indicating needed information for creating a chart. */
  accessor placeholder: string | undefined;
  /**
   * Builds charts sequentially instead of rendering them all at once
   *
   * @default false
   */
  accessor queueChartCreation: boolean | undefined;
  /**
   * When `true`, the chart's dataItems associated with empty (no value) categories (from only a `Count` aggregation)
   * will be populated with 0s, via the `completeDataForEmptyCategoriesWithZeros` method.
   *
   * @default false
   */
  accessor replaceNoValueCategoryWithZero: boolean | undefined;
  /**
   * When `true`, the features extent will be returned through the `arcgisDataProcessComplete` and `arcgisSelectionComplete` events payload.
   * Applies only to:
   * - Charts using an aggregation.
   * - Data source using a feature layer compatible with envelope aggregation.
   *
   * The extent (`IExtent`) is returned through a property called `arcgis_charts_features_extent`.
   *
   * **Note**: Not applicable to gauge.
   *
   * @default false
   */
  accessor returnFeaturesExtent: boolean | undefined;
  /**
   * When `true`, the selection indexes will be computed whenever a selection is made on or passed to the chart.
   *
   * **Note**: Not applicable to gauge.
   *
   * @default false
   */
  accessor returnSelectionIndexes: boolean | undefined;
  /**
   * When `true`, the object ids will be computed whenever a selection is made on or passed to the chart.
   * Only considered for a data source using a feature layer.
   *
   * **Note**: Not applicable to gauge.
   *
   * @default false
   */
  accessor returnSelectionOIDs: boolean | undefined;
  /**
   * When `true`, the chart is rotated 90 degrees so that the x-axis becomes vertical and the y-axis becomes horizontal.
   *
   * **Note**: Applicable to bar chart, line chart, combo bar and line chart and box plot.
   *
   * @deprecated since 5.0. Use charts model's [rotatedState](https://developers.arcgis.com/javascript/latest/references/charts-components/model/bar-chart-model/bar-chart-model/#rotatedState) prop instead.
   * @default false
   */
  accessor rotation: boolean | undefined;
  /** Applies runtime data filters to the chart. */
  accessor runtimeDataFilters: WebChartDataFilters | undefined;
  /**
   * A callback function used to format the secondary y-axis labels. If the returned string contains HTML tags they will be interpreted as such.
   * The property will be effective only if 3 axes are defined (dual axis chart).
   *
   * **Note**: Not applicable to pie chart or gauge.
   */
  accessor secondaryYAxisLabelFormatter: AxisLabelFormatCallback | undefined;
  /**
   * When this property is set, it will apply a selection on the chart matching the provided selection.
   *
   * **Note**: Not applicable to gauge.
   */
  accessor selectionData: SelectionData | undefined;
  /**
   * Used to provide a customized theme for the selected and non selected elements.
   * - If no style is provided for the selected elements, a default selection is applied.
   * - If no style is provided for the non selected elements, the chart's style is applied.
   *
   * **Note**: Not applicable to gauge.
   */
  accessor selectionTheme: SelectionTheme | undefined;
  /**
   * When `true`, the series properties `unit` and `size` become optional and will be automatically set to values that fit the data set. Used when creating or updating a chart compatible with time binning.
   *
   * **Note**: Only applicable to charts using the temporal binning feature (bar chart, line chart, combo bar and line chart, radar chart).
   *
   * @default false
   */
  accessor setTimeBinningInfoWhenNotProvided: boolean | undefined;
  /**
   * Whether to display or hide all UI messages (e.g. no data warnings, or when the logarithmic scale can't be applied to an axis when the data contains values <= 0).
   *
   * @default false
   */
  accessor showUIMessages: boolean | undefined;
  /**
   * Whether to synchronize the selection between chart components from the same layer.
   *
   * @default false
   */
  accessor syncSelection: boolean;
  /**
   * Determines whether the selections from the chart should be synchronized with the layer view and vice versa.
   *
   * @default "disabled"
   */
  accessor syncSelectionsBetweenChartAndLayerViewPolicy: SyncSelectionsBetweenChartAndLayerViewPolicy;
  /** Used to set a custom time zone for the chart. */
  accessor timeZone: MapView["timeZone"] | undefined;
  /**
   * A callback function used to format the tooltips. If the returned string contains HTML tags they will be interpreted as such.
   *
   * **Note**: Not applicable to gauge.
   */
  accessor tooltipFormatter: ChartOptions["tooltipFormatter"] | undefined;
  /**
   * Whether to update the series when the data updates while the chart uses a split-by field configuration.
   *
   * If `addMissingSeries` is set to `true` the missing series will be added to cover the split-by values not referenced by the config.
   * The default information from the property `updateSplitBySeries.seriesTemplate` will be applied to the new series.
   *
   * **Note**: Applicable only to bar chart, line chart and box plot when a split-by field is used.
   */
  accessor updateSplitBySeries: MissingSplitBySeriesProps | undefined;
  /**
   * Enable animation on the chart.
   *
   * @default false
   */
  accessor useAnimatedCharts: boolean | undefined;
  /**
   * Allows the use of the fields alias from the `layer.popupTemplate` when rendering the field names on the chart (e.g. tooltips, axes, legend).
   *
   * @default false
   */
  accessor usePopupTemplateFieldsInfo: boolean | undefined;
  /** Used to access the feature layer view instance in order to perform client side queries. */
  accessor view: MapView | SceneView | undefined;
  /**
   * Whether the chart should be refreshed when the view's time extent changes.
   *
   * **Note**: Not supported for histogram.
   *
   * @default "ignore"
   */
  accessor viewTimeExtentChangePolicy: ViewTimeExtentChangePolicy;
  /**
   * A callback function used to format the x-axis labels. If the returned string contains HTML tags they will be interpreted as such.
   *
   * **Note**: Not applicable to pie chart.
   */
  accessor xAxisLabelFormatter: AxisLabelFormatCallback | undefined;
  /**
   * A callback function used to format the y-axis labels. If the returned string contains HTML tags they will be interpreted as such.
   *
   * **Note**: Not applicable to pie chart or gauge.
   */
  accessor yAxisLabelFormatter: AxisLabelFormatCallback | undefined;
  /**
   * Clears all selection on the chart.
   *
   * **Note**: Not applicable to gauge.
   */
  clearSelection(): Promise<void>;
  /**
   * Triggers an alert to display an error message.
   *
   * @param errorMessage
   */
  errorAlert(errorMessage?: string): Promise<void>;
  /**
   * Export the current chart's data as a CSV file.
   *
   * The `Options` object can contain the following properties:
   * - `columns`: An array of column to include in the CSV file.
   * - `delimiter`: The delimiter to use in the CSV file. Default is `,`.
   * - `includeHeader`: Whether to include the header row in the CSV file. Default is `true`.
   * - `quoteAll`: Whether to quote all values in the CSV file. Default is `false`.
   * - `locale`: The locale to use when formatting the CSV file. Default is `en`.
   *    - Locale supported are: "ar", "ar-u-nu-latn", "bs", "bg", "ca", "cs", "da", "de", "el", "en", "en-US", "es", "et", "fi", "fr", "he", "hr", "hu", "id", "it", "ja", "ko", "lt", "lv", "no", "nl", "pl", "pt-BR", "pt-PT", "ro", "ru", "sr", "sl", "sk", "sv", "th", "tr", "uk", "vi", "zh-CN", "zh-HK", "zh-TW"
   *
   * **Note**: The chart types supported by this method are:
   * - Bar chart
   * - Box plot
   * - Combo bar and line chart
   * - Histogram
   * - Line chart
   * - Pie chart
   *
   * @param options
   */
  exportAsCSV(options?: CSVOptions): Promise<void>;
  /**
   * Exports the current chart as an image. Default format is `png`.
   * - Alternative formats supported are: `jpeg` and `svg`.
   *
   * @param format
   */
  exportAsImage(format?: DownloadableChartImagesTypes): Promise<void>;
  /** Returns a promise that resolves when the chart model is fully loaded. */
  loadModel(): Promise<void>;
  /**
   * Notify method allows passing external messages to the chart component.
   * It can be used to pass validation or information messages.
   * In a situation where a config update is overriding your notification modal, consider waiting for the `arcgisUpdateComplete` event.
   *
   * @param message - The message to display in the notification panel.
   * @param heading - The heading to display in the notification panel.
   */
  notify(message?: string, heading?: string): Promise<void>;
  /**
   * Re-render the chart.
   *
   * @param props - Indicates whether to fetch new data. Default: `true`.
   */
  refresh(props?: {
      updateData?: boolean;
      resetAxesBounds?: boolean;
  }): Promise<void>;
  /**
   * Resets the chart zoom to bring it back to full extent
   *
   * **Note**: Applicable to XY charts only.
   */
  resetZoom(): Promise<void>;
  /**
   * Switches the selection on the chart.
   *
   * **Note**: Not applicable to gauge.
   */
  switchSelection(): Promise<void>;
  "@setterTypes": {
    disableInteractions?: boolean | undefined;
  };
  /** Event triggered once the chart axes min/max values are computed. */
  readonly arcgisAxesMinMaxChange: import("@arcgis/lumina").TargetedEvent<this, AxesMinMaxChangePayload>;
  /** Event triggered when an error is detected with the data set. */
  readonly arcgisBadDataWarningRaise: import("@arcgis/lumina").TargetedEvent<this, DataWarningObject>;
  /** Event triggered when the chart is not found for the given `chartIndex` property. */
  readonly arcgisChartNotFoundWarning: import("@arcgis/lumina").TargetedEvent<this, string>;
  /** Event triggered when the chart config is changed. */
  readonly arcgisConfigChange: import("@arcgis/lumina").TargetedEvent<this, {
      newConfig: WebChart | undefined;
      oldConfig: WebChart | undefined;
      functionCalled: string | undefined;
  }>;
  /**
   * Event triggered once the chart data has been fetched but not yet fully processed.
   *
   * For instance it can be useful to see all the slices before they get grouped into an 'other' slice during the post-processing step.
   *
   * **Note**: Applicable to pie chart only.
   */
  readonly arcgisDataFetchComplete: import("@arcgis/lumina").TargetedEvent<this, WebChartDataTypes>;
  /** Event triggered once the chart data has been processed. */
  readonly arcgisDataProcessComplete: import("@arcgis/lumina").TargetedEvent<this, DataProcessCompletePayload>;
  /** Event triggered when an error occurred while fetching of processing the data for the chart. */
  readonly arcgisDataProcessError: import("@arcgis/lumina").TargetedEvent<this, void>;
  /** Event triggered when an invalid configuration is detected. */
  readonly arcgisInvalidConfigWarningRaise: import("@arcgis/lumina").TargetedEvent<this, DataWarningObject>;
  /** Event triggered once a legend item visibility has been changed. */
  readonly arcgisLegendItemVisibilityChange: import("@arcgis/lumina").TargetedEvent<this, LegendItemVisibilityChangePayload>;
  /** Event triggered when a no-render prop is changed. */
  readonly arcgisNoRenderPropChange: import("@arcgis/lumina").TargetedEvent<this, NoRenderPropChangePayload>;
  /** Event triggered once the chart rendering is complete. */
  readonly arcgisRenderingComplete: import("@arcgis/lumina").TargetedEvent<this, void>;
  /** Event triggered when an error occurred that prevents the chart from being created or updated. */
  readonly arcgisRuntimeError: import("@arcgis/lumina").TargetedEvent<this, void>;
  /** Event triggered when a selection is applied to the chart. */
  readonly arcgisSelectionComplete: import("@arcgis/lumina").TargetedEvent<this, SelectionCompletePayload>;
  /** Event triggered once the chart series color have been assigned. */
  readonly arcgisSeriesColorChange: import("@arcgis/lumina").TargetedEvent<this, SeriesColorChangePayload>;
  /** Event carrying the series id as they have been sorted following the `orderOptions` instructions. */
  readonly arcgisSeriesOrder: import("@arcgis/lumina").TargetedEvent<this, string[]>;
  /** Event triggered once the chart is updated. */
  readonly arcgisUpdateComplete: import("@arcgis/lumina").TargetedEvent<this, ValidationStatus>;
  readonly "@eventTypes": {
    arcgisAxesMinMaxChange: ArcgisChart["arcgisAxesMinMaxChange"]["detail"];
    arcgisBadDataWarningRaise: ArcgisChart["arcgisBadDataWarningRaise"]["detail"];
    arcgisChartNotFoundWarning: ArcgisChart["arcgisChartNotFoundWarning"]["detail"];
    arcgisConfigChange: ArcgisChart["arcgisConfigChange"]["detail"];
    arcgisDataFetchComplete: ArcgisChart["arcgisDataFetchComplete"]["detail"];
    arcgisDataProcessComplete: ArcgisChart["arcgisDataProcessComplete"]["detail"];
    arcgisDataProcessError: ArcgisChart["arcgisDataProcessError"]["detail"];
    arcgisInvalidConfigWarningRaise: ArcgisChart["arcgisInvalidConfigWarningRaise"]["detail"];
    arcgisLegendItemVisibilityChange: ArcgisChart["arcgisLegendItemVisibilityChange"]["detail"];
    arcgisNoRenderPropChange: ArcgisChart["arcgisNoRenderPropChange"]["detail"];
    arcgisRenderingComplete: ArcgisChart["arcgisRenderingComplete"]["detail"];
    arcgisRuntimeError: ArcgisChart["arcgisRuntimeError"]["detail"];
    arcgisSelectionComplete: ArcgisChart["arcgisSelectionComplete"]["detail"];
    arcgisSeriesColorChange: ArcgisChart["arcgisSeriesColorChange"]["detail"];
    arcgisSeriesOrder: ArcgisChart["arcgisSeriesOrder"]["detail"];
    arcgisUpdateComplete: ArcgisChart["arcgisUpdateComplete"]["detail"];
  };
}