import { ClassInfo } from '../../types.js';
import { ImportGenerator } from '../import-generator.js';
import { ModuleContainerFunctionGenerator } from './module-container-function-generator.js';
import { ModuleInstantiationGenerator } from './module-instantiation-generator.js';
/**
 * Handles writing split module files when there are more than 3 modules.
 * Each module gets its own <moduleName>.gen.ts file, plus a main container.gen.ts aggregator.
 */
export declare class SplitFileWriter {
    private outputPath;
    private outputDir;
    constructor(outputPath: string);
    /**
     * Writes split module files and main aggregator file.
     */
    writeSplitModules(moduleGroupedClasses: Map<string, ClassInfo[]>, sortedModules: string[], moduleDependencies: Map<string, Set<string>>, moduleContainerFunctionGenerator: ModuleContainerFunctionGenerator, moduleInstantiationGenerator: ModuleInstantiationGenerator, globalImportGenerator: ImportGenerator): void;
    /**
     * Generates content for an individual module file.
     */
    private generateModuleFileContent;
    /**
     * Generates dependency import statements for a module.
     */
    private generateDependencyImports;
    /**
     * Generates type export for a module.
     */
    private generateModuleTypeExport;
    /**
     * Generates content for the main aggregator file.
     */
    private generateAggregatorFileContent;
    /**
     * Generates module instantiations for the aggregator file.
     */
    private generateModuleInstantiationsForAggregator;
    /**
     * Generates the aggregated container for split files.
     */
    private generateAggregatedContainerForSplit;
    /**
     * Converts a string to camelCase.
     */
    private toCamelCase;
}
//# sourceMappingURL=split-file-writer.d.ts.map