/**
 * edge-lexer
 *
 * (c) Edge
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
import { Scanner } from './scanner.js';
import type { Tags, Token, RuntimeTag, RuntimeComment, RuntimeMustache, TokenizerOptions } from './types.js';
/**
 * Tokenizer converts a bunch of text into an array of tokens. Later
 * these tokens can be used to build the transformed text.
 *
 * Go through the README file to learn more about the syntax and
 * the tokens output.
 */
export declare class Tokenizer {
    #private;
    /**
     * Lexer tokens
     */
    tokens: Token[];
    /**
     * Holds the current tag statement, until it is closed
     */
    tagStatement: null | {
        scanner: Scanner;
        tag: RuntimeTag;
    };
    /**
     * Holds the current mustache statement, until it is closed
     */
    mustacheStatement: null | {
        scanner: Scanner;
        mustache: RuntimeMustache | RuntimeComment;
    };
    constructor(template: string, tagsDef: Tags, options: TokenizerOptions);
    /**
     * Parse the template and generate an AST out of it
     */
    parse(): void;
}
