import { Rule } from "../../tool/Rule.js";
import { CodeGenerator } from "../CodeGenerator.js";
import { IOutputModelFactory } from "../IOutputModelFactory.js";
import { ActionChunk } from "./chunk/ActionChunk.js";
import { OutputModelObject } from "./OutputModelObject.js";
import { RuleSempredFunction } from "./RuleSempredFunction.js";
import { SerializedATN } from "./SerializedATN.js";
export declare abstract class Recognizer extends OutputModelObject {
    name: string;
    grammarName: string;
    grammarFileName: string;
    accessLevel?: string;
    tokens: Map<string, number>;
    /**
     * This field is provided only for compatibility with code generation targets which have not yet been
     * updated to use {@link #literalNames} and {@link #symbolicNames}.
     *
     * @deprecated
     */
    tokenNames: Array<string | null>;
    literalNames: Array<string | null>;
    symbolicNames: Array<string | null>;
    ruleNames: Set<string>;
    rules: Rule[];
    superClass: ActionChunk;
    atn: SerializedATN;
    sempredFuncs: Map<Rule, RuleSempredFunction>;
    constructor(factory: IOutputModelFactory);
    protected static translateTokenStringsToTarget(tokenStrings: Array<string | null>, gen: CodeGenerator): Array<string | null>;
    protected static translateTokenStringToTarget(tokenName: string | null, gen: CodeGenerator): string | null;
}
