/**
 * Voice Calibration System
 *
 * Fine-tunes voice detection and transformation accuracy across different domains
 * (academic, technical, executive, casual) through systematic calibration and optimization.
 */
import { VoiceAnalyzer } from './voice-analyzer.js';
import { ContentDiversifier, Voice } from './content-diversifier.js';
export interface VoiceCharacteristics {
    formality: number;
    technicality: number;
    assertiveness: number;
    complexity: number;
    sentenceLength: {
        avg: number;
        min: number;
        max: number;
        variance: number;
    };
    vocabularyLevel: 'basic' | 'intermediate' | 'advanced' | 'expert';
    firstPersonUsage: number;
    passiveVoiceRatio: number;
}
export interface VoiceMarker {
    type: 'vocabulary' | 'structure' | 'tone' | 'perspective';
    indicator: string;
    weight: number;
    examples: string[];
}
export interface VoiceProfile {
    voice: Voice;
    characteristics: VoiceCharacteristics;
    markers: VoiceMarker[];
    detectionConfidence: number;
}
export interface CalibrationConfig {
    voice: Voice;
    targetCharacteristics?: Partial<VoiceCharacteristics>;
    trainingCorpus?: string[];
    validationCorpus?: string[];
}
export interface ValidationResults {
    truePositives: number;
    falsePositives: number;
    falseNegatives: number;
    trueNegatives: number;
    precision: number;
    recall: number;
    f1Score: number;
}
export interface CalibrationResult {
    voice: string;
    beforeAccuracy: number;
    afterAccuracy: number;
    improvement: number;
    characteristicsAdjusted: string[];
    validationResults: ValidationResults;
}
export interface DetectionAccuracyResult {
    voice: string;
    accuracy: number;
    precision: number;
    recall: number;
    f1Score: number;
    confidentCorrect: number;
    confidentWrong: number;
    samples: number;
}
export interface ConfusionMatrix {
    matrix: Record<string, Record<string, number>>;
    accuracy: number;
    perVoiceAccuracy: Record<string, number>;
}
export interface TuningResult {
    characteristic: string;
    beforeValue: number;
    afterValue: number;
    improvement: number;
    accuracy: number;
}
export interface TransformationAccuracyResult {
    fromVoice: string;
    toVoice: string;
    accuracy: number;
    averageConfidence: number;
    fidelity: number;
    samples: number;
}
export interface TransformationOptimizationConfig {
    fromVoice: Voice;
    toVoice: Voice;
    corpus: string[];
    targetFidelity?: number;
}
export interface OptimizationResult {
    fromVoice: string;
    toVoice: string;
    beforeFidelity: number;
    afterFidelity: number;
    improvement: number;
    adjustmentsMade: string[];
}
export interface CalibrationReport {
    voice: string;
    profile: VoiceProfile;
    accuracy: DetectionAccuracyResult;
    markers: {
        total: number;
        byType: Record<string, number>;
        averageWeight: number;
    };
    characteristics: VoiceCharacteristics;
    recentCalibrations: CalibrationResult[];
}
export interface ProfileComparisonResult {
    voice1: string;
    voice2: string;
    similarity: number;
    differences: {
        characteristic: string;
        value1: number;
        value2: number;
        delta: number;
    }[];
    distinguishingMarkers: {
        voice1Only: VoiceMarker[];
        voice2Only: VoiceMarker[];
    };
}
/**
 * Voice Calibration System for fine-tuning detection and transformation
 */
export declare class VoiceCalibration {
    private analyzer;
    private diversifier;
    private profiles;
    private calibrationHistory;
    constructor(analyzer: VoiceAnalyzer, diversifier: ContentDiversifier);
    /**
     * Calibrate a specific voice using training and validation corpora
     */
    calibrateVoice(config: CalibrationConfig): Promise<CalibrationResult>;
    /**
     * Calibrate all voices using a corpus map
     */
    calibrateAllVoices(corpus: Map<string, string[]>): Promise<Map<string, CalibrationResult>>;
    /**
     * Get voice profile
     */
    getVoiceProfile(voice: string): VoiceProfile;
    /**
     * Update voice profile
     */
    updateVoiceProfile(voice: string, updates: Partial<VoiceProfile>): void;
    /**
     * Create custom voice profile
     */
    createCustomVoiceProfile(name: string, characteristics: VoiceCharacteristics, markers: VoiceMarker[]): VoiceProfile;
    /**
     * Test detection accuracy for a voice
     */
    testDetectionAccuracy(voice: string, corpus: string[]): Promise<DetectionAccuracyResult>;
    /**
     * Validate cross-voice detection
     */
    validateCrossVoiceDetection(testSet: Map<string, string[]>): Promise<ConfusionMatrix>;
    /**
     * Tune a specific characteristic
     */
    tuneCharacteristic(voice: string, characteristic: keyof VoiceCharacteristics, target: number): Promise<TuningResult>;
    /**
     * Tune all characteristics
     */
    tuneAllCharacteristics(voice: string, targets: Partial<VoiceCharacteristics>): Promise<TuningResult[]>;
    /**
     * Optimize markers for a voice
     */
    optimizeMarkers(voice: string, corpus: string[]): Promise<VoiceMarker[]>;
    /**
     * Add marker to voice profile
     */
    addMarker(voice: string, marker: VoiceMarker): Promise<void>;
    /**
     * Remove marker from voice profile
     */
    removeMarker(voice: string, markerType: string, indicator: string): Promise<void>;
    /**
     * Test transformation accuracy
     */
    testTransformationAccuracy(fromVoice: string, toVoice: string, corpus: string[]): Promise<TransformationAccuracyResult>;
    /**
     * Optimize transformations
     */
    optimizeTransformations(config: TransformationOptimizationConfig): Promise<OptimizationResult>;
    /**
     * Generate calibration report
     */
    generateCalibrationReport(voice: string): CalibrationReport;
    /**
     * Compare two voice profiles
     */
    compareVoiceProfiles(voice1: string, voice2: string): ProfileComparisonResult;
    /**
     * Export voice profiles
     */
    exportVoiceProfiles(format: 'json' | 'yaml'): string;
    /**
     * Import voice profiles
     */
    importVoiceProfiles(data: string, format?: 'json' | 'yaml'): void;
    private loadVoiceProfiles;
    private measureAccuracy;
    private calculateValidationResults;
    private isValidVoice;
    private generateTestCorpus;
    private generateSampleText;
    private calculateTransformationFidelity;
    private estimateFormality;
}
//# sourceMappingURL=voice-calibration.d.ts.map