import { Project } from '../types/project-config.js';
export interface GeneratorOptions {
    outputDir: string;
    overwrite?: boolean;
    dryRun?: boolean;
}
export declare class ProjectGenerateError extends Error {
    details?: any | undefined;
    constructor(message: string, details?: any | undefined);
}
export declare class ProjectGenerator {
    private project;
    private options;
    constructor(project: Project, options: GeneratorOptions);
    /**
     * Generate the complete project structure
     */
    generate(): Promise<void>;
    /**
     * Generate project configuration as JSON
     */
    static generateJson(project: Project, pretty?: boolean): string;
    /**
     * Save project configuration to file
     */
    static saveToFile(project: Project, filePath: string, pretty?: boolean): Promise<void>;
    private validateOptions;
    private createDirectories;
    private generateFiles;
    private generateConfigurationFiles;
    private generateFileContent;
    private generateJavaFile;
    private generateSpringBootApplication;
    private generatePomXml;
    private generateBuildGradle;
    private generateMarkdownFile;
    private getPackageName;
    private getClassName;
}
