import { InjectionToken, Provider } from '@angular/core'; /** * Motor de diagramas que el consumidor decide instalar (hoy, mermaid). * * La lib NO importa mermaid: sería peso muerto para las apps que no publican * artículos con diagramas, y traerlo por CDN choca con la CSP del factory * (`script-src 'self'`), que es justo lo que pasaba antes: el script quedaba * bloqueado en 6 de 7 apps y solo ensuciaba la consola. * * La app que sí los necesita instala `mermaid` y pasa el loader; el bundler la * emite como chunk lazy servido por la propia app, así que no hace falta * abrirle la CSP a un tercero. */ export interface DiagramEngine { initialize?: (config: Record) => void; run: (opts?: { querySelector?: string; }) => Promise | void; } export interface ValtechDiagramsConfig { /** Cómo cargar el motor. Ej: `() => import('mermaid')`. */ loader: () => Promise; /** Config inicial del motor. Se pasa tal cual a `initialize`. */ initialize?: Record; } export declare const VALTECH_DIAGRAMS: InjectionToken; /** * Habilita los diagramas de `val-article` en una app. * * ```ts * provideValtechDiagrams({ loader: () => import('mermaid') }) * ``` */ export declare function provideValtechDiagrams(config: ValtechDiagramsConfig): Provider;