/**
 * Architecture Insights Analyzer for M2JS
 * Analyzes architectural patterns, decisions, and code organization
 */
import { ParsedFile } from './types';
import { DependencyGraph } from './types';
export interface ArchitectureInsights {
    layerArchitecture: LayerAnalysis;
    dataFlow: DataFlowPattern[];
    errorStrategy: ErrorHandlingStrategy;
    securityPatterns: SecurityPattern[];
    testingStrategy: TestingStrategy;
    performancePatterns: PerformancePattern[];
    designPrinciples: DesignPrinciple[];
}
export interface LayerAnalysis {
    pattern: string;
    layers: ArchitectureLayer[];
    rationale: string;
}
export interface ArchitectureLayer {
    name: string;
    responsibility: string;
    files: string[];
    dependencies: string[];
}
export interface DataFlowPattern {
    name: string;
    steps: string[];
    description: string;
    files: string[];
}
export interface ErrorHandlingStrategy {
    strategy: string;
    patterns: string[];
    customErrors: string[];
    examples: string[];
}
export interface SecurityPattern {
    pattern: string;
    description: string;
    implementation: string;
}
export interface TestingStrategy {
    approach: string;
    frameworks: string[];
    patterns: string[];
    coverage: string;
}
export interface PerformancePattern {
    pattern: string;
    description: string;
    evidence: string[];
}
export interface DesignPrinciple {
    principle: string;
    evidence: string[];
    violations: string[];
}
/**
 * Analyzes architectural patterns from parsed files and dependencies
 */
export declare function analyzeArchitecture(parsedFiles: ParsedFile[], dependencyGraph: DependencyGraph): ArchitectureInsights;
