import { type Environment } from "../../env";
import { type Expr, type FnCallExpr } from "../../expr";
import type { FunctionValue } from "../../function-value";
import type { FunctionType } from "../../types/definitions";
import { type EvaluatorContext, type FunctionEvaluationContext } from "../context";
export declare function checkDeferredGenericReturnType({ functionBodyExpr, functionType, functionValue, env, context, }: {
    functionBodyExpr: Expr;
    functionType: FunctionType;
    functionValue: FunctionValue;
    env: Environment;
    context: EvaluatorContext;
}): void;
export declare function createFunctionBodyEvaluationContext(context: EvaluatorContext, functionType: FunctionType, functionValue: FunctionValue, env: Environment): {
    evaluationContext: EvaluatorContext;
    functionBodyContext: FunctionEvaluationContext;
};
export declare function tryToImplementFunctionByFunctionType({ expr, functionType, callerEnv, context, }: {
    expr: FnCallExpr;
    functionType: FunctionType;
    callerEnv: Environment;
    context: EvaluatorContext;
}): Expr;
