import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
import { IViewOptionsPro } from 'jodit-pro/types/types/view';
import { IViewOptions } from 'jodit/types/types';
import { IJodit } from 'jodit/types/types/jodit';
import { ControlValueAccessor } from '@angular/forms';
import * as i0 from "@angular/core";
export type JoditProConfig = Partial<IViewOptions & IViewOptionsPro & Record<string, any>>;
export declare class NgxJoditProComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {
    private readonly cdr;
    joditContainer: ElementRef;
    jodit?: IJodit;
    /**
     * options for jodit pro. It's of type partial because Config is imported from jodit packge and doesn't contain jodit-pro options.
     * You can add more supported options even Typescript doesn't suggest the options.
     */
    private _options?;
    set options(value: JoditProConfig);
    private valueSubject;
    set value(value: string);
    get value(): string;
    valueChange: EventEmitter<string>;
    joditChange: EventEmitter<string>;
    joditKeyDown: EventEmitter<KeyboardEvent>;
    joditKeyUp: EventEmitter<KeyboardEvent>;
    joditMousedown: EventEmitter<MouseEvent>;
    joditMouseup: EventEmitter<MouseEvent>;
    joditClick: EventEmitter<PointerEvent>;
    joditFocus: EventEmitter<FocusEvent>;
    joditPaste: EventEmitter<ClipboardEvent>;
    joditResize: EventEmitter<void>;
    joditBeforeEnter: EventEmitter<KeyboardEvent>;
    joditBeforeCommand: EventEmitter<string>;
    joditAfterExec: EventEmitter<void>;
    joditAfterPaste: EventEmitter<ClipboardEvent>;
    joditChangeSelection: EventEmitter<void>;
    private joditInitializedSubject;
    private valueSubscription?;
    private internValueChange;
    constructor(cdr: ChangeDetectorRef);
    isHTML(text: string): boolean | "";
    ngAfterViewInit(): Promise<void>;
    ngOnDestroy(): void;
    initJoditContainer(): Promise<void>;
    changeValue(value: string): void;
    onChange: (text: string) => void;
    onTouched: () => void;
    writeValue(text: string): void;
    registerOnChange(fn: (text: string) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState?(isDisabled: boolean): void;
    private prepareText;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxJoditProComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxJoditProComponent, "ngx-jodit-pro", never, { "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "joditChange": "joditChange"; "joditKeyDown": "joditKeyDown"; "joditKeyUp": "joditKeyUp"; "joditMousedown": "joditMousedown"; "joditMouseup": "joditMouseup"; "joditClick": "joditClick"; "joditFocus": "joditFocus"; "joditPaste": "joditPaste"; "joditResize": "joditResize"; "joditBeforeEnter": "joditBeforeEnter"; "joditBeforeCommand": "joditBeforeCommand"; "joditAfterExec": "joditAfterExec"; "joditAfterPaste": "joditAfterPaste"; "joditChangeSelection": "joditChangeSelection"; }, never, never, true, never>;
}
