import { Func } from "../Func.js";
import { ExpressionValue } from "../../../value/ExpressionValue.js";
import { ExprEvalResult } from "../../ExprEvalResult.js";
import { ExprType } from "../../../type/ExprType.js";
import { FunctionExpr } from "../FunctionExpr.js";
import { ParserRuleContext } from "antlr4ng";
import { Expr } from "../../Expr.js";
export declare class IF extends Func {
    private static readonly ARG_NAME_CONDITION;
    private static readonly ARG_NAME_THEN;
    private static readonly ARG_NAME_ELSE;
    private static readonly ARG_NAME_UNKNOWN;
    constructor();
    getReturnType(argumentTypes: Array<ExprType>): ExprType;
    protected checkArgumentTypes(providedArgumentTypes: Array<[ParserRuleContext, ExprType]>, ctx: any): void;
    protected transformArguments(callingExpr: Expr<any>, evaluatedArguments: Map<string, ExprEvalResult<ExpressionValue>>): void;
    protected calculateResult(callingExpr: FunctionExpr, evaluatedArguments: Map<string, ExpressionValue>): ExprEvalResult<ExpressionValue>;
}
