/// <reference path="../../index.d.ts" />
import { PropertyValues } from 'lit';
import { JsxNode, PublicLitElement as LitElement, TargetedEvent } from '@arcgis/lumina';
import { ApiCategory } from '@arcgis/languages-api-utils';
import { EditorProfile } from '../../utils/profile/editor-profile';
import { IPredefinedProfile } from '../../utils/profile/types';
import { editor } from 'monaco-editor';

/**
 * The SQL Expression Editor provides a familiar code editor experience for writing your own SQL expressions.
 * It supports syntax highlighting, code completion, and validation, allowing users to write SQL expressions using the
 * [standardized SQL functions](https://doc.arcgis.com/en/arcgis-online/reference/sql-agol.htm) supported by ArcGIS.
 *
 * [Read more...](https://developers.arcgis.com/javascript/latest/references/coding-components/arcgis-sql-expression-editor/)
 *
 * @internal
 */
export declare class ArcgisSqlExpressionEditor extends LitElement {
    /**
     * The profile to use for the editor. The profile defines the variables and functions that are available to the editor.
     *
     * @example
     * ```jsx
     * <arcgis-sql-expression-editor profile={id: "field-calculation", definitions: { $layer: layer }}></arcgis-sql-expression-editor>
     * ```
     */
    profile?: IPredefinedProfile;
    /**
     * The sql expression script. Use this property to define or update the script.
     *
     * @default ""
     * @example
     * ```html
     * <arcgis-sql-expression-editor script="CAST(2.45 AS INTEGER)"></arcgis-sql-expression-editor>
     * ```
     */
    script: string;
    /**
     * If true, it will hide the side actions bar. The editor will be in a minimalistic UX.
     *
     * @default false
     * @example
     * ```html
     *  <arcgis-sql-expression-editor hideSideBar></arcgis-sql-expression-editor>
     * ```
     */
    hideSideBar: boolean;
    /** Set the focus on the element. */
    setFocus(): Promise<void>;
    /** Emitted when the diagnostics collection has changed. */
    readonly arcgisDiagnosticsChange: TargetedEvent<this, editor.IMarkerData[]>;
    /** Emitted when the script string has changed. */
    readonly arcgisScriptChange: TargetedEvent<this, string>;
    "@eventTypes": {
        "arcgisDiagnosticsChange": ArcgisSqlExpressionEditor["arcgisDiagnosticsChange"]["detail"];
        "arcgisScriptChange": ArcgisSqlExpressionEditor["arcgisScriptChange"]["detail"];
    };
}
