import IfcExpressionListener from "../gen/parser/IfcExpressionListener.js";
import { ArrayElementListContext, ArrayExprContext, BooleanLiteralContext, ExprContext, ExprListContext, FunctionCallContext, LiteralContext, LogicalLiteralContext, MethodCallChainEndContext, MethodCallChainInnerContext, NumLiteralContext, SEAddSubContext, SEArrayExprContext, SEBooleanBinaryOpContext, SEComparisonContext, SEFunctionCallContext, SELiteralContext, SEMethodCallContext, SEMulDivContext, SENotContext, SEParenthesisContext, SEPowerContext, SEUnaryMinusContext, SEUnaryMultipleMinusContext, SEVariableRefContext, StringLiteralContext, VariableRefContext } from "../gen/parser/IfcExpressionParser.js";
import { TypeManager } from "./TypeManager.js";
export declare class IfcExpressionValidationListener extends IfcExpressionListener {
    private readonly typeManager;
    private methodCallTargetStack;
    constructor();
    getTypeManager(): TypeManager;
    enterFunctionCall: (ctx: FunctionCallContext) => void;
    enterSEUnaryMultipleMinus: (ctx: SEUnaryMultipleMinusContext) => void;
    exitSEBooleanBinaryOp: (ctx: SEBooleanBinaryOpContext) => void;
    exitSEComparison: (ctx: SEComparisonContext) => void;
    exitSEParenthesis: (ctx: SEParenthesisContext) => void;
    exitSELiteral: (ctx: SELiteralContext) => void;
    exitLiteral: (ctx: LiteralContext) => void;
    exitNumLiteral: (ctx: NumLiteralContext) => void;
    exitStringLiteral: (ctx: StringLiteralContext) => void;
    exitBooleanLiteral: (ctx: BooleanLiteralContext) => void;
    exitLogicalLiteral: (ctx: LogicalLiteralContext) => void;
    exitExpr: (ctx: ExprContext) => void;
    exitSEMulDiv: (ctx: SEMulDivContext) => void;
    exitSEPower: (ctx: SEPowerContext) => void;
    exitSEFunctionCall: (ctx: SEFunctionCallContext) => void;
    exitSEArrayExpr: (ctx: SEArrayExprContext) => void;
    exitSENot: (ctx: SENotContext) => void;
    exitSEVariableRef: (ctx: SEVariableRefContext) => void;
    exitSEUnaryMinus: (ctx: SEUnaryMinusContext) => void;
    exitSEAddSub: (ctx: SEAddSubContext) => void;
    exitSEMethodCall: (ctx: SEMethodCallContext) => void;
    enterMethodCallChainInner: (ctx: MethodCallChainInnerContext) => void;
    exitMethodCallChainInner: (ctx: MethodCallChainInnerContext) => void;
    enterMethodCallChainEnd: (ctx: MethodCallChainEndContext) => void;
    private pushMethodCallTarget;
    exitMethodCallChainEnd: (ctx: MethodCallChainEndContext) => void;
    exitFunctionCall: (ctx: FunctionCallContext) => void;
    private collectArgumentTypes;
    exitExprList: (ctx: ExprListContext) => void;
    exitArrayExpr: (ctx: ArrayExprContext) => void;
    private collectArrayElementTypes;
    exitArrayElementList: (ctx: ArrayElementListContext) => void;
    exitVariableRef: (ctx: VariableRefContext) => void;
}
