/** * DI Design DOT Emitter * * Renders one DiDesign (a single controller/root's dependency tree) as a * Graphviz DOT digraph, mirroring the look of the architecture graph * (lib/graph-visualizer.ts): rankdir=TB with { rank=same } layers per level, * so the controller (level 0) sits at the top and injections fan downward. */ import { DiDesign, DiNode } from './model'; /** * A transient node is 1-to-many: EVERY arrow into it resolves its own instance, unlike a * singleton whose arrows all share one. design.html paints these as a real 3-box offset stack * (flat overlapping cards) — see paintStacks() in design-visualizer.ts. * * Leaves (constant/dynamic) and unresolved boxes are never instances, so they never stack. */ export declare function isStackedNode(node: DiNode): boolean; /** * Generate a Graphviz DOT digraph for one design (one controller/root tree). * Deterministic for a serializer-sorted design. */ export declare function generateDesignDot(design: DiDesign): string;