import { GraphNode, ArchitectureLayer, NodeType, ClassifiedGraph, SourcePriority } from './GraphTypes'; import { ProjectConfig } from './ConfigValidator'; export { GraphNode, ArchitectureLayer, NodeType, ClassifiedGraph, SourcePriority }; /** * A rule used to classify nodes into layers or domains. */ export interface ClassificationRule { pattern: RegExp; layer?: ArchitectureLayer; domain?: string; type?: NodeType; priority: number; } /** * Default classification rules for Next.js conventions. * Higher priority number wins when multiple rules match. * * Each pattern begins with `(^|\/)` rather than `\/`: the pipeline normalises * node ids to project-relative paths, so a top-level `app/` directory has no * leading slash. Requiring one silently left every node in such a project * unclassified (falling back to `Core`), which in turn made layer-violation * detection vacuous for any Next.js app that does not nest sources under src/. */ export declare const DEFAULT_CLASSIFICATION_RULES: ClassificationRule[]; /** * ArchitectureClassifier annotates graph nodes with architecture layers and domains. */ export declare class ArchitectureClassifier { private defaultRules; constructor(defaultRules?: ClassificationRule[]); /** * Classifies nodes in the graph. */ classify(nodes: GraphNode[], config: ProjectConfig): void; private findBestMatch; private buildCustomRules; private globToRegex; private inferDomainFromPath; } //# sourceMappingURL=ArchitectureClassifier.d.ts.map