import { EventEmitter, OnInit, OnDestroy, QueryList } from '@angular/core';
import { ControlValueAccessor, FormControl, NgControl } from '@angular/forms';
import { Blur, EditorChangeContent, EditorChangeSelection, Focus, QuillModules, SelectionChange } from '@eui/externals/quill';
import QuillType from 'quill';
import Delta from 'quill-delta';
import { EuiDialogService, EuiMessageBoxService } from '@eui/components-next';
import { ToolbarItemConfig } from './models/editor.model';
import * as i0 from "@angular/core";
export declare class EuiEditorComponent implements ControlValueAccessor, OnInit, OnDestroy {
    private euiDialogService;
    private euiMessageBoxService;
    private ngControl;
    e2eAttr: string;
    id: string;
    styleClass: string;
    placeholder: string;
    format: ('html' | 'json');
    isReadOnly: boolean;
    theme: ('snow' | 'bubble');
    debug: ('warn' | 'log' | 'error' | true | false);
    customToolbarPosition: ('top' | 'bottom');
    tabindex: string;
    showCounters?: (true | false);
    modules: QuillModules;
    get isEnabledOnFocus(): boolean;
    set isEnabledOnFocus(value: boolean);
    _isEnabledOnFocus: boolean;
    get isMinimalToolbar(): boolean;
    set isMinimalToolbar(value: boolean);
    _isMinimalToolbar: boolean;
    style: any;
    formats?: string[] | null;
    customToolbarOptions?: any;
    maxLength?: number;
    minLength?: number;
    isRequired?: true | false;
    isEditable?: boolean;
    formControlName: string;
    feedbackTypeClass: string;
    validationErrorMessage: string;
    hasReadOnlyStyles?: true | false;
    strict?: true | false;
    scrollingContainer?: HTMLElement | string | null;
    bounds?: HTMLElement | string;
    customOptions: any[];
    trackChanges?: 'user' | 'all';
    preserveWhitespace?: true | false;
    spellcheck?: true | false;
    isImageUrl?: true | false;
    customToolbarConfig: ToolbarItemConfig[];
    height: string;
    onInit: EventEmitter<any>;
    onTextChange: EventEmitter<any>;
    onSelectionChange: EventEmitter<any>;
    onEditorCreated: EventEmitter<QuillType>;
    onEditorChanged: EventEmitter<EditorChangeContent | EditorChangeSelection>;
    onContentChanged: EventEmitter<EditorChangeContent>;
    onSelectionChanged: EventEmitter<SelectionChange>;
    onFocus: EventEmitter<Focus>;
    onBlur: EventEmitter<Blur>;
    getCharactersCounter: EventEmitter<number>;
    getWordsCounter: EventEmitter<number>;
    editorCreate: EventEmitter<QuillType>;
    editorChange: EventEmitter<EditorChangeContent | EditorChangeSelection>;
    contentChange: EventEmitter<EditorChangeContent>;
    selectionChange: EventEmitter<SelectionChange>;
    focus: EventEmitter<Focus>;
    blur: EventEmitter<Blur>;
    charactersCountChange: EventEmitter<number>;
    wordsCountChange: EventEmitter<number>;
    true: boolean;
    get readonly(): string;
    get isInvalid(): boolean;
    set isInvalid(value: boolean);
    _isInvalid: boolean;
    value: string | Delta;
    charactersCount: number;
    wordsCount: number;
    bytesCount: number;
    isFocused: boolean;
    generatedId: string;
    formControl: FormControl;
    jsonToHtmlContent: string;
    toolbarConfig: {
        [id: string]: {
            label: string;
            options: any[];
            dialogMessage: string;
        };
    };
    customModules: {
        path: string;
        implementation: any;
    }[];
    private quill;
    private minimalToolbarConfig;
    private defaultToolbarConfig;
    private destroy$;
    euiEditorCustomToolbar: QueryList<EuiEditorCustomToolbarTagDirective>;
    constructor(euiDialogService: EuiDialogService, euiMessageBoxService: EuiMessageBoxService, ngControl: NgControl);
    ngOnInit(): void;
    ngOnDestroy(): void;
    enableEditorOnFocus(): void;
    imageUrlHandler(): void;
    editorUndo(): void;
    editorRedo(): void;
    editorDeleteContent(): void;
    insertTable(): void;
    _onEditorCreated(quill: QuillType): void;
    _onEditorChanged(event: EditorChangeSelection | EditorChangeContent): void;
    _onContentChanged(event: EditorChangeContent): void;
    _onSelectionChanged(event: SelectionChange): void;
    _onFocus(event: Focus): void;
    _onBlur(event: Blur): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    writeValue(value: string): void;
    private get tableModule();
    private onChange;
    private onTouch;
    private htmlEntitiesDecode;
    get hasCharactersCounter(): boolean;
    get charactersCounterLabel(): string;
    get hasWordsCounter(): boolean;
    get wordsCounterLabel(): string;
    private calculateCounters;
    private stripHtml;
    private cleanHtml;
    static ɵfac: i0.ɵɵFactoryDef<EuiEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<EuiEditorComponent, "eui-editor", never, { "e2eAttr": "e2eAttr"; "id": "id"; "styleClass": "styleClass"; "placeholder": "placeholder"; "format": "format"; "isReadOnly": "isReadOnly"; "theme": "theme"; "debug": "debug"; "customToolbarPosition": "customToolbarPosition"; "tabindex": "tabindex"; "showCounters": "showCounters"; "modules": "modules"; "isEnabledOnFocus": "isEnabledOnFocus"; "isMinimalToolbar": "isMinimalToolbar"; "style": "style"; "formats": "formats"; "customToolbarOptions": "customToolbarOptions"; "maxLength": "maxLength"; "minLength": "minLength"; "isRequired": "isRequired"; "isEditable": "isEditable"; "formControlName": "formControlName"; "feedbackTypeClass": "feedbackTypeClass"; "validationErrorMessage": "validationErrorMessage"; "hasReadOnlyStyles": "hasReadOnlyStyles"; "strict": "strict"; "scrollingContainer": "scrollingContainer"; "bounds": "bounds"; "customOptions": "customOptions"; "trackChanges": "trackChanges"; "preserveWhitespace": "preserveWhitespace"; "spellcheck": "spellcheck"; "isImageUrl": "isImageUrl"; "customToolbarConfig": "customToolbarConfig"; "height": "height"; }, { "onInit": "onInit"; "onTextChange": "onTextChange"; "onSelectionChange": "onSelectionChange"; "onEditorCreated": "onEditorCreated"; "onEditorChanged": "onEditorChanged"; "onContentChanged": "onContentChanged"; "onSelectionChanged": "onSelectionChanged"; "onFocus": "onFocus"; "onBlur": "onBlur"; "getCharactersCounter": "getCharactersCounter"; "getWordsCounter": "getWordsCounter"; "editorCreate": "editorCreate"; "editorChange": "editorChange"; "contentChange": "contentChange"; "selectionChange": "selectionChange"; "focus": "focus"; "blur": "blur"; "charactersCountChange": "charactersCountChange"; "wordsCountChange": "wordsCountChange"; }, ["euiEditorCustomToolbar"], ["euiEditorCustomToolbar"]>;
}
export declare class EuiEditorCustomToolbarTagDirective {
    elementClass: string;
    static ɵfac: i0.ɵɵFactoryDef<EuiEditorCustomToolbarTagDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDefWithMeta<EuiEditorCustomToolbarTagDirective, "euiEditorCustomToolbar", never, {}, {}, never>;
}
