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