import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
import { EventEmitter } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { MonacoEditorService } from './monaco-editor.service';
import { EditorOptions, FontWeight, Language, LineNumbers, RenderLineHighlight, RenderWhitespace, SnippetSuggestions } from './options/editor-options.model';
import { EditorScrollbarOptions } from './options/editor-scrollbar-options.model';
import * as i0 from "@angular/core";
/**
 * Monaco Editor Component for Angular
 *
 * The Monaco Editor is the code editor that powers [VS Code](https://github.com/Microsoft/vscode), a good page describing the code editor's features is [here](https://code.visualstudio.com/docs/editor/editingevolved).
 */
export declare class MonacoEditorComponent implements ControlValueAccessor {
    monacoEditorService: MonacoEditorService;
    control: NgControl;
    readonly valueChange: EventEmitter<string>;
    set isDiffEditor(value: BooleanInput);
    get isDiffEditor(): BooleanInput;
    /**
     * Enable experimental screen reader support.
     * Defaults to `true`.
     */
    set experimentalScreenReader(value: BooleanInput);
    get experimentalScreenReader(): BooleanInput;
    /**
     * The aria label for the editor's textarea (when it is focused).
     */
    set ariaLabel(value: string);
    get ariaLabel(): string;
    /**
     * Render vertical lines at the specified columns.
     * Defaults to empty array.
     */
    set rulers(value: ReadonlyArray<number>);
    get rulers(): ReadonlyArray<number>;
    /**
     * A string containing the word separators used when doing word navigation.
     * Defaults to `~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?
     */
    set wordSeparators(value: string);
    get wordSeparators(): string;
    /**
     * Enable Linux primary clipboard.
     * Defaults to true.
     */
    set selectionClipboard(value: BooleanInput);
    get selectionClipboard(): BooleanInput;
    /**
     * Control the rendering of line numbers.
     * If it is a function, it will be invoked when rendering a line number and the return value will be rendered.
     * Otherwise, if it is a truey, line numbers will be rendered normally (equivalent of using an identity function).
     * Otherwise, line numbers will not be rendered.
     * Defaults to true.
     */
    set lineNumbers(value: LineNumbers);
    get lineNumbers(): LineNumbers;
    /**
     * Should the corresponding line be selected when clicking on the line number?
     * Defaults to true.
     */
    set selectOnLineNumbers(value: BooleanInput);
    get selectOnLineNumbers(): BooleanInput;
    /**
     * Control the width of line numbers, by reserving horizontal space for rendering at least an amount of digits.
     * Defaults to 5.
     */
    set lineNumbersMinChars(value: NumberInput);
    get lineNumbersMinChars(): NumberInput;
    /**
     * Enable the rendering of the glyph margin.
     * Defaults to true in vscode and to false in monaco-editor.
     */
    set glyphMargin(value: BooleanInput);
    get glyphMargin(): BooleanInput;
    /**
     * The width reserved for line decorations (in px).
     * Line decorations are placed between line numbers and the editor content.
     * You can pass in a string in the format floating point followed by "ch". e.g. 1.3ch.
     * Defaults to 10.
     */
    set lineDecorationsWidth(value: NumberInput);
    get lineDecorationsWidth(): NumberInput;
    /**
     * When revealing the cursor, a virtual padding (px) is added to the cursor, turning it into a rectangle.
     * This virtual padding ensures that the cursor gets revealed before hitting the edge of the viewport.
     * Defaults to 30 (px).
     */
    set revealHorizontalRightPadding(value: NumberInput);
    get revealHorizontalRightPadding(): NumberInput;
    /**
     * Render the editor selection with rounded borders.
     * Defaults to true.
     */
    set roundedSelection(value: BooleanInput);
    get roundedSelection(): BooleanInput;
    /**
     * Theme to be used for rendering.
     * The current out-of-the-box available themes are: 'vs' (default), 'vs-dark', 'hc-black'.
     * You can create custom themes via `monaco.editor.defineTheme`.
     */
    set theme(value: string);
    get theme(): string;
    /**
     * Should the editor be read only.
     * Defaults to false.
     */
    set readOnly(value: BooleanInput);
    get readOnly(): BooleanInput;
    /**
     * Control the behavior and rendering of the scrollbars.
     */
    set scrollbar(value: EditorScrollbarOptions);
    get scrollbar(): EditorScrollbarOptions;
    /**
     * Display overflow widgets as `fixed`.
     * Defaults to `false`.
     */
    set fixedOverflowWidgets(value: BooleanInput);
    get fixedOverflowWidgets(): BooleanInput;
    /**
     * The number of vertical lanes the overview ruler should render.
     * Defaults to 2.
     */
    set overviewRulerLanes(value: NumberInput);
    get overviewRulerLanes(): NumberInput;
    /**
     * Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'.
     * Defaults to 'blink'.
     */
    set cursorBlinking(value: string);
    get cursorBlinking(): string;
    /**
     * Zoom the font in the editor when using the mouse wheel in combination with holding Ctrl.
     * Defaults to false.
     */
    set mouseWheelZoom(value: BooleanInput);
    get mouseWheelZoom(): BooleanInput;
    /**
     * Control the cursor style, either 'block' or 'line'.
     * Defaults to 'line'.
     */
    set cursorStyle(value: string);
    get cursorStyle(): string;
    /**
     * Enable font ligatures.
     * Defaults to false.
     */
    set fontLigatures(value: BooleanInput);
    get fontLigatures(): BooleanInput;
    /**
     * Disable the use of `translate3d`.
     * Defaults to false.
     */
    set disableTranslate3d(value: BooleanInput);
    get disableTranslate3d(): BooleanInput;
    /**
     * Disable the optimizations for monospace fonts.
     * Defaults to false.
     */
    set disableMonospaceOptimizations(value: BooleanInput);
    get disableMonospaceOptimizations(): BooleanInput;
    /**
     * Should the cursor be hidden in the overview ruler.
     * Defaults to false.
     */
    set hideCursorInOverviewRuler(value: BooleanInput);
    get hideCursorInOverviewRuler(): BooleanInput;
    /**
     * Enable that scrolling can go one screen size after the last line.
     * Defaults to true.
     */
    set scrollBeyondLastLine(value: BooleanInput);
    get scrollBeyondLastLine(): BooleanInput;
    /**
     * Enable that the editor will install an interval to check if its container dom node size has changed.
     * Enabling this might have a severe performance impact.
     * Defaults to false.
     */
    set automaticLayout(value: BooleanInput);
    get automaticLayout(): BooleanInput;
    /**
     * Control the wrapping strategy of the editor.
     * Using -1 means no wrapping whatsoever.
     * Using 0 means viewport width wrapping (ajusts with the resizing of the editor).
     * Using a positive number means wrapping after a fixed number of characters.
     * Defaults to 300.
     */
    set wrappingColumn(value: NumberInput);
    get wrappingColumn(): NumberInput;
    /**
     * Control the alternate style of viewport wrapping.
     * When set to true viewport wrapping is used only when the window width is less than the number of columns specified in the wrappingColumn property. Has no effect if wrappingColumn is not a positive number.
     * Defaults to false.
     */
    set wordWrap(value: BooleanInput);
    get wordWrap(): BooleanInput;
    /**
     * Control indentation of wrapped lines. Can be: 'none', 'same' or 'indent'.
     * Defaults to 'same' in vscode and to 'none' in monaco-editor.
     */
    set wrappingIndent(value: string);
    get wrappingIndent(): string;
    /**
     * Configure word wrapping characters. A break will be introduced before these characters.
     * Defaults to '{([+'.
     */
    set wordWrapBreakBeforeCharacters(value: string);
    get wordWrapBreakBeforeCharacters(): string;
    /**
     * Configure word wrapping characters. A break will be introduced after these characters.
     * Defaults to ' \t})]?|&,;'.
     */
    set wordWrapBreakAfterCharacters(value: string);
    get wordWrapBreakAfterCharacters(): string;
    /**
     * Configure word wrapping characters. A break will be introduced after these characters only if no `wordWrapBreakBeforeCharacters` or `wordWrapBreakAfterCharacters` were found.
     * Defaults to '.'.
     */
    set wordWrapBreakObtrusiveCharacters(value: string);
    get wordWrapBreakObtrusiveCharacters(): string;
    /**
     * Performance guard: Stop rendering a line after x characters.
     * Defaults to 10000 if wrappingColumn is -1. Defaults to -1 if wrappingColumn is >= 0.
     * Use -1 to never stop rendering
     */
    set stopRenderingLineAfter(value: NumberInput);
    get stopRenderingLineAfter(): NumberInput;
    /**
     * Enable hover.
     * Defaults to true.
     */
    set hover(value: BooleanInput);
    get hover(): BooleanInput;
    /**
     * Enable custom contextmenu.
     * Defaults to true.
     */
    set contextmenu(value: BooleanInput);
    get contextmenu(): BooleanInput;
    /**
     * A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.
     * Defaults to 1.
     */
    set mouseWheelScrollSensitivity(value: NumberInput);
    get mouseWheelScrollSensitivity(): NumberInput;
    /**
     * Enable quick suggestions (shadow suggestions)
     * Defaults to true.
     */
    set quickSuggestions(value: BooleanInput);
    get quickSuggestions(): BooleanInput;
    /**
     * Quick suggestions show delay (in ms)
     * Defaults to 500 (ms)
     */
    set quickSuggestionsDelay(value: NumberInput);
    get quickSuggestionsDelay(): NumberInput;
    /**
     * Enables parameter hints
     */
    set parameterHints(value: BooleanInput);
    get parameterHints(): BooleanInput;
    /**
     * Render icons in suggestions box.
     * Defaults to true.
     */
    set iconsInSuggestions(value: BooleanInput);
    get iconsInSuggestions(): BooleanInput;
    /**
     * Enable auto closing brackets.
     * Defaults to true.
     */
    set autoClosingBrackets(value: BooleanInput);
    get autoClosingBrackets(): BooleanInput;
    /**
     * Enable format on type.
     * Defaults to false.
     */
    set formatOnType(value: BooleanInput);
    get formatOnType(): BooleanInput;
    /**
     * Enable format on paste.
     * Defaults to false.
     */
    set formatOnPaste(value: BooleanInput);
    get formatOnPaste(): BooleanInput;
    /**
     * Enable the suggestion box to pop-up on trigger characters.
     * Defaults to true.
     */
    set suggestOnTriggerCharacters(value: BooleanInput);
    get suggestOnTriggerCharacters(): BooleanInput;
    /**
     * Accept suggestions on ENTER.
     * Defaults to true.
     */
    set acceptSuggestionOnEnter(value: BooleanInput);
    get acceptSuggestionOnEnter(): BooleanInput;
    /**
     * Accept suggestions on provider defined characters.
     * Defaults to true.
     */
    set acceptSuggestionOnCommitCharacter(value: BooleanInput);
    get acceptSuggestionOnCommitCharacter(): BooleanInput;
    /**
     * Enable snippet suggestions. Default to 'true'.
     */
    set snippetSuggestions(value: SnippetSuggestions);
    get snippetSuggestions(): SnippetSuggestions;
    /**
     * Copying without a selection copies the current line.
     */
    set emptySelectionClipboard(value: BooleanInput);
    get emptySelectionClipboard(): BooleanInput;
    /**
     * Enable tab completion. Defaults to 'false'
     */
    set tabCompletion(value: BooleanInput);
    get tabCompletion(): BooleanInput;
    /**
     * Enable word based suggestions. Defaults to 'true'
     */
    set wordBasedSuggestions(value: BooleanInput);
    get wordBasedSuggestions(): BooleanInput;
    /**
     * The font size for the suggest widget.
     * Defaults to the editor font size.
     */
    set suggestFontSize(value: NumberInput);
    get suggestFontSize(): NumberInput;
    /**
     * The line height for the suggest widget.
     * Defaults to the editor line height.
     */
    set suggestLineHeight(value: NumberInput);
    get suggestLineHeight(): NumberInput;
    /**
     * Enable selection highlight.
     * Defaults to true.
     */
    set selectionHighlight(value: BooleanInput);
    get selectionHighlight(): BooleanInput;
    /**
     * Show code lens
     * Defaults to true.
     */
    set codeLens(value: BooleanInput);
    get codeLens(): BooleanInput;
    /**
     * Enable code folding
     * Defaults to true in vscode and to false in monaco-editor.
     */
    set folding(value: BooleanInput);
    get folding(): BooleanInput;
    /**
     * Enable rendering of whitespace.
     * Defaults to none.
     */
    set renderWhitespace(value: RenderWhitespace);
    get renderWhitespace(): RenderWhitespace;
    /**
     * Enable rendering of control characters.
     * Defaults to false.
     */
    set renderControlCharacters(value: BooleanInput);
    get renderControlCharacters(): BooleanInput;
    /**
     * Enable rendering of indent guides.
     * Defaults to false.
     */
    set renderIndentGuides(value: BooleanInput);
    get renderIndentGuides(): BooleanInput;
    /**
     * Enable rendering of current line highlight.
     * Defaults to all.
     */
    set renderLineHighlight(value: RenderLineHighlight);
    get renderLineHighlight(): RenderLineHighlight;
    /**
     * Inserting and deleting whitespace follows tab stops.
     */
    set useTabStops(value: BooleanInput);
    get useTabStops(): BooleanInput;
    /**
     * The font family
     */
    set fontFamily(value: string);
    get fontFamily(): string;
    /**
     * The font weight
     */
    set fontWeight(value: FontWeight);
    get fontWeight(): FontWeight;
    /**
     * The font size
     */
    set fontSize(value: NumberInput);
    get fontSize(): NumberInput;
    /**
     * The line height
     */
    set lineHeight(value: NumberInput);
    get lineHeight(): NumberInput;
    /**
    * Language of content to show
    */
    set language(value: Language);
    get language(): Language;
    set value(value: string);
    get value(): string;
    set valueToCompare(value: string);
    get valueToCompare(): string;
    options: EditorOptions;
    private _isDiffEditor;
    private _value;
    private _valueToCompare;
    constructor(monacoEditorService: MonacoEditorService, control: NgControl);
    updateOptions(options: EditorOptions): void;
    onValueChange(value: string): void;
    onTouchedCallback: () => void;
    onChangeCallback: (_: string) => void;
    /** From ControlValueAccessor interface */
    writeValue(value: string): void;
    /** From ControlValueAccessor interface */
    registerOnChange(fn: (_a: unknown) => void): void;
    /** From ControlValueAccessor interface */
    registerOnTouched(fn: () => void): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MonacoEditorComponent, [null, { optional: true; self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MonacoEditorComponent, "monaco-editor", never, { "isDiffEditor": "isDiffEditor"; "experimentalScreenReader": "experimentalScreenReader"; "ariaLabel": "ariaLabel"; "rulers": "rulers"; "wordSeparators": "wordSeparators"; "selectionClipboard": "selectionClipboard"; "lineNumbers": "lineNumbers"; "selectOnLineNumbers": "selectOnLineNumbers"; "lineNumbersMinChars": "lineNumbersMinChars"; "glyphMargin": "glyphMargin"; "lineDecorationsWidth": "lineDecorationsWidth"; "revealHorizontalRightPadding": "revealHorizontalRightPadding"; "roundedSelection": "roundedSelection"; "theme": "theme"; "readOnly": "readOnly"; "scrollbar": "scrollbar"; "fixedOverflowWidgets": "fixedOverflowWidgets"; "overviewRulerLanes": "overviewRulerLanes"; "cursorBlinking": "cursorBlinking"; "mouseWheelZoom": "mouseWheelZoom"; "cursorStyle": "cursorStyle"; "fontLigatures": "fontLigatures"; "disableTranslate3d": "disableTranslate3d"; "disableMonospaceOptimizations": "disableMonospaceOptimizations"; "hideCursorInOverviewRuler": "hideCursorInOverviewRuler"; "scrollBeyondLastLine": "scrollBeyondLastLine"; "automaticLayout": "automaticLayout"; "wrappingColumn": "wrappingColumn"; "wordWrap": "wordWrap"; "wrappingIndent": "wrappingIndent"; "wordWrapBreakBeforeCharacters": "wordWrapBreakBeforeCharacters"; "wordWrapBreakAfterCharacters": "wordWrapBreakAfterCharacters"; "wordWrapBreakObtrusiveCharacters": "wordWrapBreakObtrusiveCharacters"; "stopRenderingLineAfter": "stopRenderingLineAfter"; "hover": "hover"; "contextmenu": "contextmenu"; "mouseWheelScrollSensitivity": "mouseWheelScrollSensitivity"; "quickSuggestions": "quickSuggestions"; "quickSuggestionsDelay": "quickSuggestionsDelay"; "parameterHints": "parameterHints"; "iconsInSuggestions": "iconsInSuggestions"; "autoClosingBrackets": "autoClosingBrackets"; "formatOnType": "formatOnType"; "formatOnPaste": "formatOnPaste"; "suggestOnTriggerCharacters": "suggestOnTriggerCharacters"; "acceptSuggestionOnEnter": "acceptSuggestionOnEnter"; "acceptSuggestionOnCommitCharacter": "acceptSuggestionOnCommitCharacter"; "snippetSuggestions": "snippetSuggestions"; "emptySelectionClipboard": "emptySelectionClipboard"; "tabCompletion": "tabCompletion"; "wordBasedSuggestions": "wordBasedSuggestions"; "suggestFontSize": "suggestFontSize"; "suggestLineHeight": "suggestLineHeight"; "selectionHighlight": "selectionHighlight"; "codeLens": "codeLens"; "folding": "folding"; "renderWhitespace": "renderWhitespace"; "renderControlCharacters": "renderControlCharacters"; "renderIndentGuides": "renderIndentGuides"; "renderLineHighlight": "renderLineHighlight"; "useTabStops": "useTabStops"; "fontFamily": "fontFamily"; "fontWeight": "fontWeight"; "fontSize": "fontSize"; "lineHeight": "lineHeight"; "language": "language"; "value": "value"; "valueToCompare": "valueToCompare"; }, { "valueChange": "valueChange"; }, never, never, false>;
}
