import type { RepomixConfigMerged } from '../../config/configSchema.js';
import type { RepomixProgressCallback } from '../../shared/types.js';
import type { FilesByRoot } from '../file/fileTreeGenerate.js';
import type { ProcessedFile } from '../file/fileTypes.js';
import type { GitDiffResult } from '../git/gitDiffHandle.js';
import type { GitLogResult } from '../git/gitLogHandle.js';
import type { generateOutput } from './outputGenerate.js';
export interface OutputSplitGroup {
    rootEntry: string;
    processedFiles: ProcessedFile[];
    allFilePaths: string[];
}
export interface OutputSplitPart {
    index: number;
    filePath: string;
    content: string;
    byteLength: number;
    groups: OutputSplitGroup[];
}
export type GenerateOutputFn = typeof generateOutput;
export declare const getRootEntry: (relativeFilePath: string) => string;
export declare const buildOutputSplitGroups: (processedFiles: ProcessedFile[], allFilePaths: string[]) => OutputSplitGroup[];
export declare const buildSplitOutputFilePath: (baseFilePath: string, partIndex: number) => string;
export declare const generateSplitOutputParts: ({ rootDirs, baseConfig, processedFiles, allFilePaths, maxBytesPerPart, gitDiffResult, gitLogResult, progressCallback, filePathsByRoot, emptyDirPaths, deps, }: {
    rootDirs: string[];
    baseConfig: RepomixConfigMerged;
    processedFiles: ProcessedFile[];
    allFilePaths: string[];
    maxBytesPerPart: number;
    gitDiffResult: GitDiffResult | undefined;
    gitLogResult: GitLogResult | undefined;
    progressCallback: RepomixProgressCallback;
    filePathsByRoot?: FilesByRoot[];
    emptyDirPaths?: string[];
    deps: {
        generateOutput: GenerateOutputFn;
    };
}) => Promise<OutputSplitPart[]>;
