import { EventEmitter } from '../../stencil-public-runtime';
import { ColorScheme, Language } from './code-editor.types';
import 'codemirror/mode/css/css';
import 'codemirror/mode/htmlmixed/htmlmixed';
import 'codemirror/mode/javascript/javascript';
import 'codemirror/mode/jinja2/jinja2';
import 'codemirror/addon/selection/active-line';
import 'codemirror/addon/edit/matchbrackets';
import 'codemirror/addon/edit/matchtags';
import 'codemirror/addon/lint/lint';
import 'codemirror/addon/lint/json-lint';
import 'codemirror/addon/fold/foldgutter';
import 'codemirror/addon/fold/brace-fold';
import 'codemirror/addon/fold/xml-fold';
import { Languages } from '../date-picker/date.types';
/**
 * @exampleComponent limel-example-code-editor
 * @exampleComponent limel-example-code-editor-readonly-with-line-numbers
 * @exampleComponent limel-example-code-editor-fold-lint-wrap
 * @exampleComponent limel-example-code-editor-copy
 * @exampleComponent limel-example-code-editor-composite
 */
export declare class CodeEditor {
    /**
     * The code to be rendered
     */
    value: string;
    /**
     * The language of the code
     */
    language: Language;
    /**
     * Set to `true` to make the editor read-only.
     * Use `readonly` when the editor is only there to present the data it holds,
     * and will not become possible for the current user to edit.
     */
    readonly: boolean;
    /**
     * Set to `true` to disable the editor.
     * Use `disabled` to indicate that the editor can normally be interacted
     * with, but is currently disabled. This tells the user that if certain
     * requirements are met, the editor may become enabled again.
     */
    disabled: boolean;
    /**
     * Set to `true` to indicate that the current value of the input editor is
     * invalid.
     */
    invalid: boolean;
    /**
     * Set to `true` to indicate that the field is required.
     */
    required: boolean;
    /**
     * The input label.
     */
    label?: string;
    /**
     * Optional helper text to display below the input field when it has focus
     */
    helperText?: string;
    /**
     * Displays line numbers in the editor
     */
    lineNumbers: boolean;
    /**
     * Wraps long lines instead of showing horizontal scrollbar
     */
    lineWrapping: boolean;
    /**
     * Allows the user to fold code
     */
    fold: boolean;
    /**
     * Enables linting of JSON content
     */
    lint: boolean;
    /**
     * Select color scheme for the editor
     */
    colorScheme: ColorScheme;
    /**
     * Defines the language for translations.
     * Will translate the translatable strings on the components.
     */
    translationLanguage: Languages;
    /**
     * Set to false to hide the copy button
     */
    showCopyButton: boolean;
    /**
     * Emitted when the code has changed. Will only be emitted when the code
     * area has lost focus
     */
    change: EventEmitter<string>;
    private host;
    /**
     * This is only used to trigger a redraw if the
     * `(prefers-color-scheme: dark)` media query is changed
     */
    protected random: number;
    private wasCopied;
    private editor;
    private observer;
    private labelId;
    private helperTextId;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    componentDidRender(): void;
    protected watchValue(newValue: string): void;
    protected watchDisabled(): void;
    protected watchReadonly(): void;
    protected watchInvalid(): void;
    protected watchRequired(): void;
    protected watchHelperText(): void;
    private handleChangeDarkMode;
    private handleChange;
    private handleResize;
    private createEditor;
    private getOptions;
    private isDarkMode;
    render(): any;
    private renderHelperLine;
    private forceRedraw;
    private renderCopyButton;
    private copyCode;
    private getButtonText;
    private getButtonAriaLabel;
    private get darkMode();
    private updateEditorReadOnlyState;
    private getReadOnlyOption;
    private updateInputFieldAccessibilityAttributes;
}
//# sourceMappingURL=code-editor.d.ts.map