diff --git a/.changeset/simplify-eval-types.md b/.changeset/simplify-eval-types.md
new file mode 100644
index 000000000..2805f7950
--- /dev/null
+++ b/.changeset/simplify-eval-types.md
@@ -0,0 +1,5 @@
+---
+"braintrust": major
+---
+
+ref!: Simplify Eval type definitions
diff --git a/js/src/framework.ts b/js/src/framework.ts
index 9d2bef9d3..bce815f8f 100644
--- a/js/src/framework.ts
+++ b/js/src/framework.ts
@@ -97,13 +97,13 @@ export type EvalData<
Metadata extends BaseMetadata = DefaultMetadataType,
> =
| EvalCase[]
- | (() => EvalCase[])
| Promise[]>
- | (() => Promise[]>)
- | AsyncGenerator>
| AsyncIterable>
| BaseExperiment
- | (() => BaseExperiment);
+ | (() =>
+ | EvalCase[]
+ | Promise[]>
+ | BaseExperiment);
export type EvalTask<
Input,
@@ -111,15 +111,10 @@ export type EvalTask<
Expected,
Metadata extends BaseMetadata,
Parameters extends EvalParameters,
-> =
- | ((
- input: Input,
- hooks: EvalHooks,
- ) => Promise