import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
import { ToolbarConfig } from './interfaces/toolbar-config';
import { I18nService } from '../i18n/i18n.service';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import { EditorService } from './services/editor.service';
import { FieldContent } from './interfaces/field-content';
import * as i0 from "@angular/core";
export declare class TlEditor implements ControlValueAccessor, AfterContentInit, OnChanges {
    private i18n;
    private renderer;
    private editorService;
    private sanitizer;
    private cd;
    ngControl: NgControl;
    content: SafeHtml;
    color: string;
    tags: any[];
    fields: FieldContent[];
    toolbarConfig: ToolbarConfig;
    height: string;
    labelPlacement: string;
    labelSize: string;
    label: string;
    editable: boolean;
    disabled: boolean;
    contentEditor: ElementRef;
    linkBox: any;
    wrapper: any;
    fieldTemplate: TemplateRef<any>;
    saveContent: EventEmitter<any>;
    fontCollection: any[];
    fontSizeCollection: any[];
    font: string;
    fontSize: string;
    toggleLink: boolean;
    toggleImage: boolean;
    saved: boolean;
    descriptionLink: string;
    linkItself: string;
    colorSelected: string;
    anchorNodeCursor: any;
    cursorHighlight: boolean;
    selectedContent: boolean;
    cursorSelection: any;
    activeTools: {
        bold: boolean;
        italic: boolean;
        underline: boolean;
        listUnordered: boolean;
        listOrdered: boolean;
        alignLeft: boolean;
        alignCenter: boolean;
        alignRight: boolean;
        alignJustify: boolean;
        blockQuote: boolean;
    };
    image: {
        imageUrl: string;
    };
    selection: {
        start: number;
        end: number;
        baseNode: any;
        extentNode: any;
    };
    private interval;
    private listenerRegistered;
    private subscription;
    labelAddField: string;
    private onChange;
    private onTouched;
    constructor(i18n: I18nService, renderer: Renderer2, editorService: EditorService, sanitizer: DomSanitizer, cd: ChangeDetectorRef, ngControl: NgControl);
    get control(): import("@angular/forms").AbstractControl<any, any>;
    setControl(): void;
    ngAfterContentInit(): void;
    handleFieldsPropagation(): void;
    alignContent(align: any): void;
    setBold(): void;
    setQuote(): void;
    setItalic(): void;
    setUnorderedList(): void;
    setOrderedList(): void;
    setImage($event: any): void;
    setDescriptionLink(): void;
    addField(idField: any): void;
    addTag(value: string): void;
    setLink($event: any): void;
    setUnderline(): void;
    setHighlight(): void;
    onChangeColor($event: any): void;
    onChangeFontSize($event: any): void;
    onChangeFont($event: any): void;
    onMouseUp(): void;
    onKeyDownSave(event: any): boolean;
    toggleLinkBox(): void;
    toggleImageBox(): void;
    save(): void;
    setCursorSelection(): void;
    private showSavedMessage;
    private handleActiveTools;
    private handleFontName;
    private hasFontFace;
    private hasFontSize;
    private setFontNodeSelected;
    private setDefaultFont;
    private setFontSizeNodeSelected;
    private setDefaultFontSize;
    setAnchorNode(): void;
    private handleNoSelection;
    private hasSelection;
    private handleFontSize;
    private handleAlignLeft;
    private handleAlignCenter;
    private handleAlignRight;
    private handleAlignJustify;
    private handleListOrdered;
    private handleListUnordered;
    private handleColorParent;
    private setColorWithColorElement;
    private handleClosestBold;
    private handleClosestUnderline;
    private handleClosestItalic;
    private handleBlockQuote;
    private hasStyleParentElement;
    private isClosestParentElement;
    private preventPropagation;
    private createFieldText;
    private createHashTag;
    private createImageElement;
    private createElementLink;
    private handleAddElementRange;
    private recoverSelection;
    private recoverCursorPosition;
    private resetCursor;
    setContentFocus(): void;
    clearContent(): void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    touch(): void;
    change(): void;
    ngOnChanges(data: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TlEditor, [null, null, null, null, null, { optional: true; self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TlEditor, "tl-editor", never, { "content": "content"; "color": "color"; "tags": "tags"; "fields": "fields"; "toolbarConfig": "toolbarConfig"; "height": "height"; "labelPlacement": "labelPlacement"; "labelSize": "labelSize"; "label": "label"; "editable": "editable"; "disabled": "disabled"; }, { "saveContent": "saveContent"; }, never, never, false, never>;
}
//# sourceMappingURL=editor.d.ts.map