import { type Environment } from "../../env";
import { type Expr } from "../../expr";
import type { TraitType } from "../../types/definitions";
import type { EvaluatorContext, TraitSpecializationResult, TraitTypeCallResult } from "../context";
export declare function tryToSpecializeTraitType({ traitType, argExprs, callerEnv, context, }: {
    traitExpr: Expr;
    traitType: TraitType;
    argExprs: Expr[];
    callerEnv: Environment;
    context: EvaluatorContext;
}): TraitSpecializationResult;
export declare function tryToImplementTraitWithArgumentsByTraitType({ traitExpr, traitType, argExprs, callerEnv, context, }: {
    traitExpr: Expr;
    traitType: TraitType;
    argExprs: Expr[];
    callerEnv: Environment;
    context: EvaluatorContext;
}): TraitTypeCallResult;
