/**
 * @typedef {"command"
 *   | "ident"
 *   | "infix"
 *   | "number"
 *   | "operator"
 *   | "paren.close"
 *   | "paren.open"
 *   | "prefix"
 *   | "sep.col"
 *   | "sep.row"
 *   | "space"
 *   | "text"} TokenType
 *
 * @typedef {object} Token
 * @property {TokenType} type
 * @property {string} value
 * @property {string} [accent]
 * @property {number} [arity]
 * @property {string} [name]
 * @property {boolean} [split] - Can be broken up into smaller units.
 * @property {boolean} [sep] - Can function as a group seperator.
 * @property {Record<string, string | number | boolean | null | undefined>} [attrs]
 * @property {Token[]} [extraTokensAfter]
 *
 * @typedef {object} State
 * @property {number} start
 * @property {boolean} grouping
 *
 * @typedef {object} TokenizerOptions
 * @property {string} [decimalMark="."] - Decimal separator. Default is `"."`
 * @property {string} [colSep=","] - Column separator e.g. for arrays and
 *   matrices. Default is `","`
 * @property {string} [rowSep=";"] - Row separator e.g. for matrices. Default is
 *   `";"`
 *
 * @param {Required<TokenizerOptions>} options
 * @returns {(input: string) => Generator<Token>}
 */
export default function createTokenizer(options: Required<TokenizerOptions>): (input: string) => Generator<Token>;
export type TokenType = "command" | "ident" | "infix" | "number" | "operator" | "paren.close" | "paren.open" | "prefix" | "sep.col" | "sep.row" | "space" | "text";
export type Token = {
    type: TokenType;
    value: string;
    accent?: string;
    arity?: number;
    name?: string;
    /**
     * - Can be broken up into smaller units.
     */
    split?: boolean;
    /**
     * - Can function as a group seperator.
     */
    sep?: boolean;
    attrs?: Record<string, string | number | boolean | null | undefined>;
    extraTokensAfter?: Token[];
};
export type State = {
    start: number;
    grouping: boolean;
};
export type TokenizerOptions = {
    /**
     * - Decimal separator. Default is `"."`
     */
    decimalMark?: string;
    /**
     * - Column separator e.g. for arrays and
     * matrices. Default is `","`
     */
    colSep?: string;
    /**
     * - Row separator e.g. for matrices. Default is
     * `";"`
     */
    rowSep?: string;
};
//# sourceMappingURL=index.d.ts.map