/**
 * Framework Detection
 *
 * Detects frameworks from:
 * 1) file path patterns
 * 2) AST definition text (decorators/annotations/attributes)
 * and provides entry point multipliers for process scoring.
 *
 * DESIGN: Returns null for unknown frameworks, which causes a 1.0 multiplier
 * (no bonus, no penalty) - same behavior as before this feature.
 */
import { SupportedLanguages } from '../../_shared/index.js';
export interface FrameworkHint {
    framework: string;
    entryPointMultiplier: number;
    reason: string;
}
/**
 * Detect framework from file path patterns
 *
 * This provides entry point multipliers based on well-known framework conventions.
 * Returns null if no framework pattern is detected (falls back to 1.0 multiplier).
 */
export declare function detectFrameworkFromPath(filePath: string): FrameworkHint | null;
/**
 * Patterns that indicate framework entry points within code definitions.
 * These are matched against AST node text (class/method/function declaration text).
 */
export declare const FRAMEWORK_AST_PATTERNS: {
    nestjs: string[];
    'expo-router': string[];
    express: string[];
    fastapi: string[];
    flask: string[];
    spring: string[];
    jaxrs: string[];
    aspnet: string[];
    signalr: string[];
    blazor: string[];
    efcore: string[];
    'go-http': string[];
    gin: string[];
    echo: string[];
    fiber: string[];
    'go-grpc': string[];
    prisma: string[];
    supabase: string[];
    laravel: string[];
    actix: string[];
    axum: string[];
    rocket: string[];
    tokio: string[];
    qt: string[];
    uikit: string[];
    swiftui: string[];
    vapor: string[];
    rails: string[];
    sinatra: string[];
    flutter: string[];
    riverpod: string[];
};
export declare const AST_FRAMEWORK_PATTERNS_BY_LANGUAGE: {
    javascript: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    typescript: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    python: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    java: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    kotlin: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    csharp: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    php: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    go: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    rust: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    c: any[];
    cpp: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    swift: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    ruby: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    dart: {
        framework: string;
        entryPointMultiplier: number;
        reason: string;
        patterns: string[];
    }[];
    vue: any[];
    cobol: any[];
};
/**
 * Detect framework entry points from AST definition text (decorators/annotations/attributes).
 * Returns null if no known pattern is found.
 * Note: callers should slice definitionText to ~300 chars since annotations appear at the start.
 */
export declare function detectFrameworkFromAST(language: SupportedLanguages, definitionText: string): FrameworkHint | null;
