import type { Spec } from '../../types/index.js';
export type ScenarioVerdict = 'pass' | 'fail' | 'missing';
export interface ScenarioTestLink {
    path: string;
    line?: number;
}
export interface FrontmatterScenario {
    title: string;
    done: boolean;
    tests?: ScenarioTestLink[];
}
export interface PerScenarioResult {
    title: string;
    verdict: ScenarioVerdict;
    evidence: string[];
}
export interface SpecComplianceResult {
    /** 0-100 */
    dimensionScore: number;
    perScenario: PerScenarioResult[];
    /** The vitest command that was (or would have been) run */
    command: string;
}
/**
 * Parse scenarios from a raw spec.md content string.
 * Handles the multi-line YAML block that the simple KV parser cannot handle.
 *
 * Expected frontmatter shape:
 * ```yaml
 * scenarios:
 *   - title: "Scenario A"
 *     done: false
 *     tests:
 *       - path: tests/foo.test.ts
 *         line: 42
 * ```
 */
export declare function parseFrontmatterScenarios(raw: string): FrontmatterScenario[];
/**
 * Run vitest-backed spec-compliance for the given spec.
 * Each frontmatter scenario must have a `tests` array; missing links count as `fail`.
 */
export declare function runSpecCompliance(spec: Spec, projectPath: string): Promise<SpecComplianceResult>;
/**
 * Returns a list of scenario titles that lack a `tests` array.
 * Used by check-readiness to block `approved` when scenarios are untested.
 */
export declare function findScenariosWithoutTests(raw: string): string[];
//# sourceMappingURL=spec-compliance-runner.d.ts.map