import { PropertyValueMap } from "lit";
import { FRoot } from "@cldcvr/flow-core";
import * as monaco from "monaco-editor";
export type FCodeEditorLanguage = "scala" | "python" | "json" | "css" | "scss" | "less" | "html" | "javascript" | "typescript";
export type FCodeEditorSettings = monaco.editor.IStandaloneEditorConstructionOptions;
export type FCodeEditorServices = monaco.editor.IStandaloneEditorConstructionOptions;
export declare class FCodeEditor extends FRoot {
    /**
     * css loaded from scss file
     */
    static styles: import("lit").CSSResult[];
    /**
     * editor instance
     */
    editor?: monaco.editor.IStandaloneCodeEditor;
    /**
     * actual code to display in editor
     */
    code?: string;
    /**
     * language of code
     */
    language?: FCodeEditorLanguage;
    /**
     * height to is required to create editor
     */
    height?: string;
    /**
     * width to is required to create editor
     */
    width?: string;
    settings?: FCodeEditorSettings;
    services?: FCodeEditorServices;
    /**
     * monoco editor never works in shadow dom
     */
    createRenderRoot(): this;
    protected willUpdate(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
    protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
}
/**
 * Required for typescript
 */
declare global {
    export interface HTMLElementTagNameMap {
        "f-code-editor": FCodeEditor;
    }
}
