import type { ArcgisArcadeEditor } from "./components/arcgis-arcade-editor/index.js";
import type { ArcgisCodeEditor } from "./components/arcgis-code-editor/index.js";
import type { ArcgisCodeViewer } from "./components/arcgis-code-viewer/index.js";
import type { ArcgisSqlExpressionEditor } from "./components/arcgis-sql-expression-editor/index.js";

export { getAssetPath, setAssetPath } from './runtime';
export { arcade } from './utils/arcade-monaco/arcade-defaults';
export { sqlExpression } from './utils/sql-expr-monaco/sql-expr-defaults';
export type { Diagnostic } from '@arcgis/arcade-languageservice';
export type * from './utils/index';
export type * from './utils/profile/types';
/**
 * @deprecated Use `setAssetPath` instead
 */
export declare const setArcgisAssetPath: (path: URL | string) => void;
/**
 * @deprecated Use `getAssetPath` instead
 */
export declare const getArcgisAssetPath: (suffix: string) => string;


export interface ArcgisArcadeEditorCustomEvent<T> extends CustomEvent<T> {
  detail: T;
  target: ArcgisArcadeEditor;
  currentTarget: ArcgisArcadeEditor;
}
export interface ArcgisCodeEditorCustomEvent<T> extends CustomEvent<T> {
  detail: T;
  target: ArcgisCodeEditor;
  currentTarget: ArcgisCodeEditor;
}
export interface ArcgisSqlExpressionEditorCustomEvent<T> extends CustomEvent<T> {
  detail: T;
  target: ArcgisSqlExpressionEditor;
  currentTarget: ArcgisSqlExpressionEditor;
}

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

declare global {
  interface HTMLElementTagNameMap {
    "arcgis-arcade-editor": ArcgisArcadeEditor;
    "arcgis-code-editor": ArcgisCodeEditor;
    "arcgis-code-viewer": ArcgisCodeViewer;
    "arcgis-sql-expression-editor": ArcgisSqlExpressionEditor;
  }

  type HTMLArcgisArcadeEditorElementEventMap = ArcgisArcadeEditor["@eventTypes"];
  type HTMLArcgisArcadeEditorElement = ArcgisArcadeEditor;


  type HTMLArcgisCodeEditorElementEventMap = ArcgisCodeEditor["@eventTypes"];
  type HTMLArcgisCodeEditorElement = ArcgisCodeEditor;


  type HTMLArcgisCodeViewerElement = ArcgisCodeViewer;


  type HTMLArcgisSqlExpressionEditorElementEventMap = ArcgisSqlExpressionEditor["@eventTypes"];
  type HTMLArcgisSqlExpressionEditorElement = ArcgisSqlExpressionEditor;


}