import { ScanOptions, ScanResult, FileEntry, GitInfo } from '../types/scanner.types'; export interface IScanner { readonly name: string; scan(options: ScanOptions): Promise; canScan(path: string): Promise; getConfig(): Record; } export interface IIgnorePatternHandler { loadPatterns(rootPath: string): Promise; shouldIgnore(filePath: string): boolean; getPatterns(): string[]; addPattern(pattern: string): void; clear(): void; } export interface IGitScanner { isGitRepository(path: string): Promise; getGitInfo(path: string): Promise; getGitIgnorePatterns(path: string): Promise; getFileHistory(filePath: string): Promise; } export interface GitFileHistory { commit: string; author: string; email: string; date: Date; message: string; changes: { additions: number; deletions: number; }; } export interface IFileAnalyzer { analyzeFile(entry: FileEntry): Promise; extractMetadata(content: string, fileType: string): Promise; isBinary(content: Buffer): boolean; getComplexityMetrics(content: string, language: string): Promise; } export interface FileAnalysis { language: string; framework?: string; category: 'source' | 'test' | 'config' | 'documentation' | 'resource' | 'build' | 'other'; confidence: number; lineCount: number; isExecutable: boolean; encoding: string; dependencies: string[]; } export interface FileMetadata { packageName?: string; version?: string; author?: string; license?: string; description?: string; keywords: string[]; entryPoints: string[]; scripts: Record; configuration: Record; } export interface ComplexityMetrics { cyclomaticComplexity: number; cognitiveComplexity: number; functionCount: number; classCount: number; averageFunctionLength: number; maxNestingDepth: number; technicalDebtRatio: number; } //# sourceMappingURL=scanner.interface.d.ts.map