import type { ConfigOverrides } from "../config.js"; import { type DeclaredCompositionReport } from "../declared-composition.js"; import { type DeclaredImpactReport } from "../declared-impact.js"; import type { ExecutableSurfaceDependency } from "../executable-dependency-resolution.js"; import type { ExecutableSurfaceInvocation, ExecutableSurfaceScope } from "../executable-surface-inventory.js"; import type { AssetKind, AssetStatus, DependencyKind } from "../model.js"; import { type RepositoryEvidence, type RepositorySnapshot } from "../repository-evidence.js"; import type { AssetOwnership } from "../types/governance.js"; import { type SkillDiscoveryIndex } from "../skill-discovery.js"; import type { Diagnostic } from "../types/diagnostics.js"; export type GraphFormat = "json" | "markdown" | "mermaid"; export declare const GRAPH_JSON_SCHEMA_VERSION: "renma.graph.v1"; type GraphEdgeKind = DependencyKind | "continues_with" | "invokes" | "contains"; export type GraphView = "summary" | "workflow" | "full" | "layered" | "composition" | "impact" | "discovery" | "executable"; export type ExecutableGraphNodeRole = "skill" | "repository-script" | "external-executable"; export interface ExecutableGraphProjection { focus?: { id: string; role: ExecutableGraphNodeRole; sourcePath: string; }; invocationEvidence: ExecutableSurfaceInvocation[]; dependencyEvidence: ExecutableSurfaceDependency[]; } export interface GraphReport { root: string; configPath?: string; scannedFileCount: number; view: GraphView; nodeCount: number; edgeCount: number; nodes: GraphNode[]; edges: GraphEdge[]; composition?: DeclaredCompositionReport; impact?: DeclaredImpactReport; discovery?: SkillDiscoveryIndex; executable?: ExecutableGraphProjection; diagnostics?: Diagnostic[]; } export interface GraphNode { id: string; kind: AssetKind; sourcePath: string; contentHash?: string; sizeBytes?: number; contentClassification?: "text" | "binary"; markdownParserEligible?: boolean; ownership: AssetOwnership; status?: AssetStatus; statusReason?: string; statusChangedAt?: string; tags: string[]; groupedCount?: number; executableRole?: ExecutableGraphNodeRole; executableScope?: ExecutableSurfaceScope; invokedBySkillCount?: number; interpreterHints?: string[]; } export interface GraphEdge { from: string; to: string; kind: GraphEdgeKind; declaration?: string; declarationIndex?: number; sourcePath: string; evidence?: Diagnostic["evidence"]; membership?: "required" | "optional"; dependentMembership?: "required" | "optional"; resolved: boolean; targetId?: string; targetKind?: AssetKind; targetPath?: string; evidenceCount?: number; } export declare function runGraphCommand(targetPath: string, options: { format: GraphFormat; view?: GraphView; focus?: string; overrides?: ConfigOverrides; }): Promise; export declare function graph(targetPath: string, overrides?: ConfigOverrides): Promise; export declare function graphFromRepositoryEvidence(evidence: RepositoryEvidence): GraphReport; export declare function graphFromRepositorySnapshot(snapshot: RepositorySnapshot): GraphReport; export declare function formatGraphMermaid(report: GraphReport, view?: GraphView): string; export declare function formatGraphMarkdown(report: GraphReport, view?: GraphView): string; export {};