import { Exp, ExpMeta } from "../../exp"; import { Core } from "../../core"; import { Ctx } from "../../ctx"; import { Value } from "../../value"; export declare class Replace extends Exp { meta: ExpMeta; target: Exp; motive: Exp; base: Exp; constructor(target: Exp, motive: Exp, base: Exp, meta: ExpMeta); free_names(bound_names: Set): Set; subst(name: string, exp: Exp): Exp; infer(ctx: Ctx): { t: Value; core: Core; }; repr(): string; }