import type { VariableType, TypeAliasEntry } from "../types.js"; export type TypeCase = { kind: "resultSuccess"; } | { kind: "resultFailure"; } | { kind: "member"; type: VariableType; disc?: { prop: string; value: string | number | boolean; }; } | { kind: "literal"; value: string | number | boolean; }; export type CaseSet = { cases: TypeCase[]; closed: boolean; }; /** * Enumerate the cases of a value type for exhaustiveness / future narrowing. * `closed: false` means the type is open (string/number/any, a union containing * `any`, an effect set, or any unrecognized shape) — exhaustiveness can only be * satisfied by a `_` arm, never required. Effect sets are deliberately open here: * their enumeration belongs to `resolveEffectSet` (handler-narrowing spec). */ export declare function decomposeCases(type: VariableType, aliases: Record): CaseSet;