export type CertificationLevel = 1 | 2 | 3; export interface CertificationWorkspaceFile { path: string; content: string; } export interface CertificationWorkspace { files?: CertificationWorkspaceFile[]; } export interface StepExpectation { status: 0 | "non-zero"; stdoutContains?: string | string[]; stderrContains?: string | string[]; jsonPath?: Record; } export interface StepCapture { jsonPath: Record; } export interface CertificationStep { name: string; command: string[]; expect: StepExpectation; capture?: StepCapture; } export interface CertificationScenario { id: string; name: string; description: string; taxonomy: string[]; level: CertificationLevel; workspace?: CertificationWorkspace; setup?: CertificationStep[]; steps: CertificationStep[]; recovery: CertificationStep[]; verify: CertificationStep[]; } export interface StepResult { name: string; command: string[]; status: number; passed: boolean; stdout: string; stderr: string; captured?: Record; error?: string; } export interface ScenarioResult { id: string; name: string; taxonomy: string[]; level: CertificationLevel; status: "pass" | "fail"; phase: "setup" | "steps" | "recovery" | "verify"; setupResults: StepResult[]; stepResults: StepResult[]; recoveryResults: StepResult[]; verifyResults: StepResult[]; error?: string; durationMs: number; } export interface CertificationReport { generatedAt: string; synthVersion: string; summary: { total: number; passed: number; failed: number; }; scenarios: ScenarioResult[]; matrix: Record>; } export interface CertificationOptions { cliPath: string; libraryDir: string; outputDir?: string; suite?: string; explain?: boolean; } export declare function loadScenarios(libraryDir: string): Promise; export declare function runCertification(options: CertificationOptions): Promise; export declare function printCertificationReport(report: CertificationReport): void; export declare function writeMatrix(report: CertificationReport, matrixPath: string): void;