import { Nonterminal, Terminal, ZeroOrMore, OneOrMore, Optional, Not, Sequence, OrderedChoice, Grouping, Rewriting, Colon, ColonNot, Lake, And } from './ParsingExpression';
export interface IParsingExpressionVisitor<ArgsType extends Array<unknown> = [], ReturnType = void> {
    visitNonterminal(pe: Nonterminal, ...arg: ArgsType): ReturnType;
    visitTerminal(pe: Terminal, ...arg: ArgsType): ReturnType;
    visitZeroOrMore(pe: ZeroOrMore, ...arg: ArgsType): ReturnType;
    visitOneOrMore(pe: OneOrMore, ...arg: ArgsType): ReturnType;
    visitOptional(pe: Optional, ...arg: ArgsType): ReturnType;
    visitAnd(pe: Not, ...arg: ArgsType): ReturnType;
    visitNot(pe: Not, ...arg: ArgsType): ReturnType;
    visitSequence(pe: Sequence, ...arg: ArgsType): ReturnType;
    visitOrderedChoice(pe: OrderedChoice, ...arg: ArgsType): ReturnType;
    visitGrouping(pe: Grouping, ...arg: ArgsType): ReturnType;
    visitRewriting(pe: Rewriting, ...arg: ArgsType): ReturnType;
    visitColon(pe: Colon, ...arg: ArgsType): ReturnType;
    visitColonNot(pe: ColonNot, ...arg: ArgsType): ReturnType;
    visitLake(pe: Lake, ...arg: ArgsType): ReturnType;
}
export declare class DefaultParsingExpressionVisitor implements IParsingExpressionVisitor {
    visitNonterminal(_pe: Nonterminal): void;
    visitTerminal(_pe: Terminal): void;
    visitOrderedChoice(_pe: OrderedChoice): void;
    visitSequence(_pe: Sequence): void;
    visitAnd(_pe: And): void;
    visitColon(_pe: Colon): void;
    visitColonNot(_pe: ColonNot): void;
    visitGrouping(_pe: Grouping): void;
    visitLake(_pe: Lake): void;
    visitNot(_pe: Not): void;
    visitOneOrMore(_pe: OneOrMore): void;
    visitOptional(_pe: Optional): void;
    visitRewriting(_pe: Rewriting): void;
    visitZeroOrMore(_pe: ZeroOrMore): void;
}
//# sourceMappingURL=IParsingExpressionVisitor.d.ts.map