import { ReactElement } from 'react';
import { ValueOf } from '../types';
import 'codemirror/mode/sql/sql';
import 'codemirror/mode/javascript/javascript';
import 'codemirror/mode/shell/shell';
import 'codemirror/mode/python/python';
import 'codemirror/mode/r/r';
import 'codemirror/mode/clike/clike';
import 'codemirror/mode/htmlmixed/htmlmixed';
import 'codemirror/mode/yaml/yaml';
import 'codemirror/mode/xml/xml';
import 'codemirror/addon/hint/show-hint';
import './code-editor.less';
export declare const CODE_EDITOR_MODES: {
    readonly SQL: "text/x-sparksql";
    readonly JS: "javascript";
    readonly SHELL: "shell";
    readonly HTML_MIXED: "htmlmixed";
    readonly PLAIN_TEXT: "text/plain";
    readonly PYTHON: "python";
    readonly R: "r";
    readonly JAVA: "clike";
    readonly YAML: "yaml";
    readonly XML: "xml";
};
export type CodeEditorModeName = ValueOf<typeof CODE_EDITOR_MODES>;
export declare const CODE_EDITOR_THEMES: {
    readonly DARK: "dracula";
    readonly LIGHT: "default";
};
export type CodeEditorTheme = ValueOf<typeof CODE_EDITOR_THEMES>;
export declare const JSON_MODE: {
    name: "javascript";
    json: boolean;
};
export declare enum CORNER_PLACEMENTS_TYPES {
    TOP_RIGHT = "top-right",
    TOP_LEFT = "top-left",
    BOTTOM_RIGHT = "bottom-right",
    BOTTOM_LEFT = "bottom-left"
}
export declare const CORNER_PLACEMENTS: CORNER_PLACEMENTS_TYPES[];
export type CodeEditorMode = CodeEditorModeName | {
    name?: CodeEditorModeName;
    json?: boolean;
};
export type CodeEditorOptions = {
    lineWrapping?: boolean;
    tabSize?: number;
    value?: string;
    mode?: CodeEditorMode;
    lineNumbers?: boolean;
    indentWithTabs?: boolean;
    smartIndent?: boolean;
    matchBrackets?: boolean;
    readOnly?: string | boolean;
    theme?: CodeEditorTheme;
};
export type CodeEditorControls = {
    placement?: CORNER_PLACEMENTS_TYPES;
    element?: ReactElement;
    hide?: boolean;
};
export type CodeEditorProps = {
    autoFocus?: boolean;
    className?: string;
    name?: string;
    onChange?: (...args: any[]) => any;
    onDestroy?: (...args: any[]) => any;
    createApi?: (...args: any[]) => any;
    options?: CodeEditorOptions;
    controls?: Array<CodeEditorControls>;
    autocomplete?: boolean;
    hintList?: Array<string>;
    enquoteDangerousHintNames?: boolean;
    initialValue?: string;
    value?: string;
    testId?: string;
    delimiterCallback?: () => void;
    enableSearch?: boolean;
    getSearchQuery?: () => void;
    quoteChar?: string;
    textEditorAriaLabel?: string;
};
export declare const CodeEditor: (props: CodeEditorProps) => import("react/jsx-runtime").JSX.Element;
