/** * Project Scanner - Real Project Directory Scanner * * Scans project directories to extract structure, dependencies, frameworks, and configuration. * Used by project-onboarding to generate accurate, project-specific documentation. */ /** * Project type classification */ export type ProjectType = "typescript" | "javascript" | "python" | "go" | "rust" | "java" | "cpp" | "c" | "csharp" | "php" | "ruby" | "scala" | "kotlin" | "swift" | "objectivec" | "r" | "julia" | "haskell" | "lua" | "elixir" | "polyglot" | "unknown"; /** * Dependency information */ export interface Dependency { name: string; version: string; isDevDependency: boolean; } /** * Framework detection result */ export interface Framework { name: string; version?: string; confidence: "high" | "medium" | "low"; } /** * Configuration file information */ export interface ConfigFile { name: string; path: string; type: "json" | "yaml" | "yml" | "toml" | "xml" | "ini" | "properties" | "hcl" | "env" | "conf" | "cfg" | "other"; } /** * Directory tree node */ export interface DirectoryNode { name: string; type: "file" | "directory"; children?: DirectoryNode[]; } /** * Scan options */ export interface ScanOptions { maxDepth?: number; includeNodeModules?: boolean; includeDotFiles?: boolean; } /** * Complete project structure */ export interface ProjectStructure { name: string; type: ProjectType; rootPath: string; entryPoints: string[]; dependencies: Dependency[]; devDependencies: Dependency[]; scripts: Record; frameworks: Framework[]; configFiles: ConfigFile[]; directoryStructure: DirectoryNode; } /** * ProjectScanner class - scans real project directories */ export declare class ProjectScanner { private readonly defaultOptions; /** * Scan a project directory and extract structure */ scan(projectPath: string, options?: ScanOptions): Promise; /** * Validate that the path exists and is a directory */ private validatePath; /** * Recursively scan directory structure with depth limiting */ private scanDirectory; /** * Find all configuration files in the project root */ private findConfigFiles; /** * Parse package.json if it exists */ private parsePackageJson; /** * Parse tsconfig.json if it exists */ private parseTsconfig; /** * Detect project type based on config files */ private detectProjectType; /** * Detect frameworks from package.json and config files */ private detectFrameworks; /** * Extract dependencies from package.json */ private extractDependencies; /** * Find entry points based on package.json, tsconfig.json, and common patterns */ private findEntryPoints; } /** * Singleton instance for easy import */ export declare const projectScanner: ProjectScanner; //# sourceMappingURL=project-scanner.d.ts.map