/**
 * Domain Skill Regression / Eval Harness (Spark Plan 18)
 *
 * Executes a `DomainSkillEvalContract` against a caller-supplied skill
 * runner. The harness:
 *  - Iterates `cases[]` and runs each via `runner(case)` to obtain output.
 *  - Evaluates `assertions[caseId][]` using a small JSONPath subset
 *    (dot + index access plus comparison operators "<", "<=", ">", ">=", "=").
 *  - Records SkillEvalRunResult entries with status + per-assertion failures.
 *
 * Design choices:
 *  - JSONPath subset is intentional: full JSONPath would require a parser
 *    library; the subset covers what real assertions need
 *    (`$.summary.ttid_ms`, `$.diagnostics[0].reason_code`, etc).
 *  - Numeric assertions support `"<2500"`, `"<=2500"`, `">=10"`, `">5"`,
 *    `"=workload_heavy"` style strings; absence of an operator falls back
 *    to deep equality.
 */
import { type DomainSkillEvalContract, type SkillEvalAssertion, type SkillEvalRunResult } from '../types/sparkContracts';
export interface SkillRunner {
    (caseSpec: {
        caseId: string;
        tracePath: string;
        skillId: string;
    }): Promise<any>;
}
export interface RunHarnessOptions {
    contract: DomainSkillEvalContract;
    runner: SkillRunner;
    /** Restrict to a subset of caseIds. */
    filterCaseIds?: string[];
}
interface ResolveResult {
    found: boolean;
    value?: any;
}
/** Resolve a JSONPath-subset expression against a value. */
export declare function resolvePath(root: any, path: string): ResolveResult;
/** Evaluate a single assertion. Returns {ok, actual} so failures can record details. */
export declare function evaluateAssertion(output: any, assertion: SkillEvalAssertion): {
    ok: boolean;
    actual: string;
};
/**
 * Run every case in `contract.cases` (optionally filtered) and return
 * SkillEvalRunResult[] capturing pass/fail/flaky/skipped status with
 * per-assertion failure traces.
 */
export declare function runDomainSkillEvalHarness(options: RunHarnessOptions): Promise<SkillEvalRunResult[]>;
export {};
//# sourceMappingURL=domainSkillEvalHarness.d.ts.map