import { PackageJson } from '../../project/package'; import { DetectionSource } from '..'; /** * Legacy framework detection result. */ interface LegacyFrameworkDetection { /** Framework identifier */ id: string; /** Human-readable name */ name: string; /** Framework category */ category: 'legacy-frontend'; /** Detected version */ version?: string; /** Detection confidence (0-100) */ confidence: number; /** Detection sources */ detectedFrom: DetectionSource[]; } /** * Legacy framework detector interface. */ interface LegacyFrameworkDetector { /** Framework identifier */ id: string; /** Human-readable name */ name: string; /** Framework category */ category: 'legacy-frontend'; /** Check if framework is present */ detect(projectPath: string, packageJson?: PackageJson): LegacyFrameworkDetection | null; } /** * Detect AngularJS (1.x) in project. * AngularJS is the original Angular framework, distinct from Angular 2+. * * @param projectPath - Project directory path * @param packageJson - Optional pre-loaded package.json * @returns Detection result or null if not detected * * @example Detecting AngularJS framework * ```typescript * const result = angularJSDetector('/path/to/project', { * dependencies: { angular: '^1.8.0', 'angular-route': '^1.8.0' }, * }) * // => { id: 'angularjs', name: 'AngularJS', confidence: 85, version: '1.8.0', ... } * ``` */ declare function angularJSDetector(projectPath: string, packageJson?: PackageJson): LegacyFrameworkDetection | null; /** * Detect Backbone.js in project. * * @param projectPath - Project directory path * @param packageJson - Optional pre-loaded package.json * @returns Detection result or null if not detected * * @example Detecting Backbone.js framework * ```typescript * const result = backboneDetector('/path/to/project', { * dependencies: { backbone: '^1.4.0', underscore: '^1.13.0' }, * }) * // => { id: 'backbone', name: 'Backbone.js', confidence: 85, version: '1.4.0', ... } * ``` */ declare function backboneDetector(projectPath: string, packageJson?: PackageJson): LegacyFrameworkDetection | null; /** All legacy framework detectors */ declare const legacyDetectors: LegacyFrameworkDetector[]; /** * Detect all legacy frameworks in project. * * @param projectPath - Project directory path * @param packageJson - Optional pre-loaded package.json * @returns Array of detected legacy frameworks, sorted by confidence * * @example Detecting legacy frameworks * ```typescript * const results = detectLegacyFrameworks('/path/to/project', { * dependencies: { jquery: '^3.6.0', backbone: '^1.4.0' }, * }) * // => [{ id: 'jquery', confidence: 80 }, { id: 'backbone', confidence: 70 }] * ``` */ declare function detectLegacyFrameworks(projectPath: string, packageJson?: PackageJson): LegacyFrameworkDetection[]; /** * Detect Ember.js in project. * * @param projectPath - Project directory path * @param packageJson - Optional pre-loaded package.json * @returns Detection result or null if not detected * * @example Detecting Ember.js framework * ```typescript * const result = emberDetector('/path/to/project', { * dependencies: { 'ember-source': '^4.0.0' }, * devDependencies: { 'ember-cli': '^4.0.0' }, * }) * // => { id: 'ember', name: 'Ember.js', confidence: 90, version: '4.0.0', ... } * ``` */ declare function emberDetector(projectPath: string, packageJson?: PackageJson): LegacyFrameworkDetection | null; /** * Detect jQuery in project. * * @param projectPath - Project directory path * @param packageJson - Optional pre-loaded package.json * @returns Detection result or null if not detected * * @example Detecting jQuery library * ```typescript * const result = jqueryDetector('/path/to/project', { * dependencies: { jquery: '^3.6.0', 'jquery-ui': '^1.13.0' }, * }) * // => { id: 'jquery', name: 'jQuery', confidence: 90, version: '3.6.0', ... } * ``` */ declare function jqueryDetector(projectPath: string, packageJson?: PackageJson): LegacyFrameworkDetection | null; export { angularJSDetector, backboneDetector, detectLegacyFrameworks, emberDetector, jqueryDetector, legacyDetectors }; export type { LegacyFrameworkDetection, LegacyFrameworkDetector };