import { AACTree, AACSemanticCategory, AACSemanticIntent } from '../../core/treeStructure'; import { FileAdapter, ProcessorInput } from '../../utils/io'; /** * Build a map of button IDs to resolved image entries for a specific page. * Mirrors the Grid helper for consumers that expect image reference data. */ export declare function getPageTokenImageMap(tree: AACTree, pageId: string): Map; /** * Collect all image entry paths referenced in a Snap tree. * Returns the set of symbol identifiers (e.g., "SYM:12345") that are referenced by buttons. */ export declare function getAllowedImageEntries(tree: AACTree): Set; /** * Read a binary asset from a Snap pageset. * @param dbOrFile Path to Snap .sps/.spb file or Buffer containing the file data * @param entryPath Symbol identifier (e.g., "SYM:12345") * @returns Image data buffer or null if not found */ export declare function openImage(dbOrFile: ProcessorInput, entryPath: string, fileAdapter?: FileAdapter): Promise; /** * Snap package path information */ export interface SnapPackagePath { packageName: string; packagePath: string; } export interface SnapUserInfo { userId: string; userPath: string; vocabPaths: string[]; } export interface SnapUsageEntry { id: string; content: string; occurrences: Array<{ timestamp: Date; modeling?: boolean; accessMethod?: number | null; type?: 'button' | 'action' | 'utterance' | 'note' | 'other'; buttonId?: string | null; intent?: AACSemanticIntent | string; category?: AACSemanticCategory; }>; platform?: { label?: string; message?: string; buttonId?: string; }; } /** * Find Tobii Communicator Snap package paths * Searches in %LOCALAPPDATA%\Packages for Snap-related packages * @param packageNamePattern Optional pattern to filter package names (default: 'TobiiDynavox') * @returns Array of Snap package path information */ export declare function findSnapPackages(packageNamePattern?: string, fileAdapter?: FileAdapter): Promise; /** * Find the first Snap package path matching the pattern * Convenience method for when you expect only one Snap installation * @param packageNamePattern Optional pattern to filter package names (default: 'TobiiDynavox') * @returns Path to the first matching Snap package, or null if not found */ export declare function findSnapPackagePath(packageNamePattern?: string, fileAdapter?: FileAdapter): Promise; /** * Find Snap user directories and their vocab files (.sps/.spb) * Typical path: * C:\Users\{username}\AppData\Roaming\Tobii Dynavox\Snap Scene\Users\{userId}\ * @param packageNamePattern Optional package filter (default TobiiDynavox) * @returns Array of user info with vocab paths */ export declare function findSnapUsers(packageNamePattern?: string, fileAdapter?: FileAdapter): Promise; /** * Find vocab files for a specific Snap user (or all users) * @param userId Optional user identifier filter (case-sensitive directory name) * @param packageNamePattern Optional package filter * @returns Array of vocab file paths */ export declare function findSnapUserVocabularies(userId?: string, packageNamePattern?: string, fileAdapter?: FileAdapter): Promise; /** * Attempt to find history/analytics files for a Snap user by name * Currently searches for files containing "history" under the user directory * @param userId User identifier (directory name) * @param packageNamePattern Optional package filter * @returns Array of history file paths (may be empty if not found) */ export declare function findSnapUserHistory(userId: string, packageNamePattern?: string, fileAdapter?: FileAdapter): Promise; /** * Check whether TD Snap appears to be installed (Windows only) */ export declare function isSnapInstalled(packageNamePattern?: string): boolean; /** * Read Snap usage history from a pageset file (.sps/.spb) */ export declare function readSnapUsage(pagesetPath: string, fileAdapter?: FileAdapter): Promise; /** * Read Snap usage history for a user (all pagesets) */ export declare function readSnapUsageForUser(userId?: string, packageNamePattern?: string): Promise;