import type { Environment } from "../../env";
import { type Expr, type FnCallExpr } from "../../expr";
import type { Type } from "../../types/definitions";
import type { Value } from "../../value";
import type { EvaluatorContext, IndexCallResult } from "../context";
export declare function tryToCallWithIndexTrait({ expr, valueType, selfValue, argExprs, callerEnv, context, }: {
    expr: FnCallExpr;
    valueType: Type;
    selfValue?: Value;
    argExprs: Expr[];
    callerEnv: Environment;
    context: EvaluatorContext;
}): IndexCallResult;
export declare function hasIndexImpl({ concreteType, argExprs, callerEnv, _context, }: {
    concreteType: Type;
    argExprs: Expr[];
    callerEnv: Environment;
    _context: EvaluatorContext;
}): boolean;
