import { And, Colon, ColonNot, Grouping, Lake, Nonterminal, Not, OneOrMore, Optional, OrderedChoice, Rewriting, Sequence, Terminal, ZeroOrMore } from '../ParsingExpression';
import { Rule } from '../Rule';
import { SetCalculator } from './SetCalculator';
export declare class FirstCalculator extends SetCalculator {
    constructor(rules: Map<string, Rule>);
    visitNonterminal(pe: Nonterminal): void;
    visitTerminal(pe: Terminal): void;
    visitZeroOrMore(pe: ZeroOrMore): void;
    visitOneOrMore(pe: OneOrMore): void;
    visitOptional(pe: Optional): void;
    visitAnd(pe: And): void;
    visitNot(pe: Not): void;
    visitSequence(pe: Sequence): void;
    visitOrderedChoice(pe: OrderedChoice): void;
    visitGrouping(pe: Grouping): void;
    visitRewriting(pe: Rewriting): void;
    visitColon(pe: Colon): void;
    visitColonNot(pe: ColonNot): void;
    visitLake(pe: Lake): void;
    private propagateOperandWithEpsilon;
    private propagateOperand;
}
//# sourceMappingURL=FirstCalculator.d.ts.map