import { Exp, ExpMeta } from "../../exp"; import { Core } from "../../core"; import { Ctx } from "../../ctx"; import { Value } from "../../value"; export declare class EitherInd extends Exp { meta: ExpMeta; target: Exp; motive: Exp; base_left: Exp; base_right: Exp; constructor(target: Exp, motive: Exp, base_left: Exp, base_right: Exp, meta: ExpMeta); free_names(bound_names: Set): Set; subst(name: string, exp: Exp): Exp; infer(ctx: Ctx): { t: Value; core: Core; }; repr(): string; } export declare function either_ind_motive_t(either_t: Value): Value; export declare function either_ind_base_left_t(left_t: Value, motive: Value): Value; export declare function either_ind_base_right_t(right_t: Value, motive: Value): Value;