import EventEmitter from '../../../utils/eventemitter/EventEmitter'; export default BracketParser; declare namespace BracketParser { /** * Convert a string value. */ type ValueConvertCallback = (s: string) => any; /** * Translate tag name. */ type TranslateTagNameCallbackType = (s: string) => string; interface IConfig { /** * True to allow tags across multiple lines. */ multipleLinesTag?: boolean, /** * Tag delimiters. */ delimiters?: string | [string, string], /** * Value conversion setting. */ valueConvert?: boolean | ValueConvertCallback, /** * Translate tag name callback. */ translateTagNameCallback?: TranslateTagNameCallbackType, /** * Event emitter or false to disable. */ eventEmitter?: EventEmitter | false, /** * True to loop parsing. */ loop?: boolean } } /** * Base bracket parser with start/pause control. */ declare class BracketParser extends EventEmitter { /** * Create a bracket parser. * @param config - Parser configuration. */ constructor( config?: BracketParser.IConfig ); /** * Start parsing text. * @param text - Text to parse. * @returns This instance. */ start(text: string): this; /** * Pause parsing. * @returns This instance. */ pause(): this; /** * Pause until an event is emitted. * @param eventEmitter - Event emitter. * @param eventName - Event name. * @returns This instance. */ pauseUntilEvent( eventEmitter: EventEmitter, eventName: string ): this; /** * Parse the next token. * @returns This instance. */ next(): this; /** * Restart parsing. * @returns This instance. */ restart(): this; /** * Skip current event. * @returns This instance. */ skipEvent(): this; /** * True if parser is running. */ readonly isRunning: boolean; /** * True if parser is paused. */ readonly isPaused: boolean; /** * Set delimiters. * @param delimiterLeft - Left delimiter. * @param delimiterRight - Right delimiter. * @returns This instance. */ setDelimiters(delimiterLeft: string, delimiterRight?: string): this; /** * Set translate tag name callback. * @param callback - Callback function. * @returns This instance. */ setTranslateTagNameCallback(callback?: BracketParser.TranslateTagNameCallbackType): this; /** * Last parsed tag source. */ readonly lastTagSource: string; }