import { ElementRef, OnDestroy, AfterViewInit, OnChanges, SimpleChanges, EventEmitter } from '@angular/core';
import { editor, IDisposable } from 'monaco-editor';
import { LanguageModel } from '../../misc/types';
import { CodeEditorContent } from './codeEditor.interface';
import * as i0 from "@angular/core";
/**
 * Component used for editing code
 */
export declare class CodeEditorComponent implements OnDestroy, AfterViewInit, OnChanges {
    protected element: ElementRef<HTMLElement>;
    /**
     * Indication whether was monaco init called
     */
    static monacoInit: boolean;
    /**
     * Instance of code editor
     */
    protected codeEditor: editor.IStandaloneCodeEditor | null;
    /**
     * Opened file in editor
     */
    protected openedFile: editor.ITextModel | null;
    /**
     * Handler for event of change of model
     */
    protected changeEvent: IDisposable | null;
    /**
     * Content that is being displayed
     */
    content: string | undefined | null;
    /**
     * Language model used for selecting proper language
     */
    languageModel: LanguageModel | undefined | null;
    /**
     * Occurs when content of editor is saved
     */
    save: EventEmitter<CodeEditorContent>;
    /**
     * Occurs when content of editor changes, new value passed down
     */
    contentChange: EventEmitter<CodeEditorContent>;
    constructor(element: ElementRef<HTMLElement>);
    /**
     * Called when input value changes
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Called when view was initialized
     */
    ngAfterViewInit(): void;
    /**
     * Saves currently opened document
     */
    saveContent(): Promise<void>;
    /**
     * Called when component is destroyed
     */
    ngOnDestroy(): void;
    /**
     * Creates editor
     */
    protected createEditor(): void;
    /**
     * Updates content of code editor
     */
    protected updateContent(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CodeEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CodeEditorComponent, "code-editor", never, { "content": { "alias": "content"; "required": false; }; "languageModel": { "alias": "languageModel"; "required": false; }; }, { "save": "save"; "contentChange": "contentChange"; }, never, never, false, never>;
}
//# sourceMappingURL=codeEditor.component.d.ts.map