import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare type Formatting = {
    [format: string]: unknown;
} | undefined;
export declare type FormattingRequest = {
    action: string;
    value: any;
} | undefined;
/**
 * Service permettant de gérer la communication bidirectionnelle entre la toolbar et son éditeur.
 */
export declare class DsfrEditorService {
    /**
     * Observable sur le formatage de la sélection courante.
     */
    readonly currentFormatting$: Observable<Formatting>;
    /**
     * Observable sur les demandes de mises en forme émise depuis la toolbar.
     */
    readonly formattingRequest$: Observable<FormattingRequest>;
    /**
     * Permet de notifier les changements opérés de l'extérieur sur le modèle HTML.
     */
    readonly modelChange$: Observable<string>;
    /**
     * Permet de notifier les changements au niveau du contenu de l'éditeur qui impacteront le modèle HTML.
     */
    readonly editorChange$: Observable<string>;
    /**
     * Permet d'émettre une demande de prise de focus sur le contenu de l'éditeur HTML.
     */
    readonly focusOnEditorRequest$: Observable<void>;
    /**
     * Subject sur les formats de la sélection courante.
     */
    private _currentFormattingSubject;
    /**
     * Subject sur les demandes de formatage.
     */
    private _formattingRequestSubject;
    /**
     * Subject sur les changements externes sur le modèle HTML.
     */
    private _modelChangeSubject;
    /**
     * Subject sur les changements de la valeur de l'éditeur HTML.
     */
    private _editorChangeSubject;
    /**
     * Subject sur les demandes de prise de focus sur l'éditeur.
     */
    private _focusOnEditorRequestSubject;
    constructor();
    /**
     * Permet de positionner la mise en forme de la sélection courante.
     */
    setCurrentFormatting(formats: Formatting): void;
    /**
     * Permet de demander une nouvelle mise en forme sur la sélection courante.
     */
    requestFormatting(request: FormattingRequest): void;
    /**
     * Permet de demander la prise de focus sur l'éditeur.
     */
    requestFocusOnEditorContent(): void;
    /**
     * Permet de notifier un changement externe sur le modèle HTML.
     */
    emitModelChange(value: string): void;
    /**
     * Permet de notifier un changement interne du contenu de l'éditeur HTML.
     */
    emitEditorChange(value: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DsfrEditorService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DsfrEditorService>;
}
