import { EventEmitter, OnInit, OnDestroy, ElementRef, OnChanges, SimpleChanges } from '@angular/core';
import { ControlValueAccessor, FormControl } from '@angular/forms';
import { ContentChange, QuillModules } from '@eui/components/externals/quill';
import { BooleanInput } from '@angular/cdk/coercion';
import { Blur, EditorChangeSelection, Focus, SelectionChange, ToolbarItemConfig } from '@eui/components/externals/quill';
import * as i0 from "@angular/core";
declare const QuillType: any;
export declare class EuiEditorComponent implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {
    get class(): string;
    e2eAttr: string;
    id: string;
    placeholder: string;
    format: 'html' | 'json';
    theme: 'snow' | 'bubble';
    debug: 'warn' | 'log' | 'error' | false;
    customToolbarPosition: 'top' | 'bottom';
    tabindex: string;
    modules: QuillModules;
    formats?: string[] | null;
    customToolbarConfig: ToolbarItemConfig[];
    height: string;
    editorCreate: EventEmitter<any>;
    editorChange: EventEmitter<EditorChangeSelection | ContentChange>;
    contentChange: EventEmitter<ContentChange>;
    selectionChange: EventEmitter<SelectionChange>;
    focus: EventEmitter<Focus>;
    blur: EventEmitter<Blur>;
    charactersCountChange: EventEmitter<number>;
    wordsCountChange: EventEmitter<number>;
    true: boolean;
    get readonly(): string;
    value: string | any;
    charactersCount: number;
    wordsCount: number;
    bytesCount: number;
    isFocused: boolean;
    generatedId: string;
    formControl: FormControl;
    jsonToHtmlContent: string;
    toolbarConfig: {
        [id: string]: {
            label: string;
            options: any[];
            dialogMessage: string;
        };
    };
    protected readyToRender: boolean;
    euiEditorCustomToolbar: EuiEditorCustomToolbarTagDirective;
    get isReadOnly(): boolean;
    set isReadOnly(value: BooleanInput);
    private _isReadOnly;
    get showCounters(): boolean;
    set showCounters(value: BooleanInput);
    private _showCounters;
    /** @deprecated The input isEnabledOnFocus will be deprecated in next major version of eUI.
     * Please check the showcase sample in order to replace this feature using the focus emitter.
    */
    get isEnabledOnFocus(): boolean;
    set isEnabledOnFocus(value: boolean);
    private _isEnabledOnFocus;
    get isMinimalToolbar(): boolean;
    set isMinimalToolbar(value: BooleanInput);
    private _isMinimalToolbar;
    get isInvalid(): boolean;
    set isInvalid(value: BooleanInput);
    private _isInvalid;
    private quill;
    private minimalToolbarConfig;
    private defaultToolbarConfig;
    private destroy$;
    private euiDialogService;
    private cdr;
    private ngControl;
    private loader;
    constructor();
    ngOnChanges(c: SimpleChanges): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    enableEditorOnFocus(event: any): void;
    imageUrlHandler(): void;
    editorUndo(): void;
    editorRedo(): void;
    editorDeleteContent(): void;
    insertTable(): void;
    get hasImageFeature(): boolean;
    _onEditorCreated(quill: typeof QuillType): void;
    _onEditorChanged(event: EditorChangeSelection | ContentChange | Event): void;
    private _internalChange;
    _onContentChanged(event: ContentChange): 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.ɵɵFactoryDeclaration<EuiEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiEditorComponent, "eui-editor", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "format": { "alias": "format"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "customToolbarPosition": { "alias": "customToolbarPosition"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "modules": { "alias": "modules"; "required": false; }; "formats": { "alias": "formats"; "required": false; }; "customToolbarConfig": { "alias": "customToolbarConfig"; "required": false; }; "height": { "alias": "height"; "required": false; }; "isReadOnly": { "alias": "isReadOnly"; "required": false; }; "showCounters": { "alias": "showCounters"; "required": false; }; "isEnabledOnFocus": { "alias": "isEnabledOnFocus"; "required": false; }; "isMinimalToolbar": { "alias": "isMinimalToolbar"; "required": false; }; }, { "editorCreate": "editorCreate"; "editorChange": "editorChange"; "contentChange": "contentChange"; "selectionChange": "selectionChange"; "focus": "focus"; "blur": "blur"; "charactersCountChange": "charactersCountChange"; "wordsCountChange": "wordsCountChange"; }, ["euiEditorCustomToolbar"], ["euiEditorCustomToolbar"], true, never>;
}
export declare class EuiEditorCustomToolbarTagDirective {
    elementRef: ElementRef<any>;
    elementClass: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiEditorCustomToolbarTagDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<EuiEditorCustomToolbarTagDirective, "euiEditorCustomToolbar", never, {}, {}, never, never, true, never>;
}
/**
 * Pipe to remove classes from the editor
 */
export declare class ClassFilterPipe {
    transform(value: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ClassFilterPipe, never>;
    static ɵpipe: i0.ɵɵPipeDeclaration<ClassFilterPipe, "classFilter", true>;
}
export {};
//# sourceMappingURL=eui-editor.component.d.ts.map