import { FileInfo, InventoryData } from '../types'; /** * Infer a semantic description for a single file. * Returns the description or null if no pattern matches. */ export declare function inferFileDescription(file: FileInfo): string; /** * Infer a semantic description for a directory based on its name * and the files it contains. Returns the description or null if * no pattern matches (in which case the caller should list exports). */ export declare function inferDirectoryDescription(dirName: string, files: FileInfo[]): string; /** * Collapse duplicated path segments for display. * e.g. "Backend/PortalIndicadores.Data/PortalIndicadores.Data" → "Backend/PortalIndicadores.Data" */ export declare function collapseGroupPath(groupPath: string): string; /** * Directory group for the project structure section. */ export interface DirectoryGroup { path: string; files: FileInfo[]; totalLines: number; } /** * Group inventory files into adaptive directory groups. * * Strategy: * 1. Start by grouping at depth 2 (e.g. "Frontend/src/", "Backend/API/") * 2. If a group has > MAX_GROUP_SIZE files, expand it one level deeper * (e.g. "Frontend/src/" → "Frontend/src/components/", "Frontend/src/services/", etc.) * 3. Root files (no directory) are returned separately. * * This ensures no group is so large that it hides the internal structure, * while keeping small directories compact. */ export declare function buildAdaptiveGroups(inventory: InventoryData): { rootFiles: FileInfo[]; groups: DirectoryGroup[]; };