export * from "./spec/index";
export * from "./utils/index";
export * from "./model/index";
export { type PanelNumberChangePayload, type DataChangeErrorPayload, type ModelListChangePayload, type DataProcessCompletePayload, type AxesMinMaxChangePayload, type SeriesColorChangePayload, type NoRenderPropChangePayload, type LegendItemVisibilityChangePayload, type DefaultActionSelectPayload, type SelectionCompletePayload } from "./utils/components/event-payloads";
export { type AxisLabelFormatCallback, type ChartOptions, type GaugeInnerLabelFormatCallback, type GuideTooltipFormatCallback, type NotifyOptions, type PieChartLegendValueLabelFormatCallback, type PreRenderCallback } from "./chart-rendering/common/interfaces";
export { BarChartDataPopoverKinds, BoxPlotDataPopoverKinds, ChartAuthoringPages, HistogramDataPopoverKinds, IntervalPopoverProps, LineChartDataPopoverKinds, PieChartDataPopoverKinds, ScatterplotDataPopoverKinds } from "./interfaces";
export { type FontStyleChangePayload } from "./components/arcgis-charts-config-font-style/resource";
export { type GuideChangePayload } from "./components/arcgis-charts-config-guide/resource";

/**
 * Get a resolved path from where an asset can be loaded.
 *
 * @param suffix - The relative path for the asset.
 */
export function getAssetPath(suffix: string): string;

/**
 * Used to manually set the base path where package assets (like localization
 * and icons) can be found.
 *
 * By default, the package assets are loaded from
 * `https://js.arcgis.com/<version>/<simplified-package-name>/`. We are hosting
 * our assets on a CDN (Content Delivery Network) to ensure fast and reliable
 * access. It is CORS-enabled, so you can load the assets from any domain. This
 * is the recommended way to load the assets and avoid bundling them with your
 * application.
 *
 * However, if you need to host the assets locally, you can copy them manually
 * as part of your build process and use `setAssetPath` to customize where the
 * browser will load the assets from.
 *
 * @param path - Relative or absolute path to the assets folder.
 */
export function setAssetPath(path: URL | string): void;

import type { ArcgisChart } from "./components/arcgis-chart/customElement.js";
import type { ArcgisChartsActionBar } from "./components/arcgis-charts-action-bar/customElement.js";

export { ToEvents, TargetedEvent } from "@arcgis/lumina";

export interface ArcgisChartCustomEvent<T> extends CustomEvent<T> {
  detail: T;
  target: ArcgisChart;
  currentTarget: ArcgisChart;
}
export interface ArcgisChartsActionBarCustomEvent<T> extends CustomEvent<T> {
  detail: T;
  target: ArcgisChartsActionBar;
  currentTarget: ArcgisChartsActionBar;
}


declare global {
  interface HTMLElementTagNameMap {
    "arcgis-chart": ArcgisChart;
    "arcgis-charts-action-bar": ArcgisChartsActionBar;

  }

  type HTMLArcgisChartElementEventMap = ArcgisChart["@eventTypes"];
  type HTMLArcgisChartElement = ArcgisChart;

  type HTMLArcgisChartsActionBarElementEventMap = ArcgisChartsActionBar["@eventTypes"];
  type HTMLArcgisChartsActionBarElement = ArcgisChartsActionBar;


}