/// <reference path="../../index.d.ts" />
import { JsxNode, PublicLitElement as LitElement, TargetedEvent } from '@arcgis/lumina';
import { ArcgisArcadeEditor } from '../arcgis-arcade-editor/customElement.js';
import { ResponseDisplayCard } from './functional';
import { default as FeatureLayer } from '@arcgis/core/layers/FeatureLayer.js';
import { HistoryItem, FeedbackState, Context } from './types';
import { PropertyValues } from 'lit';
import { default as CatalogFootprintLayer } from '@arcgis/core/layers/catalog/CatalogFootprintLayer';
import { default as CSVLayer } from '@arcgis/core/layers/CSVLayer';
import { default as GeoJSONLayer } from '@arcgis/core/layers/GeoJSONLayer';
import { default as OGCFeatureLayer } from '@arcgis/core/layers/OGCFeatureLayer';
import { default as OrientedImageryLayer } from '@arcgis/core/layers/OrientedImageryLayer';
import { default as SceneLayer } from '@arcgis/core/layers/SceneLayer';
import { default as Sublayer } from '@arcgis/core/layers/support/Sublayer';
import { default as SubtypeSublayer } from '@arcgis/core/layers/support/SubtypeSublayer';
import { default as VoxelLayer } from '@arcgis/core/layers/VoxelLayer';
import { default as WFSLayer } from '@arcgis/core/layers/WFSLayer';

/**
 * Arcade Assistant component for AI-powered Arcade code generation.
 *
 * @private
 */
export declare class ArcgisArcadeCodingAssistant extends LitElement {
    closePanel?: (e: Event) => void;
    insertText?: (text: string) => void;
    /** @default "" */
    helpBase?: string;
    /**
     * Whether ai assistants are enabled in the organization's settings.
     *
     * @default false
     */
    assistantsEnabled: boolean;
    layer: CatalogFootprintLayer | CSVLayer | FeatureLayer | GeoJSONLayer | OGCFeatureLayer | OrientedImageryLayer | SceneLayer | Sublayer | SubtypeSublayer | VoxelLayer | WFSLayer;
    portalUrl: string;
    serviceUrl: string;
    /** @default false */
    closed: boolean;
    editorRef: ArcgisArcadeEditor;
    feedbackServiceUrl?: string;
    appVersion?: string;
    /** Permanently destroy the component */
    destroy(): Promise<void>;
}
