export type PersonaCategory = 'technical' | 'process' | 'knowledge';
export type ActivationReason = 'manual' | 'automatic';
export type CollaborationStrategy = 'single_persona' | 'multi_persona' | 'comprehensive' | 'isolated' | 'collaborative' | 'manual_selection' | 'focus_driven';
export interface AutoActivationConfig {
    keywords: string[];
    file_patterns: string[];
    confidence_threshold: number;
}
export interface PersonaConfig {
    category: PersonaCategory;
    description: string;
    specializations: string[];
    auto_activation: AutoActivationConfig;
    compatible_with: string[];
    priority_hierarchy: string[];
}
export interface ActivePersona {
    name: string;
    confidence: number;
    activationReason: ActivationReason;
    reasoning?: string;
    category: PersonaCategory;
    specializations: string[];
}
export interface CollaborationPattern {
    personas: string[];
    description: string;
    synergy: 'positive' | 'neutral' | 'negative';
    leadPersona: string;
}
export interface ValidationStep {
    type: 'security' | 'quality' | 'performance';
    personas: string[];
    description: string;
}
export interface CollaborationPlan {
    strategy: CollaborationStrategy;
    leadPersona: string | null;
    consultingPersonas?: string[];
    collaborationPatterns?: CollaborationPattern[];
    validationChain?: ValidationStep[];
}
export interface DetectionResults {
    recommendations: PersonaRecommendation[];
    sessionContext: unknown;
    analysisDetails: unknown;
}
export interface PersonaRecommendation {
    persona: string;
    confidence: number;
    reasoning: string;
    breakdown: {
        keyword_matching: number;
        context_analysis: number;
        file_patterns: number;
        user_history: number;
    };
}
export interface PersonaActivationResult {
    activePersonas: ActivePersona[];
    reasoning: string;
    detectionResults?: DetectionResults | null;
    manualMode?: boolean;
    automaticMode?: boolean;
    fallbackMode?: boolean;
    collaboration?: CollaborationPlan;
}
export interface SessionMemory {
    interactions: PersonaInteraction[];
    preferences: Record<string, unknown>;
    successfulPatterns: SuccessfulPattern[];
    feedbackHistory: FeedbackRecord[];
    activationHistory: ActivationHistory[];
    lastAnalysis?: Date;
}
export interface PersonaInteraction {
    input: string;
    personas: string[];
    activationType: ActivationReason;
    confidence: number[];
    context: Record<string, unknown>;
    timestamp?: string;
}
export interface PersonaFeedback {
    personas: string[];
    rating: number;
    comments?: string;
    effectiveness?: number;
    timestamp?: string;
    context?: Record<string, unknown>;
}
export interface SuccessfulPattern {
    personas: string[];
    context: unknown;
    timestamp: number;
}
export interface FeedbackRecord {
    type: 'feedback';
    personas: string[];
    rating: number;
    comments?: string;
    context: unknown;
    timestamp: number;
}
export interface ActivationHistory {
    timestamp: number;
    personas: string[];
    activationType: ActivationReason;
    confidence: number[];
    input: string;
}
export interface SystemAnalytics {
    personaManager: PersonaManagerAnalytics;
    learning: LearningAnalytics;
    systemHealth: SystemHealth;
}
export interface PersonaManagerAnalytics {
    totalInteractions: number;
    personaUsage: Record<string, {
        count: number;
        totalConfidence: number;
    }>;
    collaborationPatterns: Record<string, number>;
    averageConfidence: number;
    successfulPatterns: number;
}
export interface LearningAnalytics {
    sessionStats: {
        interactions: number;
        feedback: number;
        patterns: number;
        sessionDuration: number;
    };
    persistentStats: {
        successfulPatterns: number;
        failedPatterns: number;
        totalLearningEvents: number;
    };
    learningEffectiveness: number;
    topPatterns: {
        pattern: string;
        usage: number;
        rating: number;
        personas: string[];
    }[];
    recommendations: {
        type: string;
        message: string;
        priority: string;
    }[];
}
export interface SystemHealth {
    initialized: boolean;
    availablePersonas: number;
    activePersonas: number;
    lastUpdate?: string;
}
export interface GeneratedPrompt {
    systemPrompt: string;
    personaContext: PersonaContext | null;
    collaboration?: CollaborationPlan | null;
    learningIntegration?: unknown;
    flagIntegration?: unknown;
    userInput?: string;
    context?: unknown;
}
export interface PersonaContext {
    active: ActivePersonaInfo[];
    collaboration: CollaborationPlan;
}
export interface ActivePersonaInfo {
    name: string;
    confidence: number;
    role: 'lead' | 'supporting';
}
//# sourceMappingURL=personas.d.ts.map