import { ATN, DFA, FailedPredicateException, Parser, RuleContext, ParserRuleContext, TerminalNode, Token, TokenStream } from 'antlr4';
import type { NodeInput, NodeExpr, NodeList, NodeArgumentValidation, NodeArguments, NodeIf, NodeElseIf, NodeElse } from './AST';
/**
 * # MathJSLabParser
 *
 * A parser that recognizes a language syntax like MATLAB®/Octave written in TypeScript.
 *
 * ## References
 * - [MATLAB Operator Precedence](https://www.mathworks.com/help/matlab/matlab_prog/operator-precedence.html)
 * - [Octave lexer](https://github.com/gnu-octave/octave/blob/default/libinterp/parse-tree/lex.ll)
 * - [Octave parser](https://github.com/gnu-octave/octave/blob/default/libinterp/parse-tree/oct-parse.yy)
 * - [An ANTLR4 grammar for MATLAB files.](https://github.com/antlr/grammars-v4/tree/master/matlab)
 * - [mparser](https://www.mathworks.com/matlabcentral/fileexchange/32769-mparser)
 */
export default class MathJSLabParser extends Parser {
    static readonly GLOBAL = 1;
    static readonly PERSISTENT = 2;
    static readonly IF = 3;
    static readonly ENDIF = 4;
    static readonly END = 5;
    static readonly ENDRANGE = 6;
    static readonly ELSEIF = 7;
    static readonly ELSE = 8;
    static readonly SWITCH = 9;
    static readonly ENDSWITCH = 10;
    static readonly CASE = 11;
    static readonly OTHERWISE = 12;
    static readonly WHILE = 13;
    static readonly ENDWHILE = 14;
    static readonly DO = 15;
    static readonly UNTIL = 16;
    static readonly FOR = 17;
    static readonly ENDFOR = 18;
    static readonly PARFOR = 19;
    static readonly ENDPARFOR = 20;
    static readonly BREAK = 21;
    static readonly CONTINUE = 22;
    static readonly RETURN = 23;
    static readonly FUNCTION = 24;
    static readonly ENDFUNCTION = 25;
    static readonly TRY = 26;
    static readonly CATCH = 27;
    static readonly END_TRY_CATCH = 28;
    static readonly UNWIND_PROTECT = 29;
    static readonly UNWIND_PROTECT_CLEANUP = 30;
    static readonly END_UNWIND_PROTECT = 31;
    static readonly CLASSDEF = 32;
    static readonly ENDCLASSDEF = 33;
    static readonly ENUMERATION = 34;
    static readonly ENDENUMERATION = 35;
    static readonly PROPERTIES = 36;
    static readonly ENDPROPERTIES = 37;
    static readonly EVENTS = 38;
    static readonly ENDEVENTS = 39;
    static readonly METHODS = 40;
    static readonly ENDMETHODS = 41;
    static readonly WSPACE = 42;
    static readonly STRING = 43;
    static readonly ARGUMENTS = 44;
    static readonly PLUS = 45;
    static readonly MINUS = 46;
    static readonly MUL = 47;
    static readonly DIV = 48;
    static readonly EQ = 49;
    static readonly COLON = 50;
    static readonly SEMICOLON = 51;
    static readonly COMMA = 52;
    static readonly DOT = 53;
    static readonly TILDE = 54;
    static readonly EXCLAMATION = 55;
    static readonly COMMAT = 56;
    static readonly LPAREN = 57;
    static readonly RPAREN = 58;
    static readonly LBRACKET = 59;
    static readonly RBRACKET = 60;
    static readonly LCURLYBR = 61;
    static readonly RCURLYBR = 62;
    static readonly LEFTDIV = 63;
    static readonly ADD_EQ = 64;
    static readonly SUB_EQ = 65;
    static readonly MUL_EQ = 66;
    static readonly DIV_EQ = 67;
    static readonly LEFTDIV_EQ = 68;
    static readonly POW_EQ = 69;
    static readonly EMUL_EQ = 70;
    static readonly EDIV_EQ = 71;
    static readonly ELEFTDIV_EQ = 72;
    static readonly EPOW_EQ = 73;
    static readonly AND_EQ = 74;
    static readonly OR_EQ = 75;
    static readonly EXPR_AND_AND = 76;
    static readonly EXPR_OR_OR = 77;
    static readonly EXPR_AND = 78;
    static readonly EXPR_OR = 79;
    static readonly EXPR_LT = 80;
    static readonly EXPR_LE = 81;
    static readonly EXPR_EQ = 82;
    static readonly EXPR_NE = 83;
    static readonly EXPR_GE = 84;
    static readonly EXPR_GT = 85;
    static readonly EMUL = 86;
    static readonly EDIV = 87;
    static readonly ELEFTDIV = 88;
    static readonly PLUS_PLUS = 89;
    static readonly MINUS_MINUS = 90;
    static readonly POW = 91;
    static readonly EPOW = 92;
    static readonly TRANSPOSE = 93;
    static readonly HERMITIAN = 94;
    static readonly DQSTRING = 95;
    static readonly IDENTIFIER = 96;
    static readonly FLOAT_NUMBER = 97;
    static readonly NUMBER_DOT_OP = 98;
    static readonly SPACE_OR_CONTINUATION = 99;
    static readonly NEWLINE = 100;
    static readonly BLOCK_COMMENT_START = 101;
    static readonly COMMENT_LINE = 102;
    static readonly INVALID = 103;
    static readonly SINGLEQ_STRING = 104;
    static readonly SINGLEQ_NL = 105;
    static readonly SINGLEQ_SINGLEQ = 106;
    static readonly SINGLEQ_END = 107;
    static readonly DOUBLEQ_STRING = 108;
    static readonly DOUBLEQ_NL = 109;
    static readonly DOUBLEQ_DOUBLEQ = 110;
    static readonly DOUBLEQ_ESCAPE = 111;
    static readonly DOUBLEQ_ESCAPE_OTHER = 112;
    static readonly DOUBLEQ_ESCAPE_OCT = 113;
    static readonly DOUBLEQ_ESCAPE_HEX = 114;
    static readonly DOUBLEQ_ESCAPE_UNICODE = 115;
    static readonly DOUBLEQ_END = 116;
    static readonly BLOCK_COMMENT_START_AGAIN = 117;
    static readonly BLOCK_COMMENT_END = 118;
    static readonly BLOCK_COMMENT_LINE = 119;
    static readonly BLOCK_COMMENT_EOF = 120;
    static readonly SKIP_SPACE = 121;
    static readonly SKIP_COMMENT_LINE = 122;
    static readonly EXIT_AT_NEWLINE = 123;
    static readonly EXIT_AT_EOF = 124;
    static readonly UNQUOTED_STRING = 125;
    static readonly EOF: number;
    static readonly RULE_input = 0;
    static readonly RULE_global_list = 1;
    static readonly RULE_list = 2;
    static readonly RULE_statement = 3;
    static readonly RULE_word_list_cmd = 4;
    static readonly RULE_identifier = 5;
    static readonly RULE_string = 6;
    static readonly RULE_number = 7;
    static readonly RULE_end_range = 8;
    static readonly RULE_constant = 9;
    static readonly RULE_matrix = 10;
    static readonly RULE_matrix_row = 11;
    static readonly RULE_fcn_handle = 12;
    static readonly RULE_anon_fcn_handle = 13;
    static readonly RULE_primary_expr = 14;
    static readonly RULE_magic_colon = 15;
    static readonly RULE_magic_tilde = 16;
    static readonly RULE_list_element = 17;
    static readonly RULE_arg_list = 18;
    static readonly RULE_oper_expr = 19;
    static readonly RULE_power_expr = 20;
    static readonly RULE_colon_expr = 21;
    static readonly RULE_simple_expr = 22;
    static readonly RULE_expression = 23;
    static readonly RULE_command = 24;
    static readonly RULE_declaration = 25;
    static readonly RULE_declaration_element = 26;
    static readonly RULE_select_command = 27;
    static readonly RULE_if_command = 28;
    static readonly RULE_elseif_clause = 29;
    static readonly RULE_else_clause = 30;
    static readonly RULE_param_list = 31;
    static readonly RULE_param_list_elt = 32;
    static readonly RULE_return_list = 33;
    static readonly RULE_function = 34;
    static readonly RULE_arguments_block_list = 35;
    static readonly RULE_arguments_block = 36;
    static readonly RULE_args_validation_list = 37;
    static readonly RULE_arg_validation = 38;
    static readonly RULE_sep_no_nl = 39;
    static readonly RULE_nl = 40;
    static readonly RULE_sep = 41;
    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);
    input(): InputContext;
    global_list(): Global_listContext;
    list(): ListContext;
    statement(): StatementContext;
    word_list_cmd(): Word_list_cmdContext;
    identifier(): IdentifierContext;
    string_(): StringContext;
    number_(): NumberContext;
    end_range(): End_rangeContext;
    constant(): ConstantContext;
    matrix(): MatrixContext;
    matrix_row(): Matrix_rowContext;
    fcn_handle(): Fcn_handleContext;
    anon_fcn_handle(): Anon_fcn_handleContext;
    primary_expr(): Primary_exprContext;
    magic_colon(): Magic_colonContext;
    magic_tilde(): Magic_tildeContext;
    list_element(): List_elementContext;
    arg_list(): Arg_listContext;
    oper_expr(): Oper_exprContext;
    oper_expr(_p: number): Oper_exprContext;
    power_expr(): Power_exprContext;
    power_expr(_p: number): Power_exprContext;
    colon_expr(): Colon_exprContext;
    simple_expr(): Simple_exprContext;
    simple_expr(_p: number): Simple_exprContext;
    expression(): ExpressionContext;
    command(): CommandContext;
    declaration(): DeclarationContext;
    declaration_element(): Declaration_elementContext;
    select_command(): Select_commandContext;
    if_command(): If_commandContext;
    elseif_clause(): Elseif_clauseContext;
    else_clause(): Else_clauseContext;
    param_list(): Param_listContext;
    param_list_elt(): Param_list_eltContext;
    return_list(): Return_listContext;
    function_(): FunctionContext;
    arguments_block_list(): Arguments_block_listContext;
    arguments_block(): Arguments_blockContext;
    args_validation_list(): Args_validation_listContext;
    arg_validation(): Arg_validationContext;
    sep_no_nl(): Sep_no_nlContext;
    nl(): NlContext;
    sep(): SepContext;
    sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean;
    private oper_expr_sempred;
    private power_expr_sempred;
    private simple_expr_sempred;
    static readonly _serializedATN: number[];
    private static __ATN;
    static get _ATN(): ATN;
    static DecisionsToDFA: DFA[];
}
export declare class InputContext extends ParserRuleContext {
    node: NodeInput;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    EOF(): TerminalNode;
    sep(): SepContext;
    global_list(): Global_listContext;
    get ruleIndex(): number;
}
export declare class Global_listContext extends ParserRuleContext {
    node: NodeList;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    statement_list(): StatementContext[];
    statement(i: number): StatementContext;
    sep_list(): SepContext[];
    sep(i: number): SepContext;
    get ruleIndex(): number;
}
export declare class ListContext extends ParserRuleContext {
    node: NodeList;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    statement_list(): StatementContext[];
    statement(i: number): StatementContext;
    sep_list(): SepContext[];
    sep(i: number): SepContext;
    get ruleIndex(): number;
}
export declare class StatementContext extends ParserRuleContext {
    node: NodeInput;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    expression(): ExpressionContext;
    command(): CommandContext;
    word_list_cmd(): Word_list_cmdContext;
    get ruleIndex(): number;
}
export declare class Word_list_cmdContext extends ParserRuleContext {
    node: NodeInput;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    identifier(): IdentifierContext;
    string__list(): StringContext[];
    string_(i: number): StringContext;
    get ruleIndex(): number;
}
export declare class IdentifierContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    IDENTIFIER(): TerminalNode;
    get ruleIndex(): number;
}
export declare class StringContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    STRING(): TerminalNode;
    UNQUOTED_STRING(): TerminalNode;
    get ruleIndex(): number;
}
export declare class NumberContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    FLOAT_NUMBER(): TerminalNode;
    get ruleIndex(): number;
}
export declare class End_rangeContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    ENDRANGE(): TerminalNode;
    get ruleIndex(): number;
}
export declare class ConstantContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    number_(): NumberContext;
    string_(): StringContext;
    end_range(): End_rangeContext;
    get ruleIndex(): number;
}
export declare class MatrixContext extends ParserRuleContext {
    node: NodeExpr;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    LBRACKET(): TerminalNode;
    RBRACKET(): TerminalNode;
    matrix_row_list(): Matrix_rowContext[];
    matrix_row(i: number): Matrix_rowContext;
    nl_list(): NlContext[];
    nl(i: number): NlContext;
    SEMICOLON_list(): TerminalNode[];
    SEMICOLON(i: number): TerminalNode;
    LCURLYBR(): TerminalNode;
    RCURLYBR(): TerminalNode;
    get ruleIndex(): number;
}
export declare class Matrix_rowContext extends ParserRuleContext {
    node: NodeList | null;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    COMMA_list(): TerminalNode[];
    COMMA(i: number): TerminalNode;
    WSPACE_list(): TerminalNode[];
    WSPACE(i: number): TerminalNode;
    list_element_list(): List_elementContext[];
    list_element(i: number): List_elementContext;
    get ruleIndex(): number;
}
export declare class Fcn_handleContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    COMMAT(): TerminalNode;
    identifier(): IdentifierContext;
    get ruleIndex(): number;
}
export declare class Anon_fcn_handleContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    COMMAT(): TerminalNode;
    param_list(): Param_listContext;
    expression(): ExpressionContext;
    get ruleIndex(): number;
}
export declare class Primary_exprContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    identifier(): IdentifierContext;
    constant(): ConstantContext;
    fcn_handle(): Fcn_handleContext;
    matrix(): MatrixContext;
    LPAREN(): TerminalNode;
    expression(): ExpressionContext;
    RPAREN(): TerminalNode;
    get ruleIndex(): number;
}
export declare class Magic_colonContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    COLON(): TerminalNode;
    get ruleIndex(): number;
}
export declare class Magic_tildeContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    TILDE(): TerminalNode;
    get ruleIndex(): number;
}
export declare class List_elementContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    expression(): ExpressionContext;
    magic_colon(): Magic_colonContext;
    magic_tilde(): Magic_tildeContext;
    get ruleIndex(): number;
}
export declare class Arg_listContext extends ParserRuleContext {
    node: NodeList;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    list_element_list(): List_elementContext[];
    list_element(i: number): List_elementContext;
    COMMA_list(): TerminalNode[];
    COMMA(i: number): TerminalNode;
    get ruleIndex(): number;
}
export declare class Oper_exprContext extends ParserRuleContext {
    node: NodeExpr;
    _op: Token;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    primary_expr(): Primary_exprContext;
    oper_expr_list(): Oper_exprContext[];
    oper_expr(i: number): Oper_exprContext;
    PLUS_PLUS(): TerminalNode;
    MINUS_MINUS(): TerminalNode;
    PLUS(): TerminalNode;
    MINUS(): TerminalNode;
    TILDE(): TerminalNode;
    EXCLAMATION(): TerminalNode;
    MUL(): TerminalNode;
    DIV(): TerminalNode;
    LEFTDIV(): TerminalNode;
    EMUL(): TerminalNode;
    EDIV(): TerminalNode;
    ELEFTDIV(): TerminalNode;
    LPAREN(): TerminalNode;
    RPAREN(): TerminalNode;
    arg_list(): Arg_listContext;
    LCURLYBR(): TerminalNode;
    RCURLYBR(): TerminalNode;
    TRANSPOSE(): TerminalNode;
    HERMITIAN(): TerminalNode;
    DOT(): TerminalNode;
    IDENTIFIER(): TerminalNode;
    expression(): ExpressionContext;
    power_expr(): Power_exprContext;
    POW(): TerminalNode;
    EPOW(): TerminalNode;
    get ruleIndex(): number;
}
export declare class Power_exprContext extends ParserRuleContext {
    node: NodeExpr;
    _op: Token;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    primary_expr(): Primary_exprContext;
    power_expr(): Power_exprContext;
    PLUS_PLUS(): TerminalNode;
    MINUS_MINUS(): TerminalNode;
    PLUS(): TerminalNode;
    MINUS(): TerminalNode;
    TILDE(): TerminalNode;
    EXCLAMATION(): TerminalNode;
    LPAREN(): TerminalNode;
    RPAREN(): TerminalNode;
    arg_list(): Arg_listContext;
    LCURLYBR(): TerminalNode;
    RCURLYBR(): TerminalNode;
    DOT(): TerminalNode;
    IDENTIFIER(): TerminalNode;
    expression(): ExpressionContext;
    get ruleIndex(): number;
}
export declare class Colon_exprContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    oper_expr_list(): Oper_exprContext[];
    oper_expr(i: number): Oper_exprContext;
    COLON_list(): TerminalNode[];
    COLON(i: number): TerminalNode;
    get ruleIndex(): number;
}
export declare class Simple_exprContext extends ParserRuleContext {
    node: NodeExpr;
    _op: Token;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    oper_expr(): Oper_exprContext;
    colon_expr(): Colon_exprContext;
    simple_expr_list(): Simple_exprContext[];
    simple_expr(i: number): Simple_exprContext;
    EXPR_LT(): TerminalNode;
    EXPR_LE(): TerminalNode;
    EXPR_GT(): TerminalNode;
    EXPR_GE(): TerminalNode;
    EXPR_EQ(): TerminalNode;
    EXPR_NE(): TerminalNode;
    EXPR_AND(): TerminalNode;
    EXPR_OR(): TerminalNode;
    EXPR_AND_AND(): TerminalNode;
    EXPR_OR_OR(): TerminalNode;
    get ruleIndex(): number;
}
export declare class ExpressionContext extends ParserRuleContext {
    node: NodeExpr;
    _op: Token;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    simple_expr(): Simple_exprContext;
    expression(): ExpressionContext;
    EQ(): TerminalNode;
    ADD_EQ(): TerminalNode;
    SUB_EQ(): TerminalNode;
    MUL_EQ(): TerminalNode;
    EMUL_EQ(): TerminalNode;
    DIV_EQ(): TerminalNode;
    EDIV_EQ(): TerminalNode;
    LEFTDIV_EQ(): TerminalNode;
    ELEFTDIV_EQ(): TerminalNode;
    POW_EQ(): TerminalNode;
    EPOW_EQ(): TerminalNode;
    AND_EQ(): TerminalNode;
    OR_EQ(): TerminalNode;
    anon_fcn_handle(): Anon_fcn_handleContext;
    get ruleIndex(): number;
}
export declare class CommandContext extends ParserRuleContext {
    node: NodeInput;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    declaration(): DeclarationContext;
    select_command(): Select_commandContext;
    function_(): FunctionContext;
    get ruleIndex(): number;
}
export declare class DeclarationContext extends ParserRuleContext {
    node: NodeInput;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    GLOBAL(): TerminalNode;
    PERSISTENT(): TerminalNode;
    declaration_element_list(): Declaration_elementContext[];
    declaration_element(i: number): Declaration_elementContext;
    get ruleIndex(): number;
}
export declare class Declaration_elementContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    identifier(): IdentifierContext;
    EQ(): TerminalNode;
    expression(): ExpressionContext;
    get ruleIndex(): number;
}
export declare class Select_commandContext extends ParserRuleContext {
    node: NodeInput;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    if_command(): If_commandContext;
    get ruleIndex(): number;
}
export declare class If_commandContext extends ParserRuleContext {
    node: NodeIf;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    IF(): TerminalNode;
    expression(): ExpressionContext;
    END(): TerminalNode;
    ENDIF(): TerminalNode;
    sep(): SepContext;
    list(): ListContext;
    elseif_clause_list(): Elseif_clauseContext[];
    elseif_clause(i: number): Elseif_clauseContext;
    else_clause(): Else_clauseContext;
    get ruleIndex(): number;
}
export declare class Elseif_clauseContext extends ParserRuleContext {
    node: NodeElseIf;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    ELSEIF(): TerminalNode;
    expression(): ExpressionContext;
    sep_list(): SepContext[];
    sep(i: number): SepContext;
    list(): ListContext;
    get ruleIndex(): number;
}
export declare class Else_clauseContext extends ParserRuleContext {
    node: NodeElse;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    ELSE(): TerminalNode;
    sep(): SepContext;
    list(): ListContext;
    get ruleIndex(): number;
}
export declare class Param_listContext extends ParserRuleContext {
    node: NodeList;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    LPAREN(): TerminalNode;
    RPAREN(): TerminalNode;
    param_list_elt_list(): Param_list_eltContext[];
    param_list_elt(i: number): Param_list_eltContext;
    COMMA_list(): TerminalNode[];
    COMMA(i: number): TerminalNode;
    get ruleIndex(): number;
}
export declare class Param_list_eltContext extends ParserRuleContext {
    node: NodeExpr;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    declaration_element(): Declaration_elementContext;
    magic_tilde(): Magic_tildeContext;
    get ruleIndex(): number;
}
export declare class Return_listContext extends ParserRuleContext {
    node: NodeExpr;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    identifier_list(): IdentifierContext[];
    identifier(i: number): IdentifierContext;
    LBRACKET(): TerminalNode;
    RBRACKET(): TerminalNode;
    COMMA_list(): TerminalNode[];
    COMMA(i: number): TerminalNode;
    get ruleIndex(): number;
}
export declare class FunctionContext extends ParserRuleContext {
    node: NodeInput;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    FUNCTION(): TerminalNode;
    identifier(): IdentifierContext;
    END(): TerminalNode;
    ENDFUNCTION(): TerminalNode;
    EOF(): TerminalNode;
    return_list(): Return_listContext;
    EQ(): TerminalNode;
    param_list(): Param_listContext;
    sep(): SepContext;
    arguments_block_list(): Arguments_block_listContext;
    list(): ListContext;
    get ruleIndex(): number;
}
export declare class Arguments_block_listContext extends ParserRuleContext {
    node: NodeList;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    arguments_block_list(): Arguments_blockContext[];
    arguments_block(i: number): Arguments_blockContext;
    sep_list(): SepContext[];
    sep(i: number): SepContext;
    get ruleIndex(): number;
}
export declare class Arguments_blockContext extends ParserRuleContext {
    node: NodeArguments;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    ARGUMENTS(): TerminalNode;
    args_validation_list(): Args_validation_listContext;
    END(): TerminalNode;
    sep_list(): SepContext[];
    sep(i: number): SepContext;
    LPAREN(): TerminalNode;
    identifier(): IdentifierContext;
    RPAREN(): TerminalNode;
    get ruleIndex(): number;
}
export declare class Args_validation_listContext extends ParserRuleContext {
    node: NodeList;
    i: number;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    arg_validation_list(): Arg_validationContext[];
    arg_validation(i: number): Arg_validationContext;
    sep_list(): SepContext[];
    sep(i: number): SepContext;
    get ruleIndex(): number;
}
export declare class Arg_validationContext extends ParserRuleContext {
    node: NodeArgumentValidation;
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    identifier_list(): IdentifierContext[];
    identifier(i: number): IdentifierContext;
    LPAREN(): TerminalNode;
    arg_list_list(): Arg_listContext[];
    arg_list(i: number): Arg_listContext;
    RPAREN(): TerminalNode;
    LCURLYBR(): TerminalNode;
    RCURLYBR(): TerminalNode;
    EQ(): TerminalNode;
    expression(): ExpressionContext;
    get ruleIndex(): number;
}
export declare class Sep_no_nlContext extends ParserRuleContext {
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    COMMA_list(): TerminalNode[];
    COMMA(i: number): TerminalNode;
    SEMICOLON_list(): TerminalNode[];
    SEMICOLON(i: number): TerminalNode;
    get ruleIndex(): number;
}
export declare class NlContext extends ParserRuleContext {
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    NEWLINE_list(): TerminalNode[];
    NEWLINE(i: number): TerminalNode;
    get ruleIndex(): number;
}
export declare class SepContext extends ParserRuleContext {
    constructor(parser?: MathJSLabParser, parent?: ParserRuleContext, invokingState?: number);
    COMMA_list(): TerminalNode[];
    COMMA(i: number): TerminalNode;
    SEMICOLON_list(): TerminalNode[];
    SEMICOLON(i: number): TerminalNode;
    NEWLINE_list(): TerminalNode[];
    NEWLINE(i: number): TerminalNode;
    get ruleIndex(): number;
}
