import { type FrictionTriageDecision } from "audit-tools/shared"; import type { ArtifactBundle } from "../io/artifacts.js"; import type { AuditObligation, AuditState } from "../types/auditState.js"; export interface NextStepDecision { state: AuditState; selected_obligation: string | null; selected_executor: string | null; reason: string; } /** * Obligation id for the terminal friction-capture close-out (audit side). Last in * PRIORITY — it fires only after every audit obligation is satisfied and the run * would otherwise present as complete. */ export declare const FRICTION_CAPTURE_OBLIGATION_ID = "friction_capture_current"; export declare const PRIORITY: string[]; export declare function findObligation(obligations: AuditObligation[]): AuditObligation | undefined; /** Options for `decideNextStep`. */ export interface DecideNextStepOptions { /** * Forwarded to `deriveAuditState` → `computeStaleArtifacts`. `false` suppresses * the staleness stderr record for this derivation — used inside `advanceAudit`'s * drain loop so the cascade emits a single consolidated record at the boundary. * Defaults to `true`. */ emitStaleness?: boolean; } export declare function decideNextStep(bundle: ArtifactBundle, options?: DecideNextStepOptions): NextStepDecision; /** * The audit friction record's own key. Audit keeps ONE friction record per artifacts * dir — its step envelopes carry no per-run id — so the key is a fixed literal rather * than a minted run id. Single-sourced here beside the close-out that reads it, so the * capture seams, the close-out, the run-linkage writers, and the operator handoff's * `friction_record` path cannot spell it differently. Two source sites still write the * derived record path out as a literal, each because a mechanical reader requires one * there: `friction_capture_executor`'s `artifacts_written` (executorRunners.ts), read * structurally by the write-site extractor, and the same executor's * `produces[].artifact` in EXECUTOR_REGISTRY (executors.ts), whose producer generator * refuses any non-string-literal initializer. DECL-10 pins BOTH against this constant. */ export declare const AUDIT_FRICTION_RUN_ID = "run"; /** * Terminal friction-TRIAGE close-out for audit. Folded into the `present_report` * terminal step (not a separate executor) so it fires at exactly the right moment. * Blocks ("dispose") until every mechanical event + reflection is disposed AND ≥1 * open observation written — empty set no longer trivially satisfies. * Single-sourced in `audit-tools/shared`; parity with remediate. */ export declare function decideAuditFrictionCloseout(artifactsDir: string, runId: string): Promise; //# sourceMappingURL=nextStep.d.ts.map