/**
 * Manual Override System for Epic 2: Smart Platform Detection Engine
 * Provides manual override capabilities and validation for detection results
 * Part of Task 2.1.6: Add manual override support and validation
 */
import { PlatformArchitectureType, ContentDomainType, PlatformArchitectureDetectionResult, ArchitectureEvidence, OverrideValidationResult } from './detection-types';
/**
 * Manual override configuration
 */
export interface ManualOverrideConfig {
    /** Force specific architecture type */
    architectureType?: PlatformArchitectureType;
    /** Force specific content domain */
    contentDomain?: ContentDomainType;
    /** Override confidence score */
    confidenceOverride?: number;
    /** Force specific platform features to be present/absent */
    platformFeatures?: Record<string, boolean>;
    /** Add custom evidence to support the override */
    customEvidence?: ArchitectureEvidence[];
    /** Custom reasoning to include in results */
    customReasoning?: string[];
    /** Override specific detection metrics */
    metricOverrides?: {
        schemaComplexity?: number;
        evidenceCount?: number;
    };
    /** Validation preferences */
    validation?: {
        /** Whether to validate against existing evidence */
        validateAgainstEvidence: boolean;
        /** Whether to allow overrides that conflict with high-confidence evidence */
        allowHighConfidenceConflicts: boolean;
        /** Minimum confidence required to override */
        minimumConfidenceToOverride: number;
        /** Whether to include warnings in validation */
        includeWarnings: boolean;
    };
    /** Metadata about the override */
    metadata?: {
        /** Reason for the override */
        reason: string;
        /** Who created the override */
        createdBy?: string;
        /** When the override was created */
        createdAt?: string;
        /** Override version for tracking */
        version?: string;
    };
}
/**
 * Override application result
 */
export interface OverrideApplicationResult {
    /** The modified detection result */
    result: PlatformArchitectureDetectionResult;
    /** Validation result of the override */
    validation: OverrideValidationResult;
    /** Applied overrides summary */
    appliedOverrides: {
        architectureTypeOverridden: boolean;
        confidenceOverridden: boolean;
        featuresOverridden: string[];
        evidenceAdded: number;
        reasoningAdded: number;
    };
    /** Override metadata */
    metadata: {
        overrideId: string;
        applicationTime: string;
        originalResult: {
            architectureType: PlatformArchitectureType;
            confidence: number;
        };
    };
}
/**
 * Override conflict information
 */
export interface OverrideConflict {
    /** Type of conflict */
    type: 'evidence_conflict' | 'confidence_conflict' | 'feature_conflict';
    /** Description of the conflict */
    description: string;
    /** Severity of the conflict */
    severity: 'low' | 'medium' | 'high';
    /** Conflicting evidence or features */
    conflictingItems: string[];
    /** Suggested resolution */
    suggestedResolution: string;
}
/**
 * Manual Override Manager
 */
export declare class ManualOverrideManager {
    private overrideHistory;
    /**
     * Apply manual overrides to a detection result
     */
    applyOverrides(originalResult: PlatformArchitectureDetectionResult, overrides: ManualOverrideConfig): Promise<OverrideApplicationResult>;
    /**
     * Validate manual override against existing evidence
     */
    validateOverride(originalResult: PlatformArchitectureDetectionResult, overrides: ManualOverrideConfig): Promise<OverrideValidationResult>;
    /**
     * Validate architecture type override
     */
    private validateArchitectureTypeOverride;
    /**
     * Validate confidence override
     */
    private validateConfidenceOverride;
    /**
     * Validate platform feature overrides
     */
    private validateFeatureOverrides;
    /**
     * Validate custom evidence
     */
    private validateCustomEvidence;
    /**
     * Update recommendations based on applied overrides
     */
    private updateRecommendationsForOverrides;
    /**
     * Generate a unique override ID
     */
    private generateOverrideId;
    /**
     * Calculate confidence level from confidence score
     */
    private calculateConfidenceLevel;
    /**
     * Generate feature name from feature ID
     */
    private generateFeatureName;
    /**
     * Infer feature category from feature ID
     */
    private inferFeatureCategory;
    /**
     * Record override in history for tracking
     */
    private recordOverrideInHistory;
    /**
     * Get override history for analysis
     */
    getOverrideHistory(overrideId?: string): ManualOverrideConfig[];
    /**
     * Clear override history
     */
    clearOverrideHistory(): void;
    /**
     * Create a pre-configured override for common scenarios
     */
    createTemplateOverride(scenario: 'force_individual' | 'force_team' | 'force_hybrid' | 'high_confidence' | 'low_confidence'): Partial<ManualOverrideConfig>;
}
/**
 * Default manual override validation configuration
 */
export declare const DEFAULT_OVERRIDE_VALIDATION: {
    validateAgainstEvidence: boolean;
    allowHighConfidenceConflicts: boolean;
    minimumConfidenceToOverride: number;
    includeWarnings: boolean;
};
//# sourceMappingURL=manual-overrides.d.ts.map