/** * Variant-Specific Configuration Handler * Manages per-variant configuration including field exclusions and validation rules */ import { VariantType, VariantConfig, VariantManagerConfig } from '../types/variants'; /** * Configuration inheritance hierarchy */ export declare enum ConfigInheritanceLevel { DEFAULT = "default", GLOBAL = "global", VARIANT = "variant", MODEL = "model" } /** * Configuration validation result */ export interface ConfigValidationResult { isValid: boolean; errors: string[]; warnings: string[]; level: ConfigInheritanceLevel; appliedConfig: VariantConfig; } /** * Configuration merger interface */ export interface ConfigMerger { mergeConfigs(base: T, override: Partial): T; validateMergedConfig(config: VariantConfig): ConfigValidationResult; } /** * Variant Configuration Manager * Handles configuration inheritance, validation, and caching */ export declare class VariantConfigurationManager implements ConfigMerger { private configCache; private cacheTimeout; private globalConfig; constructor(globalConfig?: Partial); /** * Get configuration for a specific model and variant */ getVariantConfig(modelName: string, variantType: VariantType, overrides?: Partial): VariantConfig; /** * Build configuration hierarchy from defaults to model-specific overrides */ private buildConfigurationHierarchy; /** * Get default configuration for a variant type */ getDefaultVariantConfig(variantType: VariantType): VariantConfig; /** * Merge configurations with proper deep merging */ mergeConfigs(base: T, override: Partial): T; /** * Validate merged configuration */ validateMergedConfig(config: VariantConfig): ConfigValidationResult; /** * Update global configuration */ updateGlobalConfig(updates: Partial): void; /** * Add model-specific override */ addModelOverride(modelName: string, variantType: VariantType, override: Partial): void; /** * Remove model-specific override */ removeModelOverride(modelName: string, variantType?: VariantType): void; /** * Get effective field exclusions for a model variant */ getEffectiveFieldExclusions(modelName: string, variantType: VariantType, fieldNames: string[]): { excludedFields: string[]; includedFields: string[]; exclusionReasons: Record; }; /** * Get effective validation customizations */ getEffectiveValidationCustomizations(modelName: string, variantType: VariantType, fieldName: string): { validations: string[]; isInlineDisabled: boolean; customTemplate?: string; }; /** * Export configuration as JSON */ exportConfiguration(): string; /** * Import configuration from JSON */ importConfiguration(configJson: string): void; /** * Private helper methods */ private buildDefaultGlobalConfig; private getDefaultPriority; private generateCacheKey; private getCachedConfig; private cacheConfig; private clearCache; private clearModelCache; private getInheritanceChain; private isPlainObject; private isAutoGeneratedField; private hashObject; } /** * Configuration utility functions */ export declare class ConfigurationUtils { /** * Compare two configurations for differences */ static compareConfigs(config1: VariantConfig, config2: VariantConfig): { areSame: boolean; differences: Array<{ path: string; value1: unknown; value2: unknown; }>; }; /** * Get configuration summary */ static getConfigSummary(config: VariantConfig): { type: VariantType; excludedFieldsCount: number; customValidationsCount: number; hasDocumentation: boolean; priority: number; }; /** * Validate configuration compatibility */ static validateCompatibility(configs: VariantConfig[]): { isCompatible: boolean; conflicts: Array<{ config1: VariantType; config2: VariantType; issue: string; }>; }; private static deepCompare; } export default VariantConfigurationManager;