import { ActionAST } from "../tool/ast/ActionAST.js";
import { Grammar } from "../tool/Grammar.js";
import { LexerGrammar } from "../tool/LexerGrammar.js";
import { Rule } from "../tool/Rule.js";
/** Look for errors and dead code stuff */
export declare class UseDefAnalyzer {
    static trackTokenRuleRefsInActions(g: Grammar): void;
    static actionIsContextDependent(actionAST: ActionAST): boolean;
    /** Find all rules reachable from r directly or indirectly for all r in g */
    static getRuleDependencies(g: Grammar): Map<Rule, Set<Rule>>;
    static getRuleDependencies(g: LexerGrammar, modeName: string): Map<Rule, Set<Rule>>;
    static getRuleDependencies(g: Grammar, rules: Rule[]): Map<Rule, Set<Rule>>;
}
