import type { EvidenceReference } from "../evidence/store.js"; import { type ClaudeStructuredRoleTransport } from "../providers/claude-structured.js"; import { runCodexStructured } from "../providers/codex-exec.js"; import { type ProcessRunner } from "../providers/process.js"; import { createRuntimeWorkerAuthorities } from "../workers/runtime.js"; import { type ProtectedVerificationAuthority } from "./authority.js"; import { type ResultGateRecord } from "./result-gate-store.js"; type RuntimeAuthorities = ReturnType; type CodexStructuredRunner = typeof runCodexStructured; export type ResultGateProgress = Readonly<{ status: "checking" | "waiting" | "completed" | "retryable" | "blocked"; gate_id: string; gate_state: ResultGateRecord["state"]; ticket_id: string; ticket_state: string; deterministic_evidence: EvidenceReference | null; grade_evidence: EvidenceReference | null; reflection_evidence: EvidenceReference | null; trust_evidence: EvidenceReference | null; reason: string | null; }>; export interface ResultGateService { process(dispatchId: string): ResultGateProgress; read(dispatchId: string): ResultGateProgress | undefined; list(): readonly ResultGateProgress[]; } export declare function createResultGateService(options: { packageRoot: string; configRoot?: string; workspaceRoot: string; stateRoot: string; executablePath: string; env?: NodeJS.ProcessEnv; clock?: () => string; runtime?: RuntimeAuthorities; verification?: ProtectedVerificationAuthority; claudeStructured?: ClaudeStructuredRoleTransport; codexStructured?: CodexStructuredRunner; gitRunner?: ProcessRunner; }): ResultGateService; export {};