import { ASL } from "../types/asl";
export interface ShadCNComponent {
    name: string;
    dependencies: string[];
    useCases: string[];
    description: string;
    required: boolean;
}
export interface ShadCNCatalog {
    components: ShadCNComponent[];
    metadata: {
        version: string;
        totalComponents: number;
        lastUpdated: string;
    };
}
/**
 * ComponentInferenceEngine - Smart inference of needed shadCN components
 *
 * Analyzes ASL specification to determine which shadCN UI components
 * are needed for the project. Automatically resolves dependencies.
 *
 * Benefits:
 * - Only installs what's needed (saves tokens and time)
 * - Resolves dependencies automatically
 * - Provides reasoning for each component choice
 */
export declare class ComponentInferenceEngine {
    private catalog;
    constructor();
    /**
     * Infer which shadCN components are needed based on ASL
     * Returns array of component names to install
     */
    inferNeededComponents(asl: ASL): string[];
    /**
     * Check if ASL has list/table views
     */
    private hasListViews;
    /**
     * Check if a page is an entity list page
     */
    private isEntityListPage;
    /**
     * Check if ASL has admin/RBAC features
     */
    private hasAdminFeatures;
    /**
     * Resolve component dependencies
     * E.g., if we need 'form', we also need 'button' and 'label'
     */
    private resolveDependencies;
    /**
     * Load shadCN component catalog
     */
    private loadCatalog;
    /**
     * Default catalog (used if shadcn-catalog.json doesn't exist yet)
     */
    private getDefaultCatalog;
    /**
     * Explain why each component was chosen
     */
    explainChoices(asl: ASL): Map<string, string>;
}
//# sourceMappingURL=ComponentInferenceEngine.d.ts.map