import { Lexer, Parser } from "antlr4ts";
import { VocabularyPack } from "../utils/vocabularyPack";
import { RuleToken } from "./ruleToken";
export declare const rgxEscape: RegExp;
export declare const rgxReplace = "\\$&";
export declare class RuleTokenizer<L extends Lexer, P extends Parser> {
    private vocabulary;
    private readonly context;
    constructor(vocabulary: VocabularyPack<L, P>);
    tokenize(declaration: string): RuleToken[];
    private isAtom;
    private isModifier;
    private addToken;
    private finishAtom;
    private finishModifier;
    private unexpected;
    private clearContext;
    private lastToken;
    ruleName(declaration: string, index: number): string;
    static alternatives(tokens: RuleToken[]): RuleToken[][];
    static parentheses(tokens: RuleToken[]): RuleToken[][];
    static unnest(tokens: RuleToken[]): RuleToken[];
}
