import type { Differences } from "./Differences.js";
import type { Test } from "./Test.js";
/**
 * Takes a `Test` object and returns a promise with a `TestResult`.
 *
 * @category Test
 * @example
 * ```typescript
 * evaluate({
 * 	given: "🟢",
 * 	must: "🟩",
 * 	received: () => "🟩",
 * 	wanted: () => "🟩",
 * }); // Promise<{ given: "🟢", , must: "🟩" }>
 * evaluate({
 * 	given: "🟢",
 * 	must: "🟩",
 * 	received: () => "❌",
 * 	wanted: () => "🟩",
 * }); // Promise<{ differences: […], given: "🟢", , must: "🟩" }>
 * ```
 * @param testDescription A `Test` object.
 * @returns A promise with a `TestResult` object.
 */
export declare const evaluate: <Value>(testDescription: Test<Value>) => Promise<{
    given: string;
    must: string;
    differences?: Differences;
}>;
