import type { AnalysisResult, GeneratedOutput, GeneratorOptions, RouteTransformer } from './types.js';
/**
 * Code generator class
 */
export declare class CodeGenerator {
    private project;
    private options;
    private transformers;
    constructor(options?: Partial<GeneratorOptions>);
    /**
     * Add a custom transformer
     */
    addTransformer(transformer: RouteTransformer): this;
    /**
     * Generate code from analysis result
     */
    generate(analysis: AnalysisResult): Promise<GeneratedOutput>;
    /**
     * Generate the main router file
     */
    private generateRouterFile;
    /**
     * Add framework imports
     */
    private addImports;
    /**
     * Add route file imports
     */
    private addRouteImports;
    /**
     * Add middleware imports
     */
    private addMiddlewareImports;
    /**
     * Generate the router factory function
     */
    private generateRouterFactory;
    /**
     * Write middleware setup
     */
    private writeMiddlewareSetup;
    /**
     * Group routes by their path prefix
     */
    private groupRoutesByPrefix;
    /**
     * Write grouped routes
     */
    private writeGroupedRoutes;
    /**
     * Write all routes without grouping
     */
    private writeRoutes;
    /**
     * Write a single route
     */
    private writeRoute;
    /**
     * Generate standalone app export
     */
    private generateStandaloneApp;
    /**
     * Get import name for a route
     */
    private getRouteImportName;
    /**
     * Get import path for a route
     */
    private getRouteImportPath;
    /**
     * Get import path for middleware
     */
    private getMiddlewareImportPath;
    /**
     * Generate type definitions
     */
    private generateTypeDefinitions;
    /**
     * Generate barrel export file
     */
    private generateBarrelExport;
}
/**
 * Generate code from analysis
 */
export declare function generateCode(analysis: AnalysisResult, options?: Partial<GeneratorOptions>): Promise<GeneratedOutput>;
/**
 * Generate and write to disk
 */
export declare function generateAndWrite(analysis: AnalysisResult, options: Partial<GeneratorOptions> & {
    outputPath: string;
}): Promise<void>;
//# sourceMappingURL=generator.d.ts.map