/**
 * Auto-Configuration System for Epic 2: Smart Platform Detection Engine
 * Generates platform-specific configurations based on detection results
 * Part of Task 2.3.1: Create auto-configurator system with platform-specific config generation
 */
import type { FlexibleSeedConfig } from '../../core/types/config-types';
import type { PlatformArchitectureType, ContentDomainType, ConfidenceLevel } from './detection-types';
import type { UnifiedDetectionResult } from './detection-integration';
/**
 * Auto-generated configuration result
 */
export interface AutoConfigurationResult {
    /** Generated configuration based on detection */
    configuration: Partial<FlexibleSeedConfig>;
    /** Confidence in the auto-configuration */
    confidence: number;
    /** Confidence level category */
    confidenceLevel: ConfidenceLevel;
    /** Reasoning for configuration choices */
    reasoning: string[];
    /** Warnings about configuration choices */
    warnings: string[];
    /** Detection results used for configuration */
    detectionResults: UnifiedDetectionResult;
    /** Configuration generation metrics */
    generationMetrics: {
        /** Time taken for configuration generation (ms) */
        executionTime: number;
        /** Number of configuration templates applied */
        templatesApplied: number;
        /** Configuration strategy used */
        strategyUsed: string;
    };
}
/**
 * Configuration template for specific platform/domain combinations
 */
export interface ConfigurationTemplate {
    /** Template identifier */
    id: string;
    /** Template name */
    name: string;
    /** Template description */
    description: string;
    /** Platform architecture this template applies to */
    architecture: PlatformArchitectureType | 'any';
    /** Content domain this template applies to */
    domain: ContentDomainType | 'any';
    /** Minimum confidence required to apply template */
    minimumConfidence: number;
    /** Template priority (higher = more specific) */
    priority: number;
    /** Configuration overrides to apply */
    configurationOverrides: Partial<FlexibleSeedConfig>;
    /** Template application logic */
    shouldApply: (detection: UnifiedDetectionResult) => boolean;
    /** Custom configuration generation function */
    generateConfig?: (detection: UnifiedDetectionResult, baseConfig: Partial<FlexibleSeedConfig>) => Partial<FlexibleSeedConfig>;
}
/**
 * Auto-configuration generation strategies
 */
export type AutoConfigurationStrategy = 'comprehensive' | 'minimal' | 'conservative' | 'optimized';
/**
 * Auto-configuration system options
 */
export interface AutoConfigurationOptions {
    /** Configuration generation strategy */
    strategy: AutoConfigurationStrategy;
    /** Base configuration to extend */
    baseConfiguration?: Partial<FlexibleSeedConfig>;
    /** Whether to apply domain-specific extensions */
    enableDomainExtensions: boolean;
    /** Whether to apply architecture-specific optimizations */
    enableArchitectureOptimizations: boolean;
    /** Minimum confidence threshold for applying configurations */
    confidenceThreshold: number;
    /** Custom configuration templates to include */
    customTemplates?: ConfigurationTemplate[];
    /** Configuration overrides that take priority */
    configurationOverrides?: Partial<FlexibleSeedConfig>;
}
/**
 * Main Auto-Configuration System
 * Generates platform-specific configurations based on detection results
 */
export declare class AutoConfigurator {
    private configurationTemplates;
    constructor();
    /**
     * Generate auto-configuration from detection results
     */
    generateConfiguration(detectionResults: UnifiedDetectionResult, options?: Partial<AutoConfigurationOptions>): Promise<AutoConfigurationResult>;
    /**
     * Execute configuration generation based on strategy
     */
    private executeConfigurationStrategy;
    /**
     * Generate comprehensive configuration with all detected features
     */
    private generateComprehensiveConfiguration;
    /**
     * Generate minimal configuration with only essential settings
     */
    private generateMinimalConfiguration;
    /**
     * Generate conservative configuration with safe fallbacks
     */
    private generateConservativeConfiguration;
    /**
     * Generate optimized configuration for performance
     */
    private generateOptimizedConfiguration;
    /**
     * Generate architecture-specific configuration
     */
    private generateArchitectureConfiguration;
    /**
     * Generate domain-specific configuration
     */
    private generateDomainConfiguration;
    /**
     * Generate essential architecture configuration (minimal mode)
     */
    private generateEssentialArchitectureConfiguration;
    /**
     * Generate essential domain configuration (minimal mode)
     */
    private generateEssentialDomainConfiguration;
    /**
     * Get applicable configuration templates
     */
    private getApplicableTemplates;
    /**
     * Calculate configuration confidence based on detection results
     */
    private calculateConfigurationConfidence;
    /**
     * Assess configuration completeness
     */
    private assessConfigurationCompleteness;
    /**
     * Get optimized user count for architecture type
     */
    private getOptimizedUserCount;
    /**
     * Get optimized seeding parameters for domain
     */
    private getOptimizedSeedingParams;
    /**
     * Get confidence level from confidence score
     */
    private getConfidenceLevel;
    /**
     * Create fallback configuration when generation fails
     */
    private createFallbackConfiguration;
    /**
     * Merge options with defaults
     */
    private mergeWithDefaults;
    /**
     * Initialize default configuration templates
     */
    private initializeDefaultTemplates;
}
/**
 * Default auto-configuration options
 */
export declare const DEFAULT_AUTO_CONFIGURATION_OPTIONS: AutoConfigurationOptions;
//# sourceMappingURL=auto-configurator.d.ts.map