/** * Sentence Construction Analysis * * Calculates the effort required to construct test sentences * from the AAC board set, including spelling fallback for missing words. */ import { MetricsResult } from './types'; export interface SentenceAnalysis { sentence: string; words: string[]; effort: number; total_effort: number; typing: boolean; missing_words: string[]; word_efforts: Array<{ word: string; effort: number; typed: boolean; }>; } export declare class SentenceAnalyzer { /** * Analyze effort to construct a set of test sentences */ analyzeSentences(metrics: MetricsResult, sentences: string[][]): SentenceAnalysis[]; /** * Analyze effort to construct a single sentence */ analyzeSentence(metrics: MetricsResult, words: string[]): SentenceAnalysis; /** * Reconstruct sentence from word array */ private reconstructSentence; /** * Calculate statistics across all sentences */ calculateStatistics(analyses: SentenceAnalysis[]): { total_sentences: number; sentences_requiring_typing: number; sentences_without_typing: number; average_effort: number; min_effort: number; max_effort: number; median_effort: number; total_words: number; words_requiring_typing: number; typing_percent: number; }; }