/** * SMI-600: Framework Detection * SMI-1189: Extracted from CodebaseAnalyzer.ts * * Detects frameworks and libraries used in a codebase * based on imports and dependencies. */ import type { ImportInfo, DependencyInfo, FrameworkInfo } from './types.js'; /** * Framework detection rule */ export interface FrameworkRule { name: string; depIndicators: string[]; importIndicators: string[]; } /** * Built-in framework detection rules */ export declare const FRAMEWORK_RULES: FrameworkRule[]; /** * Detect frameworks based on imports and dependencies * * @param imports - All imports found in the codebase * @param dependencies - Dependencies from package.json * @param rules - Optional custom framework rules (defaults to FRAMEWORK_RULES) * @returns Array of detected frameworks sorted by confidence */ export declare function detectFrameworks(imports: ImportInfo[], dependencies: DependencyInfo[], rules?: FrameworkRule[]): FrameworkInfo[]; /** * Check if a specific framework is detected * * @param frameworkName - Name of the framework to check * @param imports - All imports found in the codebase * @param dependencies - Dependencies from package.json * @returns True if the framework is detected */ export declare function hasFramework(frameworkName: string, imports: ImportInfo[], dependencies: DependencyInfo[]): boolean; /** * Get the primary framework (highest confidence) * * @param imports - All imports found in the codebase * @param dependencies - Dependencies from package.json * @returns The primary framework or null if none detected */ export declare function getPrimaryFramework(imports: ImportInfo[], dependencies: DependencyInfo[]): FrameworkInfo | null; //# sourceMappingURL=framework-detector.d.ts.map