import { spawn as nodeSpawn } from "node:child_process"; import { type UltragoalGateResult, type UltragoalMutationInput } from "./runtime.js"; export declare const GATE_ROLES: readonly ["verifier", "code-reviewer", "architect"]; export type GateRole = (typeof GATE_ROLES)[number]; export type GateVerdict = "PASS" | "BLOCK" | "INCONCLUSIVE"; export interface GateSpawnRequest { role: GateRole; planRevision: number; prompt: string; promptFile?: string; cwd: string; timeoutMs: number; copilotBin?: string; pluginRoot: string; } export interface GateSpawnResponse { stdout: string; stderr: string; exitCode: number; timedOut: boolean; overflowed: boolean; } export type GateSpawn = (request: GateSpawnRequest) => Promise; export interface RunUltragoalGateInput extends UltragoalMutationInput { timeoutMs?: number; copilotBin?: string; pluginRoot?: string; } export interface RunUltragoalGateDependencies { spawn?: GateSpawn; } interface ParsedGateFooter { role: GateRole; verdict: GateVerdict; planRevision: number; summary: string; } export declare function parseGateFooter(stdout: string, expectedRole: GateRole, expectedRevision: number): ParsedGateFooter; export declare function createDefaultGateSpawn(spawn?: typeof nodeSpawn): GateSpawn; export declare function runUltragoalGate(input: RunUltragoalGateInput, dependencies?: RunUltragoalGateDependencies): Promise; export {};