import { BaseProcessor, ProcessorOptions, ExtractStringsResult, TranslatedString, SourceString } from '../core/baseProcessor'; import { AACTree } from '../core/treeStructure'; import { ValidationResult } from '../validation/validationTypes'; import { ProcessorInput } from '../utils/io'; import { type ButtonForTranslation, type LLMLTranslationResult } from '../utilities/translation/translationProcessor'; declare class TouchChatProcessor extends BaseProcessor { readonly capabilities: { wordList: "none"; preservesAssetsOnSave: boolean; newCellCreation: "allowed"; }; private tree; private sourceFile; constructor(options?: ProcessorOptions); extractTexts(filePathOrBuffer: ProcessorInput): Promise; loadIntoTree(filePathOrBuffer: ProcessorInput): Promise; processTexts(filePathOrBuffer: ProcessorInput, translations: Map, outputPath: string): Promise; saveFromTree(tree: AACTree, outputPath: string): Promise; /** * Alias method for aac-tools-platform compatibility * Extracts strings with TouchChat-specific metadata required for database storage * @param filePath - Path to the TouchChat .ce file * @returns Promise with extracted strings and any errors */ extractStringsWithMetadata(filePath: string): Promise; /** * Alias method for generating translated TouchChat downloads compatible with aac-tools-platform * @param filePath - Path to the original TouchChat .ce file * @param translatedStrings - Array of translated string data * @param sourceStrings - Array of source string data with metadata * @returns Promise with path to the generated translated file */ generateTranslatedDownload(filePath: string, translatedStrings: TranslatedString[], sourceStrings: SourceString[]): Promise; /** * Validate TouchChat file format * @param filePath - Path to the file to validate * @returns Promise with validation result */ validate(filePath: string): Promise; /** * Extract symbol information from a TouchChat file for LLM-based translation. * Returns a structured format showing which buttons have symbols and their context. * * This method uses shared translation utilities that work across all AAC formats. * * @param filePathOrBuffer - Path to TouchChat .ce file or buffer * @returns Promise resolving to symbol information for LLM processing */ extractSymbolsForLLM(filePathOrBuffer: string | Buffer): Promise; /** * Apply LLM translations with symbol information. * The LLM should provide translations with symbol attachments in the correct positions. * * This method uses shared translation utilities that work across all AAC formats. * * @param filePathOrBuffer - Path to TouchChat .ce file or buffer * @param llmTranslations - Array of LLM translations with symbol info * @param outputPath - Where to save the translated TouchChat file * @param options - Translation options (e.g., allowPartial for testing) * @returns Promise resolving to a buffer of the translated TouchChat file */ processLLMTranslations(filePathOrBuffer: string | Uint8Array, llmTranslations: LLMLTranslationResult[], outputPath: string, options?: { allowPartial?: boolean; }): Promise; } export { TouchChatProcessor };