import { ATN, DFA, FailedPredicateException, Parser, RuleContext, ParserRuleContext, TerminalNode, TokenStream } from 'antlr4';
export default class ExprParser extends Parser {
    static readonly VAR = 1;
    static readonly LET = 2;
    static readonly PLUS = 3;
    static readonly MINUS = 4;
    static readonly MULTIPLY = 5;
    static readonly DIVIDE = 6;
    static readonly EQUAL = 7;
    static readonly OPEN_PAR = 8;
    static readonly CLOSE_PAR = 9;
    static readonly ID = 10;
    static readonly WS = 11;
    static readonly EOF: number;
    static readonly RULE_expression = 0;
    static readonly RULE_assignment = 1;
    static readonly RULE_simpleExpression = 2;
    static readonly RULE_variableRef = 3;
    static readonly RULE_functionRef = 4;
    static readonly RULE_identifier = 5;
    static readonly literalNames: (string | null)[];
    static readonly symbolicNames: (string | null)[];
    static readonly ruleNames: string[];
    get grammarFileName(): string;
    get literalNames(): (string | null)[];
    get symbolicNames(): (string | null)[];
    get ruleNames(): string[];
    get serializedATN(): number[];
    protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException;
    constructor(input: TokenStream);
    expression(): ExpressionContext;
    assignment(): AssignmentContext;
    simpleExpression(): SimpleExpressionContext;
    simpleExpression(_p: number): SimpleExpressionContext;
    variableRef(): VariableRefContext;
    functionRef(): FunctionRefContext;
    identifier(): IdentifierContext;
    sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean;
    private simpleExpression_sempred;
    static readonly _serializedATN: number[];
    private static __ATN;
    static get _ATN(): ATN;
    static DecisionsToDFA: DFA[];
}
export declare class ExpressionContext extends ParserRuleContext {
    constructor(parser?: ExprParser, parent?: ParserRuleContext, invokingState?: number);
    assignment(): AssignmentContext;
    simpleExpression(): SimpleExpressionContext;
    get ruleIndex(): number;
}
export declare class AssignmentContext extends ParserRuleContext {
    constructor(parser?: ExprParser, parent?: ParserRuleContext, invokingState?: number);
    ID(): TerminalNode;
    EQUAL(): TerminalNode;
    simpleExpression(): SimpleExpressionContext;
    VAR(): TerminalNode;
    LET(): TerminalNode;
    get ruleIndex(): number;
}
export declare class SimpleExpressionContext extends ParserRuleContext {
    constructor(parser?: ExprParser, parent?: ParserRuleContext, invokingState?: number);
    variableRef(): VariableRefContext;
    functionRef(): FunctionRefContext;
    simpleExpression_list(): SimpleExpressionContext[];
    simpleExpression(i: number): SimpleExpressionContext;
    PLUS(): TerminalNode;
    MINUS(): TerminalNode;
    MULTIPLY(): TerminalNode;
    DIVIDE(): TerminalNode;
    get ruleIndex(): number;
}
export declare class VariableRefContext extends ParserRuleContext {
    constructor(parser?: ExprParser, parent?: ParserRuleContext, invokingState?: number);
    identifier(): IdentifierContext;
    get ruleIndex(): number;
}
export declare class FunctionRefContext extends ParserRuleContext {
    constructor(parser?: ExprParser, parent?: ParserRuleContext, invokingState?: number);
    identifier(): IdentifierContext;
    OPEN_PAR(): TerminalNode;
    CLOSE_PAR(): TerminalNode;
    get ruleIndex(): number;
}
export declare class IdentifierContext extends ParserRuleContext {
    constructor(parser?: ExprParser, parent?: ParserRuleContext, invokingState?: number);
    ID(): TerminalNode;
    get ruleIndex(): number;
}
