import type { FileContent } from "./context_files.js";
/**
 * Builds file-size and total-size maps for the provided files, keyed by absolute path.
 *
 * @param root - The root directory (absolute path) to treat as the top-level. Ascension stops here.
 * @param files - An array of FileContent objects, each with a path and content.
 * @returns A tuple [fileSizeMap, totalSizeMap] where:
 *  - fileSizeMap[path] = size (in characters) of the file
 *  - totalSizeMap[path] = cumulative size (in characters) for path (file or directory)
 */
export declare function computeSizeMap(root: string, files: Array<FileContent>): [Record<string, number>, Record<string, number>];
/**
 * Builds a mapping of directories to their immediate children. The keys and values
 * are absolute paths. For each path in totalSizeMap (except the root itself), we find
 * its parent (if also in totalSizeMap) and add the path to the children of that parent.
 *
 * @param root - The root directory (absolute path).
 * @param totalSizeMap - A map from path -> cumulative size.
 * @returns A record that maps directory paths to arrays of child paths.
 */
export declare function buildChildrenMap(root: string, totalSizeMap: Record<string, number>): Record<string, Array<string>>;
/**
 * Recursively prints a directory/file tree, showing size usage.
 *
 * @param current - The current absolute path (directory or file) to print.
 * @param childrenMap - A mapping from directory paths to an array of their child paths.
 * @param fileSizeMap - A map from file path to file size (characters).
 * @param totalSizeMap - A map from path to total cumulative size.
 * @param prefix - The current prefix used for ASCII indentation.
 * @param isLast - Whether the current path is the last child in its parent.
 * @param contextLimit - The context limit for reference.
 */
export declare function printSizeTree(current: string, childrenMap: Record<string, Array<string>>, fileSizeMap: Record<string, number>, totalSizeMap: Record<string, number>, prefix: string, isLast: boolean, contextLimit: number): void;
/**
 * Prints a size breakdown for the entire directory (and subpaths), listing cumulative percentages.
 *
 * @param directory - The directory path (absolute or relative) for which to print the breakdown.
 * @param files - The array of FileContent representing the files under that directory.
 * @param contextLimit - The maximum context character limit.
 */
export declare function printDirectorySizeBreakdown(directory: string, files: Array<FileContent>, contextLimit?: number): void;
