/** * File scanning utilities for codebase indexing */ import { type Ignore } from 'ignore'; export type { Ignore }; /** * Detect programming language from file extension */ export declare function detectLanguage(filePath: string): string | undefined; /** * Check if file is text-based (not binary) */ export declare function isTextFile(filePath: string): boolean; /** * Load .gitignore file and create ignore filter */ export declare function loadGitignore(codebaseRoot: string): Ignore; /** * Scan directory recursively for files */ export interface ScanOptions { ignoreFilter?: Ignore; codebaseRoot?: string; maxFileSize?: number; } export interface ScanResult { path: string; absolutePath: string; content: string; size: number; mtime: number; language?: string; } /** * File metadata without content (memory optimization) */ export interface FileMetadata { path: string; absolutePath: string; size: number; mtime: number; language?: string; } /** * Scan files in directory with .gitignore support */ export declare function scanFiles(dir: string, options?: ScanOptions): ScanResult[]; /** * Scan file metadata only (without reading content) - Memory optimization * Returns generator that yields file metadata one at a time */ export declare function scanFileMetadata(dir: string, options?: ScanOptions): Generator; /** * Read file content (separate from scanning for memory efficiency) */ export declare function readFileContent(absolutePath: string): string | null; /** * Calculate simple hash for file content (for change detection) */ export declare function simpleHash(content: string): string; //# sourceMappingURL=utils.d.ts.map