import { AfterViewInit, ElementRef, OnDestroy, Renderer2 } from "@angular/core";
import { ControlValueAccessor } from "@angular/forms";
import * as i0 from "@angular/core";
export declare class ContenteditableValueAccessorDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {
private readonly elementRef;
private readonly renderer;
private observer;
/**
* onTouch callback that marks control as touched and allows FormHooks use
*/
private onTouched;
/**
* onChange callback that writes value to control and allows FormHooks use
*/
private onChange;
constructor(elementRef: ElementRef, renderer: Renderer2);
/**
* To support IE11 MutationObserver is used to monitor changes to the content
*/
ngAfterViewInit(): void;
/**
* Disconnect MutationObserver IE11 fallback on destroy
*/
ngOnDestroy(): void;
/**
* Listen to input events to write innerHTML value into control,
* also disconnect MutationObserver as it is not needed if this
* event works in current browser
*/
onInput(): void;
/**
* Listen to blur event to mark control as touched
*/
onBlur(): void;
/**
* Reacts to external change
*
* @see {@link ControlValueAccessor#writeValue}
*/
writeValue(value: string | null): void;
/**
* Registers onChange callback
*
* @see {@link ControlValueAccessor#registerOnChange}
*/
registerOnChange(onChange: (value: string) => void): void;
/**
* Registers onTouch callback
*
* @see {@link ControlValueAccessor#registerOnTouched}
*/
registerOnTouched(onTouched: () => void): void;
/**
* Sets disabled state by setting contenteditable attribute to true/false
*
* @see {@link ControlValueAccessor#setDisabledState}
*/
setDisabledState(disabled: boolean): void;
/**
* null is treated as empty string to prevent IE11 outputting 'null',
* also single
is replaced with empty string when passed to the control
*/
private static processValue;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}