/** * Vocabulary Coverage Analysis * * Analyzes how well an AAC board set covers core vocabulary * and identifies missing/extra words compared to reference lists. */ import { MetricsResult } from './types'; import { type ReferenceDataProvider } from '../reference/index'; export interface VocabularyAnalysis { core_coverage: { [listId: string]: { name: string; total_words: number; covered: number; missing: number; coverage_percent: number; missing_words: string[]; average_effort: number; }; }; total_unique_words: number; words_with_effort: number; words_requiring_spelling: number; extra_words: string[]; high_effort_words: Array<{ word: string; effort: number; }>; low_effort_words: Array<{ word: string; effort: number; }>; } export declare class VocabularyAnalyzer { private referenceLoader; constructor(referenceLoader?: ReferenceDataProvider); /** * Analyze vocabulary coverage against core lists */ analyze(metrics: MetricsResult, options?: { locale?: string; highEffortThreshold?: number; lowEffortThreshold?: number; }): Promise; /** * Analyze coverage for a single core list */ private analyzeCoreList; /** * Calculate coverage percentage for a specific word list */ calculateCoverage(wordList: string[], metrics: MetricsResult): { covered: string[]; missing: string[]; coverage_percent: number; }; /** * Get effort for a word, or calculate spelling effort if missing */ getWordEffort(word: string, metrics: MetricsResult): number; /** * Check if a word is in the board set * * Checks both direct button labels and smart grammar word forms * (morphological inflections stored as predictions). */ hasWord(word: string, metrics: MetricsResult): boolean; }