/// <reference types="../index.d.ts" />
import type { ArcgisChart } from "../components/arcgis-chart/customElement.js";
import type { ArcgisChartsActionBar } from "../components/arcgis-charts-action-bar/customElement.js";
import { JSXBase as StencilJsx } from "@stencil/core/internal";
import type { EventHandler } from "@arcgis/lumina";

type ArcgisChartSetterTypes = ArcgisChart["@setterTypes"];
interface StencilArcgisChart extends Partial<Pick<ArcgisChart, "actionMode" | "allowUsingObjectIdStat" | "aria" | "autoDestroyDisabled" | "autoDisposeChart" | "autoInverseDataLabelTextColor" | "chartIndex" | "chartLimits" | "chartWillRender" | "cursorRange" | "dataLabelFormatter" | "disableTogglingLegendItems" | "enableAutoTheming" | "enableBetaFeatures" | "enableConfiguration" | "enableResponsiveFeatures" | "errorPolicy" | "featureIndex" | "filterByExtent" | "filterBySelection" | "gaugeInnerLabelFormatter" | "guideTooltipFormatter" | "hideEmptySeries" | "hideLicenseWatermark" | "hideLoaderAnimation" | "ignoreSmoothRenderingLimit" | "ignoreViewExtent" | "layer" | "layerFieldsChangePolicy" | "layerFilterChangePolicy" | "layerItemId" | "layerRendererChangePolicy" | "legendPosition" | "legendValueLabelFormatter" | "legendVisibility" | "loaderColors" | "messageOverrides" | "model" | "nullAsValid" | "placeholder" | "queueChartCreation" | "replaceNoValueCategoryWithZero" | "returnFeaturesExtent" | "returnSelectionIndexes" | "returnSelectionOIDs" | "rotation" | "runtimeDataFilters" | "secondaryYAxisLabelFormatter" | "selectionData" | "selectionTheme" | "setTimeBinningInfoWhenNotProvided" | "showUIMessages" | "syncSelection" | "syncSelectionsBetweenChartAndLayerViewPolicy" | "timeZone" | "tooltipFormatter" | "updateSplitBySeries" | "useAnimatedCharts" | "usePopupTemplateFieldsInfo" | "view" | "viewTimeExtentChangePolicy" | "xAxisLabelFormatter" | "yAxisLabelFormatter">>, ArcgisChartSetterTypes, StencilJsx.HTMLAttributes<ArcgisChart> {
  onArcgisAxesMinMaxChange?: EventHandler<ArcgisChart["arcgisAxesMinMaxChange"]>;
  onArcgisBadDataWarningRaise?: EventHandler<ArcgisChart["arcgisBadDataWarningRaise"]>;
  onArcgisChartNotFoundWarning?: EventHandler<ArcgisChart["arcgisChartNotFoundWarning"]>;
  onArcgisConfigChange?: EventHandler<ArcgisChart["arcgisConfigChange"]>;
  onArcgisDataFetchComplete?: EventHandler<ArcgisChart["arcgisDataFetchComplete"]>;
  onArcgisDataProcessComplete?: EventHandler<ArcgisChart["arcgisDataProcessComplete"]>;
  onArcgisDataProcessError?: EventHandler<ArcgisChart["arcgisDataProcessError"]>;
  onArcgisInvalidConfigWarningRaise?: EventHandler<ArcgisChart["arcgisInvalidConfigWarningRaise"]>;
  onArcgisLegendItemVisibilityChange?: EventHandler<ArcgisChart["arcgisLegendItemVisibilityChange"]>;
  onArcgisNoRenderPropChange?: EventHandler<ArcgisChart["arcgisNoRenderPropChange"]>;
  onArcgisRenderingComplete?: EventHandler<ArcgisChart["arcgisRenderingComplete"]>;
  onArcgisRuntimeError?: EventHandler<ArcgisChart["arcgisRuntimeError"]>;
  onArcgisSelectionComplete?: EventHandler<ArcgisChart["arcgisSelectionComplete"]>;
  onArcgisSeriesColorChange?: EventHandler<ArcgisChart["arcgisSeriesColorChange"]>;
  onArcgisSeriesOrder?: EventHandler<ArcgisChart["arcgisSeriesOrder"]>;
  onArcgisUpdateComplete?: EventHandler<ArcgisChart["arcgisUpdateComplete"]>;
}

interface StencilArcgisChartsActionBar extends Partial<Pick<ArcgisChartsActionBar, "actionBarSelectionMode" | "chartElement" | "chartType" | "clearSelectionState" | "clearSelectionTitle" | "clearSelectionToggle" | "disableCSVExportForChartTypes" | "editChartState" | "editChartTitle" | "editChartToggle" | "expanded" | "exportActionState" | "exportAsCSVState" | "exportAsCSVTitle" | "exportAsImageState" | "exportAsImageTitle" | "filterByExtentState" | "filterByExtentTitle" | "filterByExtentToggle" | "filterBySelectionState" | "filterBySelectionTitle" | "filterBySelectionToggle" | "forceDisableActions" | "fullExtentState" | "fullExtentTitle" | "fullExtentToggle" | "hiddenActions" | "legendState" | "legendTitle" | "legendToggle" | "messageOverrides" | "rotateChartState" | "rotateChartTitle" | "rotateChartToggle" | "selectionState" | "selectionTitle" | "selectionToggle" | "switchSelectionState" | "switchSelectionTitle" | "switchSelectionToggle" | "zoomState" | "zoomTitle" | "zoomToggle">>, StencilJsx.HTMLAttributes<ArcgisChartsActionBar> {
  onArcgisActionBarToggle?: EventHandler<ArcgisChartsActionBar["arcgisActionBarToggle"]>;
  onArcgisDefaultActionSelect?: EventHandler<ArcgisChartsActionBar["arcgisDefaultActionSelect"]>;
}

interface ExposedElements {
  "arcgis-chart": StencilArcgisChart;
  "arcgis-charts-action-bar": StencilArcgisChartsActionBar;
}

export namespace JSX {
  export interface IntrinsicElements extends ExposedElements {}
}

declare module "@stencil/core/internal/stencil-public-runtime" {
  export namespace h.JSX {
    interface IntrinsicElements extends ExposedElements {}
  }
}