/**
 * Component Type Resolver for v3.4.0
 *
 * Dynamically resolves component types based on v3.4 inference rules
 * instead of hardcoded switch statements.
 *
 * Updated for Phase 2: Uses domain-specific ConfigurationRuleFile format directly
 */
import { ConfigurationRuleFile, AttributeComponentMapping, RelationshipComponentMapping } from '../../core/rule-file-types.js';
export type AttributeRule = AttributeComponentMapping;
export type RelationshipRule = RelationshipComponentMapping;
export interface ViewPattern {
    pattern: string;
    priority: number;
    components: Record<string, {
        type: string;
        [key: string]: any;
    }>;
}
export declare class ComponentTypeResolver {
    private mappings;
    /**
     * Load component mappings from domain-specific format
     */
    loadRulesFromDomainSpecific(ruleFile: ConfigurationRuleFile): void;
    /**
     * Resolve component type for an attribute
     */
    resolveAttributeComponentType(attribute: any): {
        type: string;
        properties?: Record<string, any>;
    };
    /**
     * Resolve component type for a relationship
     */
    resolveRelationshipComponentType(relationship: any): {
        type: string;
        properties?: Record<string, any>;
    };
    /**
     * Get CRUD view pattern components
     * TODO: Update to use domain-specific format view patterns
     */
    getListViewPattern(): Record<string, any> | null;
    getDetailViewPattern(): Record<string, any> | null;
    getFormViewPattern(): Record<string, any> | null;
    /**
     * Check if attribute matches a rule
     */
    private matchesAttributeRule;
    /**
     * Check if rules are loaded
     */
    isLoaded(): boolean;
}
//# sourceMappingURL=component-type-resolver.d.ts.map