import type { DashboardJSON } from '../../types/dashboard.js'; import type { FileEntry } from './scanner.js'; /** * Options for the analyze command. */ export interface AnalyzeOptions { /** Force full rebuild, skipping incremental mode */ full: boolean; } /** * Result of a successful analysis run. */ export interface AnalyzeResult { /** The generated dashboard JSON conforming to the DashboardJSON schema */ dashboard: DashboardJSON; /** Summary statistics of the analysis */ stats: AnalyzeStats; /** The scanned file entries (used for domain context generation) */ files: FileEntry[]; } /** * Summary statistics from the analysis. */ export interface AnalyzeStats { /** Total number of files analyzed */ filesAnalyzed: number; /** Number of nodes created, broken down by type */ nodesByType: Record; /** Total number of edges created */ edgesCreated: number; /** Number of layers identified */ layersIdentified: number; } /** * Main entry point for the static analysis engine. * * Scans the target directory, parses source files, builds a knowledge graph, * detects architectural layers, and generates a guided tour — all without * requiring an AI agent. * * Supports incremental mode: when an existing meta.json is found and --full * is not specified, only re-analyzes files changed since the last commit hash. * * @param targetPath - Absolute path to the directory to analyze * @param options - Analysis options (e.g., full rebuild vs incremental) * @returns AnalyzeResult with the generated dashboard and statistics */ export declare function analyze(targetPath: string, options: AnalyzeOptions): Promise; export type { ScanResult, FileEntry } from './scanner.js'; export type { ParseResult, FunctionInfo, ClassInfo, ImportInfo } from './parser.js'; export type { GraphOutput } from './graph-builder.js'; export { scanProject } from './scanner.js'; export { parseFile } from './parser.js'; export { buildGraph } from './graph-builder.js'; export { detectLayers } from './layer-detector.js'; export { buildTour } from './tour-builder.js'; export { generateDomainContext } from './domain-context.js'; export type { DomainContext, EntryPoint, FileSignature } from './domain-context.js';