import type { MutReportJson } from 'peaks-loop-mut'; import { type BrowserEvent } from '../../services/qa/browser-restart-detector.js'; export type QaGateStatus = { readonly name: string; readonly status: 'passed' | 'skipped' | 'failed'; readonly reason?: string; /** * Plan 2 / Task 8 — when the gate consumes an artifact with a * deterministic signature, this field carries that signature for * downstream audit-trail consumers. Currently set only on the * `mutation` gate to MUT.sig (the `sha256` of mut-report.json). */ readonly mutSig?: string; }; export type QaRunResult = { readonly sessionId: string; readonly project: string; readonly browserEnabled: boolean; readonly gates: readonly QaGateStatus[]; readonly detectorTriggered: boolean; readonly diagnostic?: string; readonly subAgentPromptHint: string; /** * Plan 2 / Task 8 — MUT.sig when peaks-mut ran in this session. * Undefined when peaks-mut was not run (no mut-report.json) or * the user passed --no-mutation. */ readonly mutSig?: string; }; export type RunQaSliceInput = { readonly project: string; readonly sessionId: string; readonly browserEnabled: boolean; readonly maxRestarts: number; readonly detectorEnabled: boolean; readonly events: readonly BrowserEvent[]; readonly mutationReport: MutReportJson | null; readonly mutationEnabled: boolean; }; export declare const DEFAULT_MAX_BROWSER_RESTARTS = 3; export declare function runQaSlice(input: RunQaSliceInput): QaRunResult;