import type { NodeKind, EdgeKind } from '../types.js'; export interface ProductGraph { readonly format: 'prodara-product-graph'; readonly version: '0.1.0'; readonly product: ProductNode; readonly modules: readonly ModuleNode[]; readonly edges: readonly GraphEdge[]; readonly metadata: GraphMetadata; } export interface ProductNode { readonly id: 'product'; readonly kind: 'product'; readonly name: string; readonly title: string | null; readonly version: string | null; readonly modules: readonly string[]; readonly publishes: Record | null; } export interface ModuleNode { readonly id: string; readonly kind: 'module'; readonly name: string; readonly imports: readonly ImportRef[]; readonly [category: string]: unknown; } export interface ImportRef { readonly symbol: string; readonly from: string; readonly alias: string | null; } export interface GraphEdge { readonly from: string; readonly to: string; readonly kind: EdgeKind; } export interface GraphMetadata { readonly compiler: string; readonly compiled_at: string; readonly source_files: readonly string[]; } /** * Walk the product graph and return the set of all node IDs * (product, modules, and every module-level child with an `id` property). */ export declare function collectAllNodeIds(graph: ProductGraph): Set; export interface GraphNodeBase { readonly id: string; readonly kind: NodeKind; readonly name: string; } export interface FieldRef { readonly name: string; readonly type: GraphTypeRef; } export type GraphTypeRef = string | { readonly ref: string; } | { readonly generic: string; readonly arg: GraphTypeRef; }; export interface ExpressionJson { readonly [key: string]: unknown; } //# sourceMappingURL=graph-types.d.ts.map