import { SourceGraph, ClassifiedGraph } from './GraphTypes'; import { ProjectConfig } from './ConfigValidator'; import type { FullProjectConfig } from './ConfigurationLoader'; import type { AnalyzerConfig } from '../analyzer/AnalyzerConfig'; import type { AnalysisResult } from '../analyzer/types'; export interface PipelineOptions { version: string; config: ProjectConfig; /** * Project config loaded from architecture-config.json. Drives file discovery * (include/exclude) and supplies layer/domain patterns to the classifier. * Leave undefined when the project has no config file — discovery then runs * unfiltered instead of falling back to the narrower default include list. */ projectConfig?: FullProjectConfig; debug?: boolean; analysisScope?: string[]; disabledRules?: string[]; includeTimestamp?: boolean; rootDir: string; outputBase?: string; analyzerConfig?: AnalyzerConfig; /** When true, detect changed files via git and focus analysis on them. */ changedOnly?: boolean; } /** * ArchitecturePipeline orchestrates the architectural parsing and graph generation flow. */ export declare class ArchitecturePipeline { private options; private normalizer; private classifier; private analyzerConfig; constructor(options: PipelineOptions); /** * Discovers files, parses them, builds the graph and runs the full pipeline. */ runFull(projectRoot: string): Promise<{ graph: ClassifiedGraph; version: string; analysis?: AnalysisResult; }>; /** * Builds the classifier config, folding in the layer/domain patterns declared * in architecture-config.json. An explicitly passed `config` wins over the * file, so programmatic callers keep full control. */ private resolveClassifierConfig; /** * Load analyzer config from project root. */ private loadAnalyzerConfig; /** * Generates and saves all output files (JSON, Markdown, HTML). */ private saveOutputs; /** * Runs the pipeline to generate a classified graph. */ run(input: SourceGraph): Promise<{ graph: ClassifiedGraph; version: string; }>; private validate; private sanitize; private createSnapshot; private deepFreeze; private log; /** * Detect changed files via git diff (staged + unstaged). */ private getChangedFiles; } //# sourceMappingURL=ArchitecturePipeline.d.ts.map