/**
 * Pattern Recommender
 *
 * Maps transition context (entity fields, domain category, UI state) to
 * ranked pattern suggestions using the registry's `suggestedFor` metadata,
 * category matching, and entity field type heuristics.
 *
 * Used by the design-transition tool to include top-N recommendations
 * in the LLM prompt context.
 *
 * @packageDocumentation
 */
import type { PatternType } from '../pattern-types.js';
/**
 * Context for pattern recommendation.
 */
export interface RecommendationContext {
    /** Current state name (e.g., "Browsing", "Creating") */
    state?: string;
    /** Triggering event (e.g., "INIT", "CREATE", "VIEW") */
    event?: string;
    /** Target UI slot */
    slot?: 'main' | 'modal' | 'drawer' | 'sidebar' | 'overlay';
    /** Domain category */
    domainCategory?: string;
    /** Entity field types present */
    entityFieldTypes?: string[];
    /** Entity has enum fields */
    hasEnumFields?: boolean;
    /** Entity has date/timestamp fields */
    hasDateFields?: boolean;
    /** Entity has numeric fields */
    hasNumericFields?: boolean;
    /** Entity has relation fields */
    hasRelationFields?: boolean;
    /** Entity has image/url fields */
    hasMediaFields?: boolean;
}
/**
 * A pattern recommendation with score and reasoning.
 */
export interface PatternRecommendation {
    /** Pattern type name */
    pattern: PatternType;
    /** Relevance score (0-100) */
    score: number;
    /** Why this pattern was recommended */
    reason: string;
    /** Pattern category */
    category: string;
    /** Pattern description */
    description: string;
    /** Key props to use */
    keyProps: string[];
}
/**
 * Recommend patterns for a given context.
 *
 * Scoring algorithm:
 * 1. suggestedFor match with domain keywords (+30)
 * 2. suggestedFor match with event keywords (+25)
 * 3. Category affinity with slot (+20)
 * 4. Category affinity with state (+15)
 * 5. Entity field type bonus (+10 per matching heuristic)
 * 6. Entity-aware bonus for display patterns (+5)
 *
 * @returns Ranked pattern recommendations, highest score first
 */
export declare function recommendPatterns(context: RecommendationContext, maxResults?: number): PatternRecommendation[];
/**
 * Build recommendation context from entity field information.
 * Analyzes field types to set the boolean flags used by the recommender.
 */
export declare function buildRecommendationContext(options: {
    state?: string;
    event?: string;
    slot?: 'main' | 'modal' | 'drawer' | 'sidebar' | 'overlay';
    domainCategory?: string;
    entityFields?: Array<{
        name: string;
        type: string;
        values?: string[];
    }>;
}): RecommendationContext;
/**
 * Format recommendations as a concise prompt section.
 * Used to inject into the design-transition tool's user prompt.
 */
export declare function formatRecommendationsForPrompt(recommendations: PatternRecommendation[]): string;
