import { Language, DocDeltaConfig } from '../../types'; export interface FileNode { filePath: string; relativePath: string; name: string; type: 'entry' | 'module' | 'component' | 'utility' | 'config' | 'test' | 'unknown'; language: Language; imports: string[]; exports: string[]; dependencies: FileNode[]; dependents: FileNode[]; depth: number; purpose?: string; description?: string; functions?: FunctionInfo[]; classes?: ClassInfo[]; isEntryPoint: boolean; } export interface FunctionInfo { name: string; params: string[]; returnType?: string; description?: string; calledBy: string[]; calls: string[]; } export interface ClassInfo { name: string; methods: string[]; properties: string[]; extends?: string; implements?: string[]; description?: string; } export interface ProjectFlow { entryPoints: FileNode[]; modules: Map; dependencyGraph: Map>; executionFlow: ExecutionFlow[]; projectStructure: ProjectStructure; } export interface ExecutionFlow { step: number; file: string; action: string; imports: string[]; exports: string[]; nextSteps: string[]; } export interface ProjectStructure { rootDir: string; srcDir?: string; testDir?: string; configFiles: string[]; entryFiles: string[]; moduleCount: number; totalFiles: number; languages: Language[]; packageManager?: 'npm' | 'yarn' | 'pnpm'; framework?: string; } export declare class FlowAnalyzer { private modules; private fileNodes; private dependencyGraph; private projectRoot; private entryPoints; private config; constructor(projectRoot: string, config?: DocDeltaConfig); analyzeProject(patterns?: string[]): Promise; private identifyProjectStructure; private detectPackageManager; private detectFramework; private findEntryPoints; private parseAllModules; private buildDependencyGraph; private resolveImportPath; private normalizePath; private analyzeFromEntryPoints; private createFileNode; private determineFileType; private extractFunctions; private extractClasses; private extractParams; private extractReturnType; private extractFunctionCalls; private extractProperties; private extractExtends; private extractImplements; private traverseDependencies; private buildExecutionFlow; private describeFileAction; private enrichFileNodes; private inferFilePurpose; private generateFileDescription; } //# sourceMappingURL=flow-analyzer.d.ts.map