import * as antlr from "antlr4ng";
import { Token } from "antlr4ng";
import { IfcExpressionListener } from "./IfcExpressionListener.js";
import { IfcExpressionVisitor } from "./IfcExpressionVisitor.js";
export declare class IfcExpressionParser extends antlr.Parser {
    static readonly T__0 = 1;
    static readonly T__1 = 2;
    static readonly T__2 = 3;
    static readonly T__3 = 4;
    static readonly T__4 = 5;
    static readonly T__5 = 6;
    static readonly T__6 = 7;
    static readonly T__7 = 8;
    static readonly T__8 = 9;
    static readonly T__9 = 10;
    static readonly T__10 = 11;
    static readonly T__11 = 12;
    static readonly T__12 = 13;
    static readonly INT = 14;
    static readonly FLOAT = 15;
    static readonly BOOLEAN = 16;
    static readonly LOGICAL_UNKNOWN = 17;
    static readonly DOT = 18;
    static readonly QUOTED_STRING = 19;
    static readonly IDENTIFIER = 20;
    static readonly WS = 21;
    static readonly NEWLINE = 22;
    static readonly BOOLEAN_BINARY_OP = 23;
    static readonly CMP_OP = 24;
    static readonly RULE_expr = 0;
    static readonly RULE_singleExpr = 1;
    static readonly RULE_methodCallChain = 2;
    static readonly RULE_methodAccessor = 3;
    static readonly RULE_functionCall = 4;
    static readonly RULE_exprList = 5;
    static readonly RULE_arrayExpr = 6;
    static readonly RULE_arrayElementList = 7;
    static readonly RULE_literal = 8;
    static readonly RULE_numLiteral = 9;
    static readonly RULE_stringLiteral = 10;
    static readonly RULE_booleanLiteral = 11;
    static readonly RULE_logicalLiteral = 12;
    static readonly RULE_variableRef = 13;
    static readonly literalNames: string[];
    static readonly symbolicNames: string[];
    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): antlr.FailedPredicateException;
    constructor(input: antlr.TokenStream);
    expr(): ExprContext;
    singleExpr(): SingleExprContext;
    singleExpr(_p: number): SingleExprContext;
    methodCallChain(): MethodCallChainContext;
    methodAccessor(): MethodAccessorContext;
    functionCall(): FunctionCallContext;
    exprList(): ExprListContext;
    arrayExpr(): ArrayExprContext;
    arrayElementList(): ArrayElementListContext;
    literal(): LiteralContext;
    numLiteral(): NumLiteralContext;
    stringLiteral(): StringLiteralContext;
    booleanLiteral(): BooleanLiteralContext;
    logicalLiteral(): LogicalLiteralContext;
    variableRef(): VariableRefContext;
    sempred(localContext: antlr.ParserRuleContext | null, ruleIndex: number, predIndex: number): boolean;
    private singleExpr_sempred;
    static readonly _serializedATN: number[];
    private static __ATN;
    static get _ATN(): antlr.ATN;
    private static readonly vocabulary;
    get vocabulary(): antlr.Vocabulary;
    private static readonly decisionsToDFA;
}
export declare class ExprContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    singleExpr(): SingleExprContext;
    EOF(): antlr.TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SingleExprContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    get ruleIndex(): number;
    copyFrom(ctx: SingleExprContext): void;
}
export declare class SEUnaryMultipleMinusContext extends SingleExprContext {
    _sub?: SingleExprContext;
    constructor(ctx: SingleExprContext);
    singleExpr(): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEParenthesisContext extends SingleExprContext {
    _sub?: SingleExprContext;
    constructor(ctx: SingleExprContext);
    singleExpr(): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEUnaryMinusContext extends SingleExprContext {
    _sub?: SingleExprContext;
    constructor(ctx: SingleExprContext);
    singleExpr(): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SENotContext extends SingleExprContext {
    _sub?: SingleExprContext;
    constructor(ctx: SingleExprContext);
    singleExpr(): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEVariableRefContext extends SingleExprContext {
    _sub?: VariableRefContext;
    constructor(ctx: SingleExprContext);
    variableRef(): VariableRefContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEFunctionCallContext extends SingleExprContext {
    _sub?: FunctionCallContext;
    constructor(ctx: SingleExprContext);
    functionCall(): FunctionCallContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SELiteralContext extends SingleExprContext {
    _sub?: LiteralContext;
    constructor(ctx: SingleExprContext);
    literal(): LiteralContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEArrayExprContext extends SingleExprContext {
    _sub?: ArrayExprContext;
    constructor(ctx: SingleExprContext);
    arrayExpr(): ArrayExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEPowerContext extends SingleExprContext {
    _left?: SingleExprContext;
    _op?: Token | null;
    _right?: SingleExprContext;
    constructor(ctx: SingleExprContext);
    singleExpr(): SingleExprContext[];
    singleExpr(i: number): SingleExprContext | null;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEMulDivContext extends SingleExprContext {
    _left?: SingleExprContext;
    _op?: Token | null;
    _right?: SingleExprContext;
    constructor(ctx: SingleExprContext);
    singleExpr(): SingleExprContext[];
    singleExpr(i: number): SingleExprContext | null;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEAddSubContext extends SingleExprContext {
    _left?: SingleExprContext;
    _op?: Token | null;
    _right?: SingleExprContext;
    constructor(ctx: SingleExprContext);
    singleExpr(): SingleExprContext[];
    singleExpr(i: number): SingleExprContext | null;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEComparisonContext extends SingleExprContext {
    _left?: SingleExprContext;
    _right?: SingleExprContext;
    constructor(ctx: SingleExprContext);
    CMP_OP(): antlr.TerminalNode;
    singleExpr(): SingleExprContext[];
    singleExpr(i: number): SingleExprContext | null;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEBooleanBinaryOpContext extends SingleExprContext {
    _left?: SingleExprContext;
    _op?: Token | null;
    _right?: SingleExprContext;
    constructor(ctx: SingleExprContext);
    singleExpr(): SingleExprContext[];
    singleExpr(i: number): SingleExprContext | null;
    BOOLEAN_BINARY_OP(): antlr.TerminalNode;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class SEMethodCallContext extends SingleExprContext {
    _target?: SingleExprContext;
    _call?: MethodCallChainContext;
    constructor(ctx: SingleExprContext);
    singleExpr(): SingleExprContext;
    methodCallChain(): MethodCallChainContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class MethodCallChainContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    get ruleIndex(): number;
    copyFrom(ctx: MethodCallChainContext): void;
}
export declare class MethodCallChainInnerContext extends MethodCallChainContext {
    _target?: MethodAccessorContext;
    _call?: MethodCallChainContext;
    constructor(ctx: MethodCallChainContext);
    DOT(): antlr.TerminalNode;
    methodAccessor(): MethodAccessorContext;
    methodCallChain(): MethodCallChainContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class MethodCallChainEndContext extends MethodCallChainContext {
    _call?: MethodAccessorContext;
    constructor(ctx: MethodCallChainContext);
    DOT(): antlr.TerminalNode;
    methodAccessor(): MethodAccessorContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class MethodAccessorContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    get ruleIndex(): number;
    copyFrom(ctx: MethodAccessorContext): void;
}
export declare class MethodFunctionCallContext extends MethodAccessorContext {
    constructor(ctx: MethodAccessorContext);
    functionCall(): FunctionCallContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class MethodPropertyAccessContext extends MethodAccessorContext {
    constructor(ctx: MethodAccessorContext);
    IDENTIFIER(): antlr.TerminalNode;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class FunctionCallContext extends antlr.ParserRuleContext {
    _sub?: ExprListContext;
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    IDENTIFIER(): antlr.TerminalNode;
    exprList(): ExprListContext | null;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class ExprListContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    singleExpr(): SingleExprContext;
    exprList(): ExprListContext | null;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class ArrayExprContext extends antlr.ParserRuleContext {
    _sub?: ArrayElementListContext;
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    arrayElementList(): ArrayElementListContext | null;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class ArrayElementListContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    singleExpr(): SingleExprContext;
    arrayElementList(): ArrayElementListContext | null;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class LiteralContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    numLiteral(): NumLiteralContext | null;
    stringLiteral(): StringLiteralContext | null;
    booleanLiteral(): BooleanLiteralContext | null;
    logicalLiteral(): LogicalLiteralContext | null;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class NumLiteralContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    INT(): antlr.TerminalNode | null;
    FLOAT(): antlr.TerminalNode | null;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class StringLiteralContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    QUOTED_STRING(): antlr.TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class BooleanLiteralContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    BOOLEAN(): antlr.TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class LogicalLiteralContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    LOGICAL_UNKNOWN(): antlr.TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
export declare class VariableRefContext extends antlr.ParserRuleContext {
    constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
    IDENTIFIER(): antlr.TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null;
}
