/** * Graph rendering for Atlas Frames * Generates SVG visualizations showing module nodes, dependency edges, * and visual indicators for allowed vs forbidden connections. */ export interface AtlasModule { id: string; coords?: [number, number]; owns_paths?: string[]; owns_namespaces?: string[]; allowed_callers?: string[]; forbidden_callers?: string[]; feature_flags?: string[]; requires_permissions?: string[]; kill_patterns?: string[]; notes?: string; } export interface AtlasEdge { from: string; to: string; allowed: boolean; reason?: string; } export interface AtlasFrame { atlas_timestamp: string; seed_modules: string[]; fold_radius: number; modules: AtlasModule[]; edges: AtlasEdge[]; critical_rule: string; } import { type LayoutConfig } from "./layouts.js"; export interface GraphRenderOptions { width?: number; height?: number; layout?: "force-directed" | "hierarchical"; layoutConfig?: LayoutConfig; showTooltips?: boolean; nodeColors?: Record; } export interface GraphNode { id: string; x: number; y: number; radius: number; isSeed: boolean; module: AtlasModule; } export interface GraphEdgeRenderable { from: GraphNode; to: GraphNode; allowed: boolean; reason?: string; } /** * Render Atlas Frame as SVG graph */ export declare function renderAtlasFrameGraph(atlasFrame: AtlasFrame, options?: GraphRenderOptions): string; /** * Export graph as PNG using sharp * Converts SVG to PNG for embedding in memory cards */ export declare function exportGraphAsPNG(svgContent: string, options?: { width?: number; height?: number; }): Promise;