import { AfterViewInit, ElementRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core'; import { ArticleMetadata } from '../article/types'; import { RichEditorMetadata, RichEditorToolbarButton } from './types'; import * as i0 from "@angular/core"; /** * val-rich-editor * * Organism: editor WYSIWYG reusable para toda la plataforma, sobre TipTap. * Emite `ArticleMetadata` — el mismo contrato que `val-article` renderiza, * que también producen Markdown (`parseMarkdownArticle`) y (a futuro) el * page builder. El consumer nunca toca TipTap directamente. * * Cobertura de la toolbar v1: negrita, cursiva, título (H2), subtítulo (H3), * lista con/sin viñetas, cita, separador, imagen. Ver `tiptap-to-article.ts` * para qué tipos de `ArticleElement` puede producir el editor hoy. * * @example * ```html * * ``` */ export declare class RichEditorComponent implements AfterViewInit, OnChanges, OnDestroy { props: RichEditorMetadata; articleChange: EventEmitter; editorHost: ElementRef; private i18n; private injector; private editor?; /** Se recalcula en cada `onUpdate`/`onSelectionUpdate` para reflejar el * mark/nodo activo bajo el cursor (ej. el botón "B" resaltado si el * cursor está dentro de texto en negrita). */ private readonly _toolbarTick; readonly toolbarButtons: import("@angular/core").WritableSignal; readonly uploadingImage: import("@angular/core").WritableSignal; constructor(); t(key: string): string; ngAfterViewInit(): void; ngOnChanges(changes: SimpleChanges): void; private emitArticle; private refreshToolbar; runCommand(token: string): void; /** * Sube la imagen elegida vía `StorageService` (Regla #12 — nunca URL pegada * a mano, siempre vía Storage) y la inserta en el punto del cursor. * `StorageService` se resuelve perezosamente (vía `Injector`, no como * campo de la clase): si la app consumer no configuró * `provideValtechFirebase`, el editor sigue funcionando normal para todo * lo demás — solo el botón de imagen queda sin efecto, con log de error en * vez de romper el resto del componente. */ onImageSelected(event: Event): Promise; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }