import { AfterViewInit, OnDestroy } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { Editor } from '@tiptap/core';
import { EditorFormat, EditorSelectionChangeEvent, EditorTextChangeEvent, Extension } from './models';
import * as i0 from "@angular/core";
/**
 * @description Componente de editor de texto rico (WYSIWYG) construído sobre o Tiptap/ProseMirror.
 * Substitui o `p-editor` do PrimeNG sem dependência externa de licença comercial.
 * Implementa {@link ControlValueAccessor} para integração com Angular Forms.
 *
 * @example
 * ```html
 * <s-editor
 *   formControlName="descricao"
 *   [readonly]="false"
 *   (textChange)="onTextChange($event)" />
 * ```
 */
export declare class EditorComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {
    private readonly cdr;
    private readonly dialogService;
    private readonly translateService;
    private readonly destroyRef;
    /**
     * @description Coloca o editor em modo somente leitura.
     * @default false
     */
    readonly: import("@angular/core").InputSignal<boolean>;
    /**
     * @description Lista de formatos habilitados na toolbar. Quando vazio, todos os formatos são exibidos.
     */
    formats: import("@angular/core").InputSignal<EditorFormat[] | undefined>;
    /**
     * @description Texto de dica exibido quando o editor está vazio.
     */
    placeholder: import("@angular/core").InputSignal<string | undefined>;
    /**
     * @description Estilos inline aplicados ao container do editor.
     */
    style: import("@angular/core").InputSignal<{
        [klass: string]: unknown;
    } | undefined>;
    /**
     * @description Classes CSS adicionais aplicadas ao container do editor.
     */
    styleClass: import("@angular/core").InputSignal<string | undefined>;
    /**
     * @description Extensões Tiptap adicionais para estender o comportamento padrão do editor.
     */
    extensions: import("@angular/core").InputSignal<Extension<any, any>[]>;
    /**
     * @description Emitido quando o editor é inicializado e está pronto para uso.
     */
    editorInit: import("@angular/core").OutputEmitterRef<Editor>;
    /**
     * @description Emitido sempre que o conteúdo do editor é alterado.
     */
    textChange: import("@angular/core").OutputEmitterRef<EditorTextChangeEvent>;
    /**
     * @description Emitido quando a seleção de texto no editor muda.
     */
    selectionChange: import("@angular/core").OutputEmitterRef<EditorSelectionChangeEvent>;
    private editorContainer;
    private imageInput;
    private editor?;
    private _formDisabled;
    private _currentPlaceholder;
    activeStates: {
        isBold: boolean;
        isItalic: boolean;
        isUnderline: boolean;
        isStrike: boolean;
        isBulletList: boolean;
        isOrderedList: boolean;
        isBlockquote: boolean;
        isCode: boolean;
        isSubscript: boolean;
        isSuperscript: boolean;
        isAlignLeft: boolean;
        isAlignCenter: boolean;
        isAlignRight: boolean;
        currentHeading: number;
        currentColor: string;
        currentHighlight: string;
        canUndo: boolean;
        canRedo: boolean;
    };
    private _value;
    private _onChange;
    private _onTouched;
    constructor();
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    writeValue(value: string): void;
    registerOnChange(fn: (value: string) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    isFormatAllowed(format: EditorFormat): boolean;
    hasAnyFormatBeforeUndoRedo(): boolean;
    toggleBold(): void;
    toggleItalic(): void;
    toggleUnderline(): void;
    toggleStrike(): void;
    toggleBulletList(): void;
    toggleOrderedList(): void;
    toggleBlockquote(): void;
    toggleCode(): void;
    toggleSubscript(): void;
    toggleSuperscript(): void;
    setTextAlign(align: 'left' | 'center' | 'right'): void;
    setColor(color: string): void;
    setHighlight(color: string): void;
    clearFormatting(): void;
    onHeadingChange(event: Event): void;
    setLink(): void;
    setImage(): void;
    onImageFileSelected(event: Event): void;
    undo(): void;
    redo(): void;
    onToolbarKeydown(event: KeyboardEvent): void;
    onToolbarFocusIn(event: FocusEvent): void;
    private getToolbarFocusable;
    private initEditor;
    private syncActiveStates;
    static ɵfac: i0.ɵɵFactoryDeclaration<EditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EditorComponent, "s-editor", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "formats": { "alias": "formats"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "extensions": { "alias": "extensions"; "required": false; "isSignal": true; }; }, { "editorInit": "editorInit"; "textChange": "textChange"; "selectionChange": "selectionChange"; }, never, never, true, never>;
}
