import { Schema } from 'effect'; import type { GoldenTrace } from './golden-trace'; export interface AssertionResult { type: AssertionSpec['type']; passed: boolean; message: string; details?: Record; } declare const ToolCallsAssertionSpecSchema: Schema.Struct<{ type: Schema.Literal<["tool.calls"]>; expected: Schema.filter; argsContains: Schema.optional>; }>>>; }>; declare const RoutingAssertionSpecSchema: Schema.Struct<{ type: Schema.Literal<["routing"]>; expected: Schema.Struct<{ method: Schema.optional, Schema.Literal<["intent.matching"]>, Schema.Literal<["default.agent"]>]>>; agentId: Schema.optional; intentId: Schema.optional; matchType: Schema.optional, Schema.Literal<["regex"]>, Schema.Literal<["semantic"]>]>>; }>; }>; declare const ResponseAssertionSpecSchema: Schema.Struct<{ type: Schema.Literal<["response"]>; pathEquals: Schema.optional>; text: Schema.optional; semanticThreshold: Schema.optional>; caseSensitive: Schema.optional; }>; declare const CheckpointAssertionSpecSchema: Schema.Struct<{ type: Schema.Literal<["checkpoint"]>; expected: Schema.Struct<{ step: Schema.optional>; stepName: Schema.optional; status: Schema.optional; minCount: Schema.optional>>; }>; }>; declare const SchemaAssertionSpecSchema: Schema.Struct<{ type: Schema.Literal<["schema"]>; }>; export declare const AssertionSpecSchema: Schema.Union<[Schema.Struct<{ type: Schema.Literal<["tool.calls"]>; expected: Schema.filter; argsContains: Schema.optional>; }>>>; }>, Schema.Struct<{ type: Schema.Literal<["routing"]>; expected: Schema.Struct<{ method: Schema.optional, Schema.Literal<["intent.matching"]>, Schema.Literal<["default.agent"]>]>>; agentId: Schema.optional; intentId: Schema.optional; matchType: Schema.optional, Schema.Literal<["regex"]>, Schema.Literal<["semantic"]>]>>; }>; }>, Schema.Struct<{ type: Schema.Literal<["response"]>; pathEquals: Schema.optional>; text: Schema.optional; semanticThreshold: Schema.optional>; caseSensitive: Schema.optional; }>, Schema.Struct<{ type: Schema.Literal<["checkpoint"]>; expected: Schema.Struct<{ step: Schema.optional>; stepName: Schema.optional; status: Schema.optional; minCount: Schema.optional>>; }>; }>, Schema.Struct<{ type: Schema.Literal<["schema"]>; }>]>; export declare const AssertionSuiteSchema: Schema.filter; expected: Schema.filter; argsContains: Schema.optional>; }>>>; }>, Schema.Struct<{ type: Schema.Literal<["routing"]>; expected: Schema.Struct<{ method: Schema.optional, Schema.Literal<["intent.matching"]>, Schema.Literal<["default.agent"]>]>>; agentId: Schema.optional; intentId: Schema.optional; matchType: Schema.optional, Schema.Literal<["regex"]>, Schema.Literal<["semantic"]>]>>; }>; }>, Schema.Struct<{ type: Schema.Literal<["response"]>; pathEquals: Schema.optional>; text: Schema.optional; semanticThreshold: Schema.optional>; caseSensitive: Schema.optional; }>, Schema.Struct<{ type: Schema.Literal<["checkpoint"]>; expected: Schema.Struct<{ step: Schema.optional>; stepName: Schema.optional; status: Schema.optional; minCount: Schema.optional>>; }>; }>, Schema.Struct<{ type: Schema.Literal<["schema"]>; }>]>>>; export type ToolCallsAssertionSpec = typeof ToolCallsAssertionSpecSchema.Type; export type RoutingAssertionSpec = typeof RoutingAssertionSpecSchema.Type; export type ResponseAssertionSpec = typeof ResponseAssertionSpecSchema.Type; export type CheckpointAssertionSpec = typeof CheckpointAssertionSpecSchema.Type; export type SchemaAssertionSpec = typeof SchemaAssertionSpecSchema.Type; export type AssertionSpec = ToolCallsAssertionSpec | RoutingAssertionSpec | ResponseAssertionSpec | CheckpointAssertionSpec | SchemaAssertionSpec; export declare function decodeAssertionSpecs(specs: unknown): AssertionSpec[]; export declare function runAssertion(trace: GoldenTrace, spec: AssertionSpec): AssertionResult; export interface TestCase { name: string; traceFile: string; assertions: unknown[]; } export interface TestResult { testCase: string; passed: boolean; results: AssertionResult[]; error?: string; } export declare function runAssertions(trace: GoldenTrace, assertions: unknown[]): Promise; export declare function loadGoldenTrace(filepath: string): Promise; export declare function runTestCase(testCase: TestCase, tracesDirectory: string): Promise; export declare function runTestCases(testCases: TestCase[], tracesDirectory: string): Promise; export declare function formatTestResults(results: TestResult[]): string; export {}; //# sourceMappingURL=assertions.d.ts.map