import { AfterViewInit, OnDestroy, NgZone, ElementRef, EventEmitter, SimpleChanges, OnChanges } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import type * as Monaco from 'monaco-editor';
import { ThemeOptions, ThemeSwitcherService } from '@c8y/ngx-components';
import * as i0 from "@angular/core";
export declare function loadMonacoEditor(): Promise<typeof Monaco>;
export declare class EditorComponent implements AfterViewInit, OnDestroy, ControlValueAccessor, OnChanges {
    private zone;
    private themeSwitcher;
    editorOptions: Monaco.editor.IStandaloneEditorConstructionOptions;
    /**
     * Overrides application theme. If not set, the theme will be taken from the theme switcher service.
     */
    theme: ThemeOptions | null;
    editorInit: EventEmitter<Monaco.editor.IStandaloneCodeEditor>;
    monaco: typeof Monaco;
    editor: Monaco.editor.IStandaloneCodeEditor;
    private _readOnly;
    private _currentValue;
    private _onChanges;
    private _onTouched;
    _editorContainer: ElementRef;
    private themeChanges$;
    constructor(zone: NgZone, themeSwitcher: ThemeSwitcherService);
    writeValue(obj: string | object): void;
    registerOnChange(fn: (value: string) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    ngAfterViewInit(): Promise<void>;
    ngOnChanges(changes: SimpleChanges): void;
    register(): void;
    ngOnDestroy(): void;
    private setTheme;
    private updateOptionsAndLanguage;
    static ɵfac: i0.ɵɵFactoryDeclaration<EditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EditorComponent, "c8y-editor", never, { "editorOptions": { "alias": "editorOptions"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, { "editorInit": "editorInit"; }, never, never, true, never>;
}
//# sourceMappingURL=editor.component.d.ts.map