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;
}