import { SentimentResult } from '../utils/sentimentAnalysis'; import { VoiceAnalysisResult } from '../utils/voiceAnalysis'; import { TypingPattern, ClickPattern } from '../utils/interactionAnalysis'; import { FacialExpression } from '../utils/facialAnalysis'; /** * Emotion state interface */ export interface EmotionState { primary: 'positive' | 'negative' | 'neutral' | 'frustrated' | 'excited' | 'confused'; confidence: number; intensity: number; sources: { text?: SentimentResult; voice?: VoiceAnalysisResult; typing?: TypingPattern; clicks?: ClickPattern; facial?: FacialExpression; }; timestamp: number; } /** * Emotion event interface */ export interface EmotionEvent { type: 'frustration' | 'excitement' | 'confusion' | 'satisfaction'; trigger: string; emotion: EmotionState; timestamp: number; } /** * Emotion store composable */ export declare function useEmotionStore(): { currentEmotion: import('vue').Ref<{ primary: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; sources: { text?: { emotion: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; keywords: string[]; } | undefined; voice?: { pitch: number; speed: number; energy: number; emotion: "neutral" | "excited" | "calm" | "stressed"; confidence: number; } | undefined; typing?: { speed: number; corrections: number; pauses: number; emotion: "frustrated" | "focused" | "hesitant" | "confident"; } | undefined; clicks?: { rageClicks: number; hesitation: number; precision: number; emotion: "frustrated" | "confident" | "uncertain"; } | undefined; facial?: { emotion: "neutral" | "confused" | "happy" | "sad" | "angry" | "surprised"; confidence: number; features: { smiling: number; eyebrowsRaised: number; eyesWide: number; }; } | undefined; }; timestamp: number; }, EmotionState | { primary: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; sources: { text?: { emotion: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; keywords: string[]; } | undefined; voice?: { pitch: number; speed: number; energy: number; emotion: "neutral" | "excited" | "calm" | "stressed"; confidence: number; } | undefined; typing?: { speed: number; corrections: number; pauses: number; emotion: "frustrated" | "focused" | "hesitant" | "confident"; } | undefined; clicks?: { rageClicks: number; hesitation: number; precision: number; emotion: "frustrated" | "confident" | "uncertain"; } | undefined; facial?: { emotion: "neutral" | "confused" | "happy" | "sad" | "angry" | "surprised"; confidence: number; features: { smiling: number; eyebrowsRaised: number; eyesWide: number; }; } | undefined; }; timestamp: number; }>; emotionHistory: import('vue').Ref<{ primary: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; sources: { text?: { emotion: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; keywords: string[]; } | undefined; voice?: { pitch: number; speed: number; energy: number; emotion: "neutral" | "excited" | "calm" | "stressed"; confidence: number; } | undefined; typing?: { speed: number; corrections: number; pauses: number; emotion: "frustrated" | "focused" | "hesitant" | "confident"; } | undefined; clicks?: { rageClicks: number; hesitation: number; precision: number; emotion: "frustrated" | "confident" | "uncertain"; } | undefined; facial?: { emotion: "neutral" | "confused" | "happy" | "sad" | "angry" | "surprised"; confidence: number; features: { smiling: number; eyebrowsRaised: number; eyesWide: number; }; } | undefined; }; timestamp: number; }[], EmotionState[] | { primary: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; sources: { text?: { emotion: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; keywords: string[]; } | undefined; voice?: { pitch: number; speed: number; energy: number; emotion: "neutral" | "excited" | "calm" | "stressed"; confidence: number; } | undefined; typing?: { speed: number; corrections: number; pauses: number; emotion: "frustrated" | "focused" | "hesitant" | "confident"; } | undefined; clicks?: { rageClicks: number; hesitation: number; precision: number; emotion: "frustrated" | "confident" | "uncertain"; } | undefined; facial?: { emotion: "neutral" | "confused" | "happy" | "sad" | "angry" | "surprised"; confidence: number; features: { smiling: number; eyebrowsRaised: number; eyesWide: number; }; } | undefined; }; timestamp: number; }[]>; emotionEvents: import('vue').Ref<{ type: "frustration" | "excitement" | "confusion" | "satisfaction"; trigger: string; emotion: { primary: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; sources: { text?: { emotion: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; keywords: string[]; } | undefined; voice?: { pitch: number; speed: number; energy: number; emotion: "neutral" | "excited" | "calm" | "stressed"; confidence: number; } | undefined; typing?: { speed: number; corrections: number; pauses: number; emotion: "frustrated" | "focused" | "hesitant" | "confident"; } | undefined; clicks?: { rageClicks: number; hesitation: number; precision: number; emotion: "frustrated" | "confident" | "uncertain"; } | undefined; facial?: { emotion: "neutral" | "confused" | "happy" | "sad" | "angry" | "surprised"; confidence: number; features: { smiling: number; eyebrowsRaised: number; eyesWide: number; }; } | undefined; }; timestamp: number; }; timestamp: number; }[], EmotionEvent[] | { type: "frustration" | "excitement" | "confusion" | "satisfaction"; trigger: string; emotion: { primary: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; sources: { text?: { emotion: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; keywords: string[]; } | undefined; voice?: { pitch: number; speed: number; energy: number; emotion: "neutral" | "excited" | "calm" | "stressed"; confidence: number; } | undefined; typing?: { speed: number; corrections: number; pauses: number; emotion: "frustrated" | "focused" | "hesitant" | "confident"; } | undefined; clicks?: { rageClicks: number; hesitation: number; precision: number; emotion: "frustrated" | "confident" | "uncertain"; } | undefined; facial?: { emotion: "neutral" | "confused" | "happy" | "sad" | "angry" | "surprised"; confidence: number; features: { smiling: number; eyebrowsRaised: number; eyesWide: number; }; } | undefined; }; timestamp: number; }; timestamp: number; }[]>; updateFromText: (sentiment: SentimentResult) => void; updateFromVoice: (voice: VoiceAnalysisResult) => void; updateFromTyping: (typing: TypingPattern) => void; updateFromClicks: (clicks: ClickPattern) => void; updateFromFacial: (facial: FacialExpression) => void; updateEmotion: (newEmotion: EmotionState) => void; onEmotionEvent: (callback: (event: EmotionEvent) => void) => () => void; getEmotionHistory: (minutes?: number) => { primary: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; sources: { text?: { emotion: "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; confidence: number; intensity: number; keywords: string[]; } | undefined; voice?: { pitch: number; speed: number; energy: number; emotion: "neutral" | "excited" | "calm" | "stressed"; confidence: number; } | undefined; typing?: { speed: number; corrections: number; pauses: number; emotion: "frustrated" | "focused" | "hesitant" | "confident"; } | undefined; clicks?: { rageClicks: number; hesitation: number; precision: number; emotion: "frustrated" | "confident" | "uncertain"; } | undefined; facial?: { emotion: "neutral" | "confused" | "happy" | "sad" | "angry" | "surprised"; confidence: number; features: { smiling: number; eyebrowsRaised: number; eyesWide: number; }; } | undefined; }; timestamp: number; }[]; getDominantEmotion: (minutes?: number) => "positive" | "negative" | "neutral" | "frustrated" | "excited" | "confused"; clearHistory: () => void; reset: () => void; };