/** * SMI-1340: Language Detection Heuristics * * Detects programming language of files without extensions using: * - Shebang analysis (#!/usr/bin/python, #!/bin/bash, etc.) * - Content patterns (import statements, syntax markers) * - Magic bytes detection * - Statistical analysis of keywords * * @see docs/internal/architecture/multi-language-analysis.md * @module analysis/language-detector */ import type { LanguageDetectionResult, LanguageDetectorOptions } from './language-detector.types.js'; export type { LanguageDetectionResult } from './language-detector.types.js'; /** * Detects programming language from file content * * Uses multiple heuristics in order of reliability: * 1. Shebang analysis (highest confidence) * 2. Content patterns (high confidence) * 3. Statistical keyword analysis (lower confidence) * * @example * ```typescript * const detector = new LanguageDetector() * * // Detect from shebang * const result1 = detector.detect('#!/usr/bin/env python3\nprint("hello")') * // { language: 'python', confidence: 1.0, method: 'shebang', evidence: ['shebang: #!/usr/bin/env python3'] } * * // Detect from patterns * const result2 = detector.detect('fn main() {\n println!("Hello");\n}') * // { language: 'rust', confidence: 0.85, method: 'pattern', evidence: ['function definition'] } * ``` */ export declare class LanguageDetector { /** Minimum confidence threshold for detection */ private minConfidence; constructor(options?: LanguageDetectorOptions); /** * Detect language from file content * * @param content - File content to analyze * @returns Detection result with language, confidence, and evidence */ detect(content: string): LanguageDetectionResult; /** * Detect language from shebang line */ detectByShebang(content: string): LanguageDetectionResult; /** * Detect language from content patterns */ detectByPatterns(content: string): LanguageDetectionResult; /** * Detect language by statistical keyword analysis */ detectByStatistics(content: string): LanguageDetectionResult; /** * Get confidence threshold */ getMinConfidence(): number; /** * Set confidence threshold */ setMinConfidence(threshold: number): void; } /** * Convenience function to detect language * * @param content - File content to analyze * @param options - Detection options * @returns Detection result */ export declare function detectLanguage(content: string, options?: LanguageDetectorOptions): LanguageDetectionResult; //# sourceMappingURL=language-detector.d.ts.map