import { AfterViewInit, ChangeDetectorRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
import { ContentChange, QuillEditorComponent, SelectionChange } from 'ngx-quill';
import { FormControl, FormGroup, NgForm, ValidatorFn } from '@angular/forms';
import 'quill-mention';
import { SdLabelDefDirective } from '@sd-angular/core/common';
import { IEditorConfiguration } from './editor.model';
import Quill from 'quill';
export declare class SdEditor implements OnInit, AfterViewInit, OnDestroy {
    #private;
    private ngZone;
    private ref;
    private configuration;
    id: string;
    editor: QuillEditorComponent;
    label: string;
    set model(val: string);
    set disabled(val: boolean | '');
    required: boolean;
    set pRequired(val: boolean | '');
    minlength: number;
    set _minlength(val: number);
    maxlength: number;
    set _maxlength(val: number);
    inlineError: string;
    set _inlineError(val: string);
    modelChange: EventEmitter<string>;
    placeholder: string;
    styles: any;
    args: any;
    formControl: FormControl;
    domain: string;
    set form(val: NgForm | FormGroup);
    toolbar: any;
    enableHTMLButton: boolean;
    showHtmlEditor: boolean;
    modelHTML: string;
    quillEvent: any;
    mentionValues: {
        id: string;
        value: string;
        link?: string;
    }[];
    hashTagValues: {
        id: string;
        value: string;
        link?: string;
    }[];
    sdLabelDef: SdLabelDefDirective;
    quillConfig: {
        toolbar: {
            container: (string[] | {
                header: number;
            }[] | {
                list: string;
            }[] | {
                script: string;
            }[] | {
                indent: string;
            }[] | {
                direction: string;
            }[] | {
                size: (string | boolean)[];
            }[] | {
                header: (number | boolean)[];
            }[] | ({
                color: any[];
                background?: undefined;
            } | {
                background: any[];
                color?: undefined;
            })[] | {
                font: any[];
            }[] | {
                align: any[];
            }[])[];
        };
        mention: {
            allowedChars: RegExp;
            mentionDenotationChars: string[];
            source: (searchTerm: any, renderList: any, mentionChar: any) => void;
        };
        keyboard: {
            bindings: {
                enter: {
                    key: number;
                    handler: (range: any, context: any) => boolean;
                };
            };
        };
    };
    sdChange: EventEmitter<string>;
    timerLoadQuillToolbar: any;
    constructor(ngZone: NgZone, ref: ChangeDetectorRef, configuration: IEditorConfiguration);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    customInlineErrorValidator(): ValidatorFn;
    editorInit: (quill: Quill) => void;
    onModelChange: (val: string) => void;
    onClickShowHtmlEditor: () => void;
    onSelectionChanged(e: SelectionChange): void;
    onContentChanged(e: ContentChange): void;
}
