import type { RepomixConfigMerged } from '../../config/configSchema.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 { OutputGeneratorContext, RenderContext } from './outputGeneratorTypes.js';
export declare const createRenderContext: (outputGeneratorContext: OutputGeneratorContext) => RenderContext;
export declare const generateOutput: (rootDirs: string[], config: RepomixConfigMerged, processedFiles: ProcessedFile[], allFilePaths: string[], gitDiffResult?: GitDiffResult | undefined, gitLogResult?: GitLogResult | undefined, filePathsByRoot?: FilesByRoot[], emptyDirPaths?: string[], deps?: {
    buildOutputGeneratorContext: (rootDirs: string[], config: RepomixConfigMerged, allFilePaths: string[], processedFiles: ProcessedFile[], gitDiffResult?: GitDiffResult | undefined, gitLogResult?: GitLogResult | undefined, filePathsByRoot?: FilesByRoot[], emptyDirPaths?: string[], deps?: {
        listDirectories: (rootDir: string, config: RepomixConfigMerged) => Promise<string[]>;
        listFiles: (rootDir: string, config: RepomixConfigMerged) => Promise<string[]>;
        searchFiles: (rootDir: string, config: RepomixConfigMerged, explicitFiles?: string[]) => Promise<import("../file/fileSearch.js").FileSearchResult>;
    }) => Promise<OutputGeneratorContext>;
    generateHandlebarOutput: (config: RepomixConfigMerged, renderContext: RenderContext, processedFiles?: ProcessedFile[]) => Promise<string>;
    generateParsableXmlOutput: (renderContext: RenderContext) => Promise<string>;
    generateParsableJsonOutput: (renderContext: RenderContext) => Promise<string>;
    sortOutputFiles: (files: ProcessedFile[], config: RepomixConfigMerged, deps?: import("./outputSort.js").SortDeps) => Promise<ProcessedFile[]>;
}) => Promise<string>;
export declare const buildOutputGeneratorContext: (rootDirs: string[], config: RepomixConfigMerged, allFilePaths: string[], processedFiles: ProcessedFile[], gitDiffResult?: GitDiffResult | undefined, gitLogResult?: GitLogResult | undefined, filePathsByRoot?: FilesByRoot[], emptyDirPaths?: string[], deps?: {
    listDirectories: (rootDir: string, config: RepomixConfigMerged) => Promise<string[]>;
    listFiles: (rootDir: string, config: RepomixConfigMerged) => Promise<string[]>;
    searchFiles: (rootDir: string, config: RepomixConfigMerged, explicitFiles?: string[]) => Promise<import("../file/fileSearch.js").FileSearchResult>;
}) => Promise<OutputGeneratorContext>;
