import { Schema } from 'effect'; import type { EvaluationArtifact } from './artifact'; import { type TestResult } from './assertions'; import { type CompareResult } from './comparator'; import type { GoldenTrace } from './golden-trace'; import { type IntentMetricsReport } from './metrics'; declare const SuiteCompareConfigSchema: Schema.Struct<{ enabled: Schema.optional; ignoreFields: Schema.optional>; ignorePaths: Schema.optional>; }>; declare const SuiteReplayConfigSchema: Schema.Struct<{ enabled: Schema.optional; fromCheckpoint: Schema.optional>>; }>; declare const SuiteCaseSchema: Schema.Struct<{ id: Schema.optional>; name: Schema.filter; description: Schema.optional; input: Schema.optional; expectedIntent: Schema.optional; assertions: Schema.Array$; compare: Schema.optional; ignoreFields: Schema.optional>; ignorePaths: Schema.optional>; }>>; replay: Schema.optional; fromCheckpoint: Schema.optional>>; }>>; }>; declare const SuiteManifestSchema: Schema.Struct<{ name: Schema.filter; version: Schema.optional>; defaults: Schema.optional; ignoreFields: Schema.optional>; ignorePaths: Schema.optional>; }>>; replay: Schema.optional; fromCheckpoint: Schema.optional>>; }>>; }>>; cases: Schema.filter>; name: Schema.filter; description: Schema.optional; input: Schema.optional; expectedIntent: Schema.optional; assertions: Schema.Array$; compare: Schema.optional; ignoreFields: Schema.optional>; ignorePaths: Schema.optional>; }>>; replay: Schema.optional; fromCheckpoint: Schema.optional>>; }>>; }>>>; }>; export type SuiteCompareConfig = typeof SuiteCompareConfigSchema.Type; export type SuiteReplayConfig = typeof SuiteReplayConfigSchema.Type; export type SuiteCaseDefinition = typeof SuiteCaseSchema.Type; export type SuiteManifest = typeof SuiteManifestSchema.Type; export interface SuiteCaseExecutionResult { trace?: GoldenTrace; candidate?: EvaluationArtifact | GoldenTrace; baseline?: EvaluationArtifact | GoldenTrace; predictedIntent?: string; latencyMs?: number; tokenUsage?: { inputTokens?: number; outputTokens?: number; totalTokens?: number; }; error?: string; } export interface SuiteCaseReport { id: string; name: string; passed: boolean; expectedIntent?: string; predictedIntent?: string; assertions: TestResult['results']; assertionFailures: number; compare?: { enabled: boolean; passed: boolean; regressions: number; scorecard?: CompareResult['scorecard']; }; latencyMs: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; }; error?: string; } export interface SuiteReport { suite: { name: string; version?: string; }; totals: { totalCases: number; passedCases: number; failedCases: number; passRate: number; }; latency: { minMs: number; maxMs: number; avgMs: number; totalMs: number; }; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; avgTokensPerCase: number; }; regressions: { comparedCases: number; passedCases: number; failedCases: number; totalRegressions: number; }; intentQuality: IntentMetricsReport; cases: SuiteCaseReport[]; } export declare function decodeSuiteManifest(input: unknown): SuiteManifest; export declare function parseSuiteManifest(input: string | unknown): SuiteManifest; export declare function runSuite(manifestInput: SuiteManifest | string | unknown, executeCase: (testCase: SuiteCaseDefinition, index: number) => Promise): Promise; export {}; //# sourceMappingURL=suite.d.ts.map