import { ModuleDependencyResolver } from '../../analyser/module-dependency-resolver';
import { ClassInfo } from '../../types';
import { ImportGenerator } from '../import-generator';
import { BaseContainerGenerator } from '../base-container-generator';
import { FileWriter } from '../file-writer';
import { ModuleContainerFunctionGenerator } from './module-container-function-generator';
import { ModuleInstantiationGenerator } from './module-instantiation-generator';
import { ContainerAggregator } from './container-aggregator';
/**
 * Generator for modular container structure.
 * Handles module-based dependency injection with inter-module dependencies.
 */
export declare class ModularContainerGenerator extends BaseContainerGenerator {
    private moduleGroupedClasses;
    private moduleDependencyResolver;
    private moduleContainerFunctionGenerator;
    private moduleInstantiationGenerator;
    private containerAggregator;
    constructor(fileWriter: FileWriter, moduleGroupedClasses: Map<string, ClassInfo[]>, moduleDependencyResolver: ModuleDependencyResolver, importGenerator: ImportGenerator, moduleContainerFunctionGenerator: ModuleContainerFunctionGenerator, moduleInstantiationGenerator: ModuleInstantiationGenerator, containerAggregator: ContainerAggregator);
    generate(): void;
    protected generateContainerCode(sortedModules?: string[], moduleDependencies?: Map<string, Set<string>>): string;
    private generateModuleContainers;
    /**
     * Generates split files when there are more than 3 modules.
     * Each module gets its own file, plus a main aggregator file.
     */
    private generateSplitFiles;
}
//# sourceMappingURL=modular-container-generator.d.ts.map