import { type ReviewVerdict } from "./types"; export interface ValidationCommandSpec { name: string; command: string; } export interface ValidationRun { exactCommand: string; cwd: string; exitStatus: number; pass: boolean; } export interface FinalizeChecks { runValidation(spec: ValidationCommandSpec): Promise; resolveCommit(): Promise; commitOnBranch(commit: string, branch: string): Promise; prOrIssue(): Promise<{ prUrl: string | null; issueArtifact: string | null; }>; } export interface FinalizeOptions { root: string; sessionId: string; workspace: string; branch: string; requireTests?: boolean; requireCommit?: boolean; requirePr?: boolean; /** Review-only sessions produce a terminal verdict instead of implementation validation. */ reviewOnly?: boolean; /** Operator/loop-supplied terminal review verdict (closed vocabulary). */ verdict?: string | null; /** * Final assistant text from the live RPC owner, used to extract a closed-vocabulary verdict * for review-only sessions when no explicit {@link verdict} is supplied. Never persisted raw. */ assistantText?: string | null; /** Bounded PR/issue reference for the review target (e.g. "PR-414"). Never resolved from the live repo. */ prTarget?: string | null; validationCommands?: ValidationCommandSpec[]; checks: FinalizeChecks; clock?: () => number; } export interface FinalizeResult { completed: boolean; receiptPath: string | null; validation: { name: string; valid: boolean; exitStatus: number; }[]; commitHash: string | null; prUrl: string | null; verdict?: ReviewVerdict | null; issueArtifact: string | null; blockers: string[]; } export declare function runFinalize(opts: FinalizeOptions): Promise; /** Real checks: git for commit/branch, gh for PR, Bun.spawn for validation commands. */ export declare function defaultFinalizeChecks(workspace: string): FinalizeChecks;