import type { AnalysisResult, AnalyzedRoute, AnalyzerOptions } from './types.js';
/**
 * Analyzer class for parsing route files with ts-morph
 */
export declare class RouteAnalyzer {
    private project;
    private options;
    private errors;
    constructor(options: AnalyzerOptions);
    /**
     * Find tsconfig.json in the project
     */
    private findTsConfig;
    /**
     * Analyze all routes in the directory
     */
    analyze(): Promise<AnalysisResult>;
    /**
     * Find all route files matching patterns
     */
    private findRouteFiles;
    /**
     * Find middleware files
     */
    private findMiddlewareFiles;
    /**
     * Analyze a single route file
     */
    private analyzeRouteFile;
    /**
     * Extract HTTP method handlers from a source file
     */
    private extractHandlers;
    /**
     * Analyze a function declaration
     */
    private analyzeFunction;
    /**
     * Analyze a variable declaration (arrow function handler)
     */
    private analyzeVariableHandler;
    /**
     * Analyze a function parameter
     */
    private analyzeParameter;
    /**
     * Extract route configuration exports
     */
    private extractRouteConfig;
    /**
     * Evaluate a literal value from an AST node
     */
    private evaluateLiteralValue;
    /**
     * Extract import statements
     */
    private extractImports;
    /**
     * Check if a type is used in the file
     */
    private checkUsesType;
    /**
     * Check if any handler needs body parsing
     */
    private checkNeedsBodyParsing;
    /**
     * Convert file path to Elysia route pattern
     */
    private convertToElysiaPath;
    /**
     * Extract path parameters from Elysia path
     */
    private extractPathParams;
    /**
     * Analyze a middleware file
     */
    private analyzeMiddlewareFile;
    /**
     * Extract middleware config (matcher)
     */
    private extractMiddlewareConfig;
}
/**
 * Create and run analyzer
 */
export declare function analyzeRoutes(options: AnalyzerOptions): Promise<AnalysisResult>;
/**
 * Analyze a single file
 */
export declare function analyzeFile(filePath: string, tsConfigPath?: string): Promise<AnalyzedRoute | null>;
//# sourceMappingURL=analyzer.d.ts.map