import { QuillModules } from './quill-editor.interfaces';
import { AfterViewInit, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { ControlValueAccessor, Validator } from '@angular/forms';
import { ContentChange, SelectionChange, Range } from './models/editor.model';
import * as i0 from "@angular/core";
export interface CustomOption {
    import: string;
    whitelist: any[];
}
export declare class QuillEditorComponent implements AfterViewInit, ControlValueAccessor, OnChanges, OnDestroy, Validator {
    quillEditor: any;
    editorElem: HTMLElement | undefined;
    content: any;
    protected loaded: boolean;
    id: string;
    format?: 'object' | 'html' | 'text' | 'json';
    theme?: string;
    modules?: QuillModules;
    debug?: 'warn' | 'log' | 'error' | false;
    placeholder?: string;
    maxLength?: number;
    minLength?: number;
    formats?: string[] | null;
    customToolbarPosition: 'top' | 'bottom';
    styles: any;
    scrollingContainer?: HTMLElement | string | null;
    bounds?: HTMLElement | string;
    customOptions: CustomOption[];
    trackChanges?: 'user' | 'all';
    hasImageFeature: boolean;
    onEditorCreated: EventEmitter<any>;
    onContentChanged: EventEmitter<ContentChange>;
    onSelectionChanged: EventEmitter<SelectionChange>;
    onFocus: EventEmitter<{
        editor: any;
        source: string;
    }>;
    onBlur: EventEmitter<{
        editor: any;
        source: string;
    }>;
    readOnly?: boolean;
    required: boolean;
    sanitize: boolean;
    strict: boolean;
    preserveWhitespace: boolean;
    private disabled;
    private elementRef;
    private domSanitizer;
    private doc;
    private platformId;
    private renderer;
    private zone;
    private config;
    private loader;
    onModelChange(_modelValue?: any): void;
    onModelTouched(): void;
    valueGetter: (quillEditor: any, editorElement: HTMLElement) => string | any;
    valueSetter: (quillEditor: any, value: any) => any;
    ngAfterViewInit(): void;
    selectionChangeHandler: (range: Range | null, oldRange: Range | null, source: string) => void;
    textChangeHandler: (delta: any, oldDelta: any, source: string) => void;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    writeValue(currentValue: any): void;
    setDisabledState(isDisabled?: boolean): void;
    registerOnChange(fn: (modelValue: any) => void): void;
    registerOnTouched(fn: () => void): void;
    validate(): any;
    /**
     * Override the default Quill scroll behavior to take into account the formats array and skip non-found ones. Then
     * registers the plugin to the Quill editor.
     *
     * @param QuillInstance The Quill class (not the instance)
     * @private
     */
    private overrideScrollBehavior;
    static ɵfac: i0.ɵɵFactoryDeclaration<QuillEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QuillEditorComponent, "quill-editor", never, { "id": { "alias": "id"; "required": false; }; "format": { "alias": "format"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "modules": { "alias": "modules"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "formats": { "alias": "formats"; "required": false; }; "customToolbarPosition": { "alias": "customToolbarPosition"; "required": false; }; "styles": { "alias": "styles"; "required": false; }; "scrollingContainer": { "alias": "scrollingContainer"; "required": false; }; "bounds": { "alias": "bounds"; "required": false; }; "customOptions": { "alias": "customOptions"; "required": false; }; "trackChanges": { "alias": "trackChanges"; "required": false; }; "hasImageFeature": { "alias": "hasImageFeature"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "required": { "alias": "required"; "required": false; }; "sanitize": { "alias": "sanitize"; "required": false; }; "strict": { "alias": "strict"; "required": false; }; "preserveWhitespace": { "alias": "preserveWhitespace"; "required": false; }; "valueGetter": { "alias": "valueGetter"; "required": false; }; "valueSetter": { "alias": "valueSetter"; "required": false; }; }, { "onEditorCreated": "onEditorCreated"; "onContentChanged": "onContentChanged"; "onSelectionChanged": "onSelectionChanged"; "onFocus": "onFocus"; "onBlur": "onBlur"; }, never, ["[quill-editor-toolbar]"], true, never>;
    static ngAcceptInputType_readOnly: unknown;
    static ngAcceptInputType_required: unknown;
    static ngAcceptInputType_sanitize: unknown;
    static ngAcceptInputType_strict: unknown;
    static ngAcceptInputType_preserveWhitespace: unknown;
}
//# sourceMappingURL=quill-editor.component.d.ts.map