import { GraphNode, GraphRelationship, KnowledgeGraph } from '../core/graph/types.js'; import { CommunityDetectionResult } from '../core/ingestion/community-processor.js'; import { ProcessDetectionResult } from '../core/ingestion/process-processor.js'; import type { UnityResourceProcessingResult } from '../core/ingestion/unity-resource-processor.js'; import type { ScopeSelectionDiagnostics } from '../core/ingestion/scope-filter.js'; export type PipelinePhase = 'idle' | 'extracting' | 'structure' | 'parsing' | 'imports' | 'calls' | 'heritage' | 'communities' | 'processes' | 'enriching' | 'complete' | 'error'; export interface PipelineProgress { phase: PipelinePhase; percent: number; message: string; detail?: string; stats?: { filesProcessed: number; totalFiles: number; nodesCreated: number; }; } export interface PipelineRunOptions { includeExtensions?: string[]; scopeRules?: string[]; csharpDefineCsproj?: string; } export interface CSharpPreprocDiagnostics { enabled: boolean; sourcePath?: string; defineSymbolCount: number; normalizedFiles: number; fallbackFiles: number; skippedFiles: number; expressionErrors: number; undefinedSymbols: string[]; } export interface PipelineResult { graph: KnowledgeGraph; /** Absolute path to the repo root — used for lazy file reads during LadybugDB loading */ repoPath: string; /** Total files scanned (for stats) */ totalFileCount: number; communityResult?: CommunityDetectionResult; processResult?: ProcessDetectionResult; unityResult?: UnityResourceProcessingResult; scopeDiagnostics?: ScopeSelectionDiagnostics; csharpPreprocDiagnostics?: CSharpPreprocDiagnostics; } export interface PipelineRuntimeSummary { totalFileCount: number; communityResult?: CommunityDetectionResult; processResult?: ProcessDetectionResult; unityResult?: UnityResourceProcessingResult; scopeDiagnostics?: ScopeSelectionDiagnostics; csharpPreprocDiagnostics?: CSharpPreprocDiagnostics; } export interface SerializablePipelineResult { nodes: GraphNode[]; relationships: GraphRelationship[]; repoPath: string; totalFileCount: number; unityResult?: UnityResourceProcessingResult; } export declare const serializePipelineResult: (result: PipelineResult) => SerializablePipelineResult; export declare const deserializePipelineResult: (serialized: SerializablePipelineResult, createGraph: () => KnowledgeGraph) => PipelineResult;