import { ParseTreeListener } from "antlr4";
import { ExprContext } from "./IfcExpressionParser.js";
import { SEComparisonContext } from "./IfcExpressionParser.js";
import { SELiteralContext } from "./IfcExpressionParser.js";
import { SEParenthesisContext } from "./IfcExpressionParser.js";
import { SEMulDivContext } from "./IfcExpressionParser.js";
import { SEPowerContext } from "./IfcExpressionParser.js";
import { SEBooleanBinaryOpContext } from "./IfcExpressionParser.js";
import { SEFunctionCallContext } from "./IfcExpressionParser.js";
import { SEArrayExprContext } from "./IfcExpressionParser.js";
import { SENotContext } from "./IfcExpressionParser.js";
import { SEVariableRefContext } from "./IfcExpressionParser.js";
import { SEUnaryMultipleMinusContext } from "./IfcExpressionParser.js";
import { SEUnaryMinusContext } from "./IfcExpressionParser.js";
import { SEAddSubContext } from "./IfcExpressionParser.js";
import { SEMethodCallContext } from "./IfcExpressionParser.js";
import { MethodCallChainInnerContext } from "./IfcExpressionParser.js";
import { MethodCallChainEndContext } from "./IfcExpressionParser.js";
import { FunctionCallContext } from "./IfcExpressionParser.js";
import { ExprListContext } from "./IfcExpressionParser.js";
import { ArrayExprContext } from "./IfcExpressionParser.js";
import { ArrayElementListContext } from "./IfcExpressionParser.js";
import { LiteralContext } from "./IfcExpressionParser.js";
import { NumLiteralContext } from "./IfcExpressionParser.js";
import { StringLiteralContext } from "./IfcExpressionParser.js";
import { BooleanLiteralContext } from "./IfcExpressionParser.js";
import { LogicalLiteralContext } from "./IfcExpressionParser.js";
import { VariableRefContext } from "./IfcExpressionParser.js";
/**
 * This interface defines a complete listener for a parse tree produced by
 * `IfcExpressionParser`.
 */
export default class IfcExpressionListener extends ParseTreeListener {
    /**
     * Enter a parse tree produced by `IfcExpressionParser.expr`.
     * @param ctx the parse tree
     */
    enterExpr?: (ctx: ExprContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.expr`.
     * @param ctx the parse tree
     */
    exitExpr?: (ctx: ExprContext) => void;
    /**
     * Enter a parse tree produced by the `SEComparison`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEComparison?: (ctx: SEComparisonContext) => void;
    /**
     * Exit a parse tree produced by the `SEComparison`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEComparison?: (ctx: SEComparisonContext) => void;
    /**
     * Enter a parse tree produced by the `SELiteral`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSELiteral?: (ctx: SELiteralContext) => void;
    /**
     * Exit a parse tree produced by the `SELiteral`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSELiteral?: (ctx: SELiteralContext) => void;
    /**
     * Enter a parse tree produced by the `SEParenthesis`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEParenthesis?: (ctx: SEParenthesisContext) => void;
    /**
     * Exit a parse tree produced by the `SEParenthesis`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEParenthesis?: (ctx: SEParenthesisContext) => void;
    /**
     * Enter a parse tree produced by the `SEMulDiv`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEMulDiv?: (ctx: SEMulDivContext) => void;
    /**
     * Exit a parse tree produced by the `SEMulDiv`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEMulDiv?: (ctx: SEMulDivContext) => void;
    /**
     * Enter a parse tree produced by the `SEPower`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEPower?: (ctx: SEPowerContext) => void;
    /**
     * Exit a parse tree produced by the `SEPower`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEPower?: (ctx: SEPowerContext) => void;
    /**
     * Enter a parse tree produced by the `SEBooleanBinaryOp`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEBooleanBinaryOp?: (ctx: SEBooleanBinaryOpContext) => void;
    /**
     * Exit a parse tree produced by the `SEBooleanBinaryOp`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEBooleanBinaryOp?: (ctx: SEBooleanBinaryOpContext) => void;
    /**
     * Enter a parse tree produced by the `SEFunctionCall`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEFunctionCall?: (ctx: SEFunctionCallContext) => void;
    /**
     * Exit a parse tree produced by the `SEFunctionCall`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEFunctionCall?: (ctx: SEFunctionCallContext) => void;
    /**
     * Enter a parse tree produced by the `SEArrayExpr`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEArrayExpr?: (ctx: SEArrayExprContext) => void;
    /**
     * Exit a parse tree produced by the `SEArrayExpr`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEArrayExpr?: (ctx: SEArrayExprContext) => void;
    /**
     * Enter a parse tree produced by the `SENot`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSENot?: (ctx: SENotContext) => void;
    /**
     * Exit a parse tree produced by the `SENot`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSENot?: (ctx: SENotContext) => void;
    /**
     * Enter a parse tree produced by the `SEVariableRef`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEVariableRef?: (ctx: SEVariableRefContext) => void;
    /**
     * Exit a parse tree produced by the `SEVariableRef`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEVariableRef?: (ctx: SEVariableRefContext) => void;
    /**
     * Enter a parse tree produced by the `SEUnaryMultipleMinus`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEUnaryMultipleMinus?: (ctx: SEUnaryMultipleMinusContext) => void;
    /**
     * Exit a parse tree produced by the `SEUnaryMultipleMinus`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEUnaryMultipleMinus?: (ctx: SEUnaryMultipleMinusContext) => void;
    /**
     * Enter a parse tree produced by the `SEUnaryMinus`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEUnaryMinus?: (ctx: SEUnaryMinusContext) => void;
    /**
     * Exit a parse tree produced by the `SEUnaryMinus`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEUnaryMinus?: (ctx: SEUnaryMinusContext) => void;
    /**
     * Enter a parse tree produced by the `SEAddSub`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEAddSub?: (ctx: SEAddSubContext) => void;
    /**
     * Exit a parse tree produced by the `SEAddSub`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEAddSub?: (ctx: SEAddSubContext) => void;
    /**
     * Enter a parse tree produced by the `SEMethodCall`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    enterSEMethodCall?: (ctx: SEMethodCallContext) => void;
    /**
     * Exit a parse tree produced by the `SEMethodCall`
     * labeled alternative in `IfcExpressionParser.singleExpr`.
     * @param ctx the parse tree
     */
    exitSEMethodCall?: (ctx: SEMethodCallContext) => void;
    /**
     * Enter a parse tree produced by the `methodCallChainInner`
     * labeled alternative in `IfcExpressionParser.methodCallChain`.
     * @param ctx the parse tree
     */
    enterMethodCallChainInner?: (ctx: MethodCallChainInnerContext) => void;
    /**
     * Exit a parse tree produced by the `methodCallChainInner`
     * labeled alternative in `IfcExpressionParser.methodCallChain`.
     * @param ctx the parse tree
     */
    exitMethodCallChainInner?: (ctx: MethodCallChainInnerContext) => void;
    /**
     * Enter a parse tree produced by the `methodCallChainEnd`
     * labeled alternative in `IfcExpressionParser.methodCallChain`.
     * @param ctx the parse tree
     */
    enterMethodCallChainEnd?: (ctx: MethodCallChainEndContext) => void;
    /**
     * Exit a parse tree produced by the `methodCallChainEnd`
     * labeled alternative in `IfcExpressionParser.methodCallChain`.
     * @param ctx the parse tree
     */
    exitMethodCallChainEnd?: (ctx: MethodCallChainEndContext) => void;
    /**
     * Enter a parse tree produced by `IfcExpressionParser.functionCall`.
     * @param ctx the parse tree
     */
    enterFunctionCall?: (ctx: FunctionCallContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.functionCall`.
     * @param ctx the parse tree
     */
    exitFunctionCall?: (ctx: FunctionCallContext) => void;
    /**
     * Enter a parse tree produced by `IfcExpressionParser.exprList`.
     * @param ctx the parse tree
     */
    enterExprList?: (ctx: ExprListContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.exprList`.
     * @param ctx the parse tree
     */
    exitExprList?: (ctx: ExprListContext) => void;
    /**
     * Enter a parse tree produced by `IfcExpressionParser.arrayExpr`.
     * @param ctx the parse tree
     */
    enterArrayExpr?: (ctx: ArrayExprContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.arrayExpr`.
     * @param ctx the parse tree
     */
    exitArrayExpr?: (ctx: ArrayExprContext) => void;
    /**
     * Enter a parse tree produced by `IfcExpressionParser.arrayElementList`.
     * @param ctx the parse tree
     */
    enterArrayElementList?: (ctx: ArrayElementListContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.arrayElementList`.
     * @param ctx the parse tree
     */
    exitArrayElementList?: (ctx: ArrayElementListContext) => void;
    /**
     * Enter a parse tree produced by `IfcExpressionParser.literal`.
     * @param ctx the parse tree
     */
    enterLiteral?: (ctx: LiteralContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.literal`.
     * @param ctx the parse tree
     */
    exitLiteral?: (ctx: LiteralContext) => void;
    /**
     * Enter a parse tree produced by `IfcExpressionParser.numLiteral`.
     * @param ctx the parse tree
     */
    enterNumLiteral?: (ctx: NumLiteralContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.numLiteral`.
     * @param ctx the parse tree
     */
    exitNumLiteral?: (ctx: NumLiteralContext) => void;
    /**
     * Enter a parse tree produced by `IfcExpressionParser.stringLiteral`.
     * @param ctx the parse tree
     */
    enterStringLiteral?: (ctx: StringLiteralContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.stringLiteral`.
     * @param ctx the parse tree
     */
    exitStringLiteral?: (ctx: StringLiteralContext) => void;
    /**
     * Enter a parse tree produced by `IfcExpressionParser.booleanLiteral`.
     * @param ctx the parse tree
     */
    enterBooleanLiteral?: (ctx: BooleanLiteralContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.booleanLiteral`.
     * @param ctx the parse tree
     */
    exitBooleanLiteral?: (ctx: BooleanLiteralContext) => void;
    /**
     * Enter a parse tree produced by `IfcExpressionParser.logicalLiteral`.
     * @param ctx the parse tree
     */
    enterLogicalLiteral?: (ctx: LogicalLiteralContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.logicalLiteral`.
     * @param ctx the parse tree
     */
    exitLogicalLiteral?: (ctx: LogicalLiteralContext) => void;
    /**
     * Enter a parse tree produced by `IfcExpressionParser.variableRef`.
     * @param ctx the parse tree
     */
    enterVariableRef?: (ctx: VariableRefContext) => void;
    /**
     * Exit a parse tree produced by `IfcExpressionParser.variableRef`.
     * @param ctx the parse tree
     */
    exitVariableRef?: (ctx: VariableRefContext) => void;
}
