import { Ctx } from "../../ctx"; import { Exp } from "../../exp"; import { Core } from "../../core"; import { Solution } from "../../solution"; import { Value } from "../../value"; import { Closure } from "../closure"; import * as Exps from "../../exps"; import { ImApInsertion, ImApInsertionEntry } from "./im-ap-insertion"; import { ImFnInsertion } from "./im-fn-insertion"; import { ReadbackEtaExpansion } from "../../value"; export declare abstract class ImPiValue extends Value implements ReadbackEtaExpansion, ImFnInsertion, ImApInsertion { field_name: string; arg_t: Value; ret_t_cl: Closure; constructor(field_name: string, arg_t: Value, ret_t_cl: Closure); readback(ctx: Ctx, t: Value): Core | undefined; readback_eta_expansion(ctx: Ctx, value: Value): Core; unify(solution: Solution, that: Value): Solution; abstract insert_im_fn(ctx: Ctx, fn: Exps.Fn, renaming: Array<{ field_name: string; local_name: string; }>): Core; abstract insert_im_ap(ctx: Ctx, arg: Exp, target_core: Core, entries: Array): { t: Value; core: Core; }; abstract solve_im_ap(ctx: Ctx, arg: Exp): Solution; }