import type { MetaObject, MetaRoot } from "@metaobjectsdev/metadata"; /** Render JUST the fenced ```mermaid erDiagram``` block for the whole model * (entities + identity.reference relationships) — NO per-entity prose. This is * the single neutral ER-diagram builder; both `renderMermaidModel()` (the * standalone model.md body) AND the neutral docs OVERVIEW page (`README.md`, * emitted by the Tier-2 `meta docs` engine) consume it, so there is exactly * ONE place ER topology is computed — no duplicate graph logic (ADR-0020). * * Abstract entities are excluded — they have no physical table to put in a * diagram (matches migrate-ts/expected-schema.ts's same filter). */ export declare function renderMermaidErBlock(root: MetaRoot): string; /** Render a docs/model.md body: Mermaid erDiagram + per-entity prose. Abstract * entities are excluded — they have no physical table to put in a diagram * (matches migrate-ts/expected-schema.ts's same filter). Reuses the shared * `renderMermaidErBlock()` for the diagram so the ER logic is never duplicated. */ export declare function renderMermaidModel(root: MetaRoot): string; /** Render a Mermaid flowchart for ONE focal entity and its direct neighbors * (1-hop). Three node kinds are surfaced and styled distinctly: * * - **focal** — the entity this page is about (deeper blue) * - **same** — entity in the focal's own package (blue) * - **external** — entity in a different package (dashed gray) * - **vo** — value object referenced via `field.object` (rounded * purple) — composition rather than FK * * Every node has a Mermaid `click "./.md"` directive, so the * rendered SVG is a true navigation surface — click any neighbor to jump to * its page. Edges are labeled with the field name that connects them. * * This replaces the previous erDiagram-based renderer: Mermaid 10's erDiagram * has near-zero styling and no click support, while flowchart supports both. * The crow's-foot one-to-many notation is dropped — for a 1-hop context * diagram, "what kind of node is this" matters more than ER cardinality. * * Returns `undefined` when the focal entity has no neighbors at all, so a * template can `{{#mini}}…{{/mini}}` and skip the section cleanly. Abstract * entities are excluded as neighbors (no physical rows). */ export declare function renderEntityNeighborhoodErBlock(focal: MetaObject, root: MetaRoot): string | undefined; //# sourceMappingURL=mermaid-er.d.ts.map