import { Lifelog } from './limitless-client.js';
export interface SegmentMetrics {
    content: string;
    duration: number;
    wordCount: number;
    wpm: number;
    speakerIdentifier: string | null;
    speakerName: string | null;
    startOffset: number;
    endOffset: number;
    category: 'micro' | 'short' | 'medium' | 'long' | 'problematic';
}
export interface TurnTransition {
    gapDuration: number;
    fromSpeaker: string;
    toSpeaker: string;
    responseType: 'quick' | 'normal' | 'slow' | 'delayed';
}
export interface ConversationContext {
    type: 'presentation' | 'discussion' | 'casual' | 'automated' | 'unknown';
    confidence: number;
    indicators: string[];
}
export interface EngagementMetrics {
    microResponseCount: number;
    microResponseRate: number;
    responsiveWordCount: number;
    responsiveWordRate: number;
    totalTransitions: number;
    quickResponseCount: number;
    quickResponseRatio: number;
    averageResponseTime: number;
    medianResponseTime: number;
}
export interface FluencyMetrics {
    validSegmentCount: number;
    validSegmentRatio: number;
    meanWPM: number;
    medianWPM: number;
    wpmStandardDeviation: number;
    wpmConsistency: number;
    realisticWPMRatio: number;
    avgSegmentDuration: number;
    medianSegmentDuration: number;
    segmentDurationVariability: number;
}
export interface InteractionMetrics {
    totalSpeakers: number;
    speakerTransitions: number;
    userSpeakingTime: number;
    totalValidSpeakingTime: number;
    userSpeakingRatio: number;
    conversationBalance: number;
    overlapsDetected: number;
    longPauseCount: number;
    silenceRatio: number;
}
export interface DataQualityMetrics {
    totalSegments: number;
    categorizedSegments: {
        micro: number;
        short: number;
        medium: number;
        long: number;
        problematic: number;
    };
    anomalies: {
        zeroLengthSegments: number;
        negativeGaps: number;
        suspiciouslyLongGaps: number;
        unrealisticWPM: number;
    };
    dataReliability: 'high' | 'medium' | 'low';
    confidenceScore: number;
}
export interface ValidatedSpeechVitality {
    engagement: EngagementMetrics;
    fluency: FluencyMetrics;
    interaction: InteractionMetrics;
    context: ConversationContext;
    dataQuality: DataQualityMetrics;
    overallScore: number;
    engagementScore: number;
    fluencyScore: number;
    interactionScore: number;
    analysisTimestamp: Date;
    conversationDuration: number;
    analysisVersion: string;
}
export declare class ValidatedSpeechVitalityAnalyzer {
    private static readonly RESPONSIVE_WORDS;
    private static readonly VERSION;
    /**
     * Main analysis entry point - scientifically validated approach
     */
    static analyze(lifelogs: Lifelog[]): ValidatedSpeechVitality;
    /**
     * Extract all segments from lifelogs with proper validation
     */
    private static extractAllSegments;
    /**
     * Categorize individual segment by duration and content
     */
    private static categorizeSegment;
    /**
     * Group segments by category for analysis
     */
    private static categorizeSegments;
    /**
     * Analyze engagement through micro-responsiveness and turn-taking
     * Validated: 7-14% micro baseline, >20% = highly engaged
     */
    private static analyzeEngagement;
    /**
     * Analyze fluency using filtered, validated segments only
     * Validated: 47-58% segments suitable, 100-250 WPM realistic
     */
    private static analyzeFluency;
    /**
     * Analyze interaction patterns and conversational dynamics
     */
    private static analyzeInteraction;
    /**
     * Calculate turn transitions between speakers
     */
    private static calculateTurnTransitions;
    /**
     * Detect conversation context based on validated patterns
     */
    private static detectContext;
    /**
     * Assess overall data quality and reliability
     */
    private static assessDataQuality;
    /**
     * Calculate composite scores (0-100) from validated metrics
     */
    private static calculateCompositeScores;
    /**
     * Calculate total conversation duration from lifelogs
     */
    private static calculateTotalDuration;
    private static mean;
    private static median;
    private static standardDeviation;
}
//# sourceMappingURL=speech-vitality-index.d.ts.map