import { OnChanges, OnDestroy, AfterViewInit, ElementRef, EventEmitter, SimpleChanges } from '@angular/core';
import { CodeEditorService } from '../services/code-editor.service';
import { TypescriptDefaultsService } from '../services/typescript-defaults.service';
import { JavascriptDefaultsService } from '../services/javascript-defaults.service';
import { JsonDefaultsService } from '../services/json-defaults.service';
import { CodeModel } from '../models/code.model';
import { editor } from 'monaco-editor';
import * as i0 from "@angular/core";
export interface CodeModelChangedEvent {
    sender: CodeEditorComponent;
    value: CodeModel;
}
export declare class CodeEditorComponent implements OnChanges, OnDestroy, AfterViewInit {
    private _editor;
    private _model;
    private defaultOptions;
    /**
     * The instance of the editor.
     */
    get editor(): editor.ICodeEditor;
    protected set editor(value: editor.ICodeEditor);
    editorContent: ElementRef<HTMLDivElement>;
    codeModel: CodeModel;
    /**
     * Editor theme. Defaults to `vs`.
     *
     * Allowed values: `vs`, `vs-dark` or `hc-black`.
     * @memberof CodeEditorComponent
     */
    theme: string;
    /**
     * Editor options.
     *
     * See https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IStandaloneEditorConstructionOptions.html for more details.
     *
     * @memberof CodeEditorComponent
     */
    options: editor.IStandaloneEditorConstructionOptions;
    /**
     * Toggle readonly state of the editor.
     *
     * @memberof CodeEditorComponent
     */
    readOnly: boolean;
    /**
     * An event emitted when the text content of the model have changed.
     */
    valueChanged: EventEmitter<string>;
    /**
     * An event emitted when the code model value is changed.
     */
    codeModelChanged: EventEmitter<CodeModelChangedEvent>;
    /**
     * An event emitted when the contents of the underlying editor model have changed.
     */
    modelContentChanged: EventEmitter<editor.IModelContentChangedEvent>;
    /**
     * Raised when editor finished loading all its components.
     */
    loaded: EventEmitter<CodeEditorComponent>;
    protected editorService: CodeEditorService;
    protected typescriptDefaults: TypescriptDefaultsService;
    protected javascriptDefaults: JavascriptDefaultsService;
    protected jsonDefaults: JsonDefaultsService;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onResize(): void;
    ngAfterViewInit(): Promise<void>;
    private setupEditor;
    runEditorAction(id: string, args?: unknown): void;
    formatDocument(): void;
    private setupDependencies;
    private setEditorValue;
    private updateModel;
    static ɵfac: i0.ɵɵFactoryDeclaration<CodeEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CodeEditorComponent, "ngs-code-editor", never, { "codeModel": { "alias": "codeModel"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "options": { "alias": "options"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; }, { "valueChanged": "valueChanged"; "codeModelChanged": "codeModelChanged"; "modelContentChanged": "modelContentChanged"; "loaded": "loaded"; }, never, never, false, never>;
}
