import type { SessionReport, ToolCallEvent } from "../domain/session-report.js"; import type { AssertionOptions, Matcher, ToolCallMatcher } from "./types.js"; export declare function describeMatcher(matcher: Matcher): string; export declare function describeToolCallMatcher(matcher: ToolCallMatcher): string; export declare function matchesText(value: string, matcher: Matcher): boolean; export declare function formatObservedValues(label: string, values: readonly string[]): string; export declare function formatObservedToolCalls(events: readonly ToolCallEvent[]): string; export declare function composeAssertionMessage(detail: string, observed: string, customMessage?: string): string; export declare function firstMatchIndex(values: readonly string[], matcher: Matcher): number; export declare function matchesToolCall(event: ToolCallEvent, matcher: ToolCallMatcher): boolean; export declare function firstToolCallMatchIndex(events: readonly ToolCallEvent[], matcher: ToolCallMatcher): number; export declare function countMatches(values: readonly string[], matcher: Matcher): number; export declare function countToolCallMatches(events: readonly ToolCallEvent[], matcher: ToolCallMatcher): number; export declare function assertIncludes(label: string, values: readonly string[], matcher: Matcher, options?: AssertionOptions): void; export declare function assertNotIncludes(label: string, values: readonly string[], matcher: Matcher, options?: AssertionOptions): void; export declare function assertCount(label: string, values: readonly string[], matcher: Matcher, expected: number, options?: AssertionOptions): void; export declare function assertAtLeast(label: string, values: readonly string[], matcher: Matcher, min: number, options?: AssertionOptions): void; export declare function assertAtMost(label: string, values: readonly string[], matcher: Matcher, max: number, options?: AssertionOptions): void; export declare function assertBefore(label: string, values: readonly string[], firstMatcher: Matcher, secondMatcher: Matcher, options?: AssertionOptions): void; export declare function assertOnly(label: string, values: readonly string[], matchers: readonly Matcher[], options?: AssertionOptions): void; export declare function assertSize(label: string, values: readonly string[], expected: number, options?: AssertionOptions): void; export declare function assertFirst(label: string, values: readonly string[], matcher: Matcher, options?: AssertionOptions): void; export declare function assertLast(label: string, values: readonly string[], matcher: Matcher, options?: AssertionOptions): void; export declare function assertToolCallHas(events: readonly ToolCallEvent[], matcher: ToolCallMatcher, options?: AssertionOptions): void; export declare function assertToolCallCount(events: readonly ToolCallEvent[], matcher: ToolCallMatcher, expected: number, options?: AssertionOptions): void; export declare function assertToolCallAtLeast(events: readonly ToolCallEvent[], matcher: ToolCallMatcher, min: number, options?: AssertionOptions): void; export declare function assertToolCallAtMost(events: readonly ToolCallEvent[], matcher: ToolCallMatcher, max: number, options?: AssertionOptions): void; export declare function assertToolCallBefore(events: readonly ToolCallEvent[], firstMatcher: ToolCallMatcher, secondMatcher: ToolCallMatcher, options?: AssertionOptions): void; export declare function assertToolCallSequence(events: readonly ToolCallEvent[], matchers: readonly ToolCallMatcher[], options?: AssertionOptions): void; export declare function assertToolCallOnly(events: readonly ToolCallEvent[], matchers: readonly ToolCallMatcher[], options?: AssertionOptions): void; export declare function getCommands(report: SessionReport): string[]; export declare function getFileReads(report: SessionReport): string[]; export declare function getToolCalls(report: SessionReport): ToolCallEvent[];