/**
 * Specialist View Expander for v3.4.0 Phase 3
 *
 * Expands abstract specialist view types (dashboard, analytics, board, etc.)
 * into concrete UI component specifications using v3.4 atomic types.
 *
 * Updated for Phase 2: Uses domain-specific ExpansionTemplateRuleFile format directly
 */
import { ExpansionTemplateRuleFile, SpecialistViewTemplate } from '../../core/rule-file-types.js';
export interface SpecialistViewDefinition {
    type: string;
    model?: string;
    metrics?: string[];
    charts?: string[];
    columns?: string[];
    groupBy?: string;
    filters?: any;
    [key: string]: any;
}
export interface SpecialistViewRules {
    version: string;
    description: string;
    logical_inference: {
        specialist_views: Record<string, SpecialistViewTemplate>;
    };
}
export declare class SpecialistViewExpander {
    private templates;
    private version;
    /**
     * Load specialist view rules from domain-specific format
     */
    loadRulesFromDomainSpecific(ruleFile: ExpansionTemplateRuleFile): void;
    /**
     * Load specialist view rules from legacy JSON format (backward compatibility)
     */
    loadRules(rules: SpecialistViewRules): void;
    /**
     * Check if a view type is a specialist view
     */
    isSpecialistView(viewType: string): boolean;
    /**
     * Check if rules are loaded
     */
    isLoaded(): boolean;
    /**
     * Get available specialist view types
     */
    getAvailableTypes(): string[];
    /**
     * Expand a specialist view into concrete components
     */
    expandSpecialistView(viewDef: SpecialistViewDefinition): Record<string, any>;
    /**
     * Expand a single component from template
     */
    private expandSingleComponent;
    /**
     * Expand a repeating component (e.g., for each metric, chart, column)
     */
    private expandRepeatingComponent;
    /**
     * Substitute variables in template strings
     */
    private substituteVariables;
    /**
     * Get description for a specialist view type
     */
    getDescription(viewType: string): string | null;
    /**
     * Get loaded rules version
     */
    getVersion(): string | null;
}
//# sourceMappingURL=specialist-view-expander.d.ts.map