/** * Dictionary encoding for repetitive values * * Analyzes columns for repetitive values and creates compact dictionaries * to reduce token count and byte size. */ import type { Dictionary, DictionaryOptions } from './types.js'; /** * Builder for creating value dictionaries */ export declare class DictionaryBuilder { private options; constructor(options?: Partial); /** * Analyze array column for dictionary candidates * Returns null if dictionary wouldn't provide sufficient savings */ analyzeDictionaryCandidates(values: any[], columnName: string): Dictionary | null; /** * Select optimal encoding strategy based on unique value count */ private selectEncodingStrategy; /** * Convert number to alphabetic encoding (0 → A, 1 → B, ..., 25 → Z, 26 → AA, ...) * Robust implementation that handles any number of entries up to maxDictSize */ private numToAlpha; /** * Determine dictionary type based on original values */ private determineDictionaryType; /** * Build dictionary from column values */ buildDictionary(values: any[], columnName: string): Dictionary | null; /** * Encode values using dictionary */ encodeWithDictionary(values: any[], dictionary: Dictionary): (string | number)[]; /** * Generate TONL dictionary directive * * Format: @dict columnName: {encoded:original, ...} * Example: @dict role: {1:admin,2:user,3:editor} */ generateDictionaryDirective(dictionary: Dictionary): string; /** * Analyze multiple columns and build dictionaries for all eligible columns */ analyzeAllColumns(data: any[], columns: string[]): Map; } /** * Decoder for dictionary-encoded values */ export declare class DictionaryDecoder { private dictionaries; constructor(); /** * Parse dictionary directive and store mapping * * Format: @dict columnName: {encoded:original, ...} */ parseDictionaryDirective(directive: string): void; /** * Parse dictionary mappings (key:value pairs) */ private parseDictionaryMappings; /** * Decode a value using the column's dictionary */ decode(columnName: string, encodedValue: string | number): any; /** * Check if a column has a dictionary */ hasDictionary(columnName: string): boolean; /** * Get all dictionary column names */ getDictionaryColumns(): string[]; /** * Clear all dictionaries */ clear(): void; } //# sourceMappingURL=dictionary.d.ts.map