import type { ProjectMetadata } from '../../types/dashboard.js'; /** * Represents a discovered source file with metadata. */ export interface FileEntry { /** Absolute path to the file */ path: string; /** Path relative to the project root */ relativePath: string; /** Category of the file based on its location and extension */ category: 'code' | 'config' | 'docs' | 'infra' | 'data' | 'script' | 'markup'; /** Detected programming language */ language: string; /** Number of lines in the file */ lineCount: number; } /** * Result of scanning a project directory. */ export interface ScanResult { /** All discovered source files */ files: FileEntry[]; /** Project metadata detected from manifest files (package.json, etc.) */ metadata: ProjectMetadata; } /** * Default directories to exclude from scanning. */ export declare const DEFAULT_IGNORE_DIRS: string[]; /** * Default file patterns to exclude from scanning (binary, generated, lock files). */ export declare const DEFAULT_IGNORE_FILE_PATTERNS: string[]; /** * Detects project metadata from manifest files and scanned file entries. */ export declare function detectMetadata(projectRoot: string, files: FileEntry[]): ProjectMetadata; /** * Scans a project directory for source files, excluding common non-source * directories and respecting ignore patterns. * * @param projectRoot - Absolute path to the project root directory * @param ignorePatterns - Additional glob patterns to exclude * @returns ScanResult with discovered files and detected project metadata */ export declare function scanProject(projectRoot: string, ignorePatterns?: string[]): ScanResult;