import { FileRole, CodebaseArchetype } from '../types.js';

declare const LAYER_ORDER: Record<CodebaseArchetype, FileRole[]>;
interface LayerViolation {
    sourceFile: string;
    sourceRole: FileRole;
    targetFile: string;
    targetRole: FileRole;
    description: string;
    severity: 'info' | 'warning' | 'critical';
}
declare class FlowValidator {
    /**
     * Checks if a dependency from sourceRole to targetRole violates architectural layer directions.
     */
    validateDependency(sourceFile: string, sourceRole: FileRole, targetFile: string, targetRole: FileRole, archetype: CodebaseArchetype, sameCluster: boolean): LayerViolation | null;
}

export { FlowValidator, LAYER_ORDER, type LayerViolation };
