import { BaseTokenReader } from './BaseTokenReader'; import { Lexeme } from '../models/Lexeme'; /** * Manages and coordinates multiple token readers */ export declare class TokenReaderManager { private readers; private input; private position; constructor(input: string, position?: number); /** * Register a token reader * @param reader The reader to register * @returns This manager instance for chaining */ register(reader: BaseTokenReader): TokenReaderManager; /** * Register multiple token readers * @param readers The readers to register * @returns This manager instance for chaining */ registerAll(readers: BaseTokenReader[]): TokenReaderManager; /** * Try to read a token using all registered readers * @param position The position to read from * @param previous The previous token, if any * @returns The lexeme if a reader could read it, null otherwise */ tryRead(position: number, previous: Lexeme | null): Lexeme | null; /** * Get the maximum position among all readers */ getMaxPosition(): number; /** * Get the input string */ getInput(): string; /** * Get cache statistics */ getCacheStats(): { hits: number; misses: number; ratio: number; }; }