import { BooleanInput } from '@angular/cdk/coercion';
import { ElementRef, OnInit } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { Destroy } from '@deja-js/component/core';
import * as i0 from "@angular/core";
export declare class DejaEditableDirective extends Destroy implements ControlValueAccessor, OnInit {
    control: NgControl;
    _disabled: boolean;
    private model;
    private _inEdition;
    private _editMode;
    private _mandatory;
    private _multiline;
    private edit$;
    private element;
    constructor(elementRef: ElementRef, control: NgControl);
    /** Définit une valeur indiquant si le contenu édité est obligatoire. Si la valeur est 'true' la sortie du mode édition ne sera pas possible tant qu'un contenu n'est pas ajouté. */
    set mandatory(value: BooleanInput);
    /** Retourne une valeur indiquant si le contenu édité est obligatoire. Si la valeur est 'true' la sortie du mode édition ne sera pas possible tant qu'un contenu n'est pas ajouté. */
    get mandatory(): BooleanInput;
    /** Définit une valeur indiquant si le contenu édité est multiligne */
    set multiline(value: BooleanInput);
    /** Retourne une valeur indiquant si le contenu édité est multiligne */
    get multiline(): BooleanInput;
    /** Permet de désactiver le controle */
    set disabled(value: BooleanInput);
    get disabled(): BooleanInput;
    /** Définit une valeur indiquant si l'édition est activée. */
    set editMode(value: BooleanInput);
    /** Retourne une valeur indiquant si l'édition est activée. */
    get editMode(): BooleanInput;
    /** Définit une valeur indiquant si l'élément est en édition. */
    set inEdition(value: BooleanInput);
    /** Retourne une valeur indiquant si l'élément est en édition. */
    get inEdition(): BooleanInput;
    set value(model: string);
    get value(): string;
    writeValue(value: string): void;
    registerOnChange(fn: (_a: unknown) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    ngOnInit(): void;
    /** Donne le focus à la zone d'édition. */
    focus(): void;
    /** Place toute la zone d'édition en selectioné. */
    selectAll(): void;
    /** Active la zone d'édition. */
    edit(selectOnFocus?: boolean): void;
    onTouchedCallback: () => void;
    onChangeCallback: (_a?: unknown) => void;
    private isChildElement;
    private refreshView;
    static ɵfac: i0.ɵɵFactoryDeclaration<DejaEditableDirective, [null, { optional: true; self: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DejaEditableDirective, "[deja-editable]", never, { "mandatory": "mandatory"; "multiline": "multiline"; "disabled": "disabled"; "editMode": "deja-editable"; "inEdition": "inEdition"; }, {}, never, never, false>;
}
