import type { StandardSchemaV1 } from "#compiled/@standard-schema/spec/index.js";
import type { HandleMessageStreamEvent } from "#protocol/message.js";
import type { EveEvalCheck } from "#evals/types.js";
import { type EveEvalSubagentCallMatchOptions, type EveEvalToolCallMatchOptions } from "#evals/checks/match.js";
/**
 * Asserts the run ran to completion: it did not fail and did not park on an
 * unanswered HITL input request.
 */
export declare function completed(): EveEvalCheck;
/**
 * Asserts the run ended parked on HITL input (`input.requested` with no
 * resolution). For park-shaped evals: approval gates, ask-question flows.
 */
export declare function waiting(): EveEvalCheck;
/**
 * Asserts the run did not fail: terminal status is not `"failed"` and no
 * `turn.failed` / `step.failed` events were emitted. Parked runs pass; use
 * {@link completed} to also reject parking.
 */
export declare function didNotFail(): EveEvalCheck;
/**
 * Asserts the joined assistant message text contains `token` (substring for
 * strings, `test` for RegExps).
 */
export declare function messageIncludes(token: string | RegExp): EveEvalCheck;
/**
 * Asserts `result.output` deep-equals `value` (exact structural equality;
 * objects must carry the same keys on both sides).
 */
export declare function outputEquals(value: unknown): EveEvalCheck;
/**
 * Asserts `result.output` validates against a Standard Schema (e.g. a Zod
 * schema). Useful with `outputSchema` turns and `task.parseOutput`.
 */
export declare function outputMatches(schema: StandardSchemaV1): EveEvalCheck;
/**
 * Asserts a tool call with `name` happened. Options constrain the call
 * further: `input` partial-deep-matches the call input, `output` matches the
 * result, `isError` constrains error state, and `times` requires an exact
 * count of matching calls.
 */
export declare function toolCalled(name: string, options?: EveEvalToolCallMatchOptions): EveEvalCheck;
/**
 * Asserts no tool call with `name` happened.
 */
export declare function toolNotCalled(name: string): EveEvalCheck;
/**
 * Asserts the named tools were called in the given order (subsequence match:
 * other calls may interleave).
 */
export declare function toolOrder(names: readonly string[]): EveEvalCheck;
/**
 * Asserts no action result (tool, subagent, or skill) reported a failure.
 */
export declare function noFailedActions(): EveEvalCheck;
/**
 * Asserts a subagent delegation to `name` occurred. `remoteUrl` matches the
 * `subagent.called` remote metadata, `output` matches the
 * `subagent.completed` output.
 */
export declare function subagentCalled(name: string, options?: EveEvalSubagentCallMatchOptions): EveEvalCheck;
/**
 * Escape hatch: asserts an arbitrary predicate over the full typed event
 * stream. `label` names the check in reports.
 */
export declare function event(predicate: (events: readonly HandleMessageStreamEvent[]) => boolean, label: string): EveEvalCheck;
