import type { WorkflowLoopStateSnapshot } from "../cli/workflow-loop-state.js"; import type { RalphLoopStateSnapshot } from "./ralph-loop-state.js"; import type { WorkflowReportStatusDetail } from "./workflow-report-status.js"; export declare const WORKFLOW_LIFECYCLE_SCHEMA_VERSION = "workflow-lifecycle.1"; type LifecyclePathStatus = "safe" | "unavailable" | "unsafe"; type LifecycleReadiness = "blocked" | "ready-for-closure"; export type WorkflowLifecycleBlocker = { readonly id: string; readonly reason: string; readonly source: string; }; export type WorkflowLifecycleFinishAuthority = { readonly blocker: WorkflowLifecycleBlocker | null; readonly status: "blocked" | "trusted"; }; export type WorkflowLifecycleProjection = { readonly blockers: readonly WorkflowLifecycleBlocker[]; readonly evidence: { readonly source: string; readonly status: "missing" | "present"; }; readonly finishAuthority: WorkflowLifecycleFinishAuthority; readonly loops: { readonly ralph: "absent" | "current" | "malformed" | "unsafe"; readonly workflow: "absent" | "current" | "malformed" | "stale" | "unassessed" | "unsafe"; }; readonly paths: { readonly evidence: LifecyclePathStatus; readonly harness: "invalid" | "safe"; readonly rules: LifecyclePathStatus; }; readonly readiness: LifecycleReadiness; readonly reports: { readonly implementation: WorkflowReportStatusDetail; readonly review: WorkflowReportStatusDetail; }; readonly schemaVersion: typeof WORKFLOW_LIFECYCLE_SCHEMA_VERSION; readonly tickets: { readonly status: "clear" | "pending"; }; }; export type WorkflowLifecycleProjectionInput = { readonly currentRulePackHash: string | undefined; readonly evidence: "missing" | "present"; readonly evidencePath: LifecyclePathStatus; readonly evidenceSource: string; readonly finishAuthority: WorkflowLifecycleFinishAuthority; readonly harness: "invalid" | "safe"; readonly implementationReport: WorkflowReportStatusDetail; readonly pendingTicketCount: number; readonly ralphLoop: RalphLoopStateSnapshot; readonly reviewReport: WorkflowReportStatusDetail; readonly rulesPath: LifecyclePathStatus; readonly rulesSource: string; readonly workflowLoop: WorkflowLoopStateSnapshot; }; export declare function projectWorkflowLifecycle(input: WorkflowLifecycleProjectionInput): WorkflowLifecycleProjection; export {};