import type { Assumption, HandoffCandidate, IntelligenceMilestone, MilestoneLedger, MilestonePreMortem, Recommendation } from '@manehorizons/cadence-types'; export declare function isEligible(rec: Recommendation): boolean; export declare function seedPreMortem(recs: Recommendation[]): MilestonePreMortem; export declare function markOperatorEntry(text: string): string; export declare function deepenPreMortem(milestone: IntelligenceMilestone, recs: ReadonlyArray, assumptions: ReadonlyArray, _now?: Date): MilestonePreMortem; /** * Deterministic for a fixed `now` ONLY when `existing` is the unmodified prior output * (the survivor block preserves `existing` order). `rawName` for a grouped bucket is the * first-seen `suggestedMilestoneId` among recs sanitizing to the same slug; callers should * normalize labels upstream if canonical casing matters. */ export declare function clusterMilestones(recs: Recommendation[], existing: IntelligenceMilestone[], now?: Date): IntelligenceMilestone[]; export type TransitionAction = 'accept' | 'defer' | 'close' | 'reopen'; export type TransitionResult = { ok: true; ledger: MilestoneLedger; warning?: string; } | { ok: false; error: string; }; export declare function applyTransition(ledger: MilestoneLedger, id: string, action: TransitionAction, now?: Date, ref?: string): TransitionResult; export declare function runProposeMilestones(root: string, now?: Date): Promise; export declare function runMilestoneTransition(root: string, id: string, action: TransitionAction, ref?: string): Promise; export type ExportResult = { ok: true; ledger: MilestoneLedger; artifactPath: string; } | { ok: false; error: string; }; export declare function runMilestoneExport(root: string, id: string, now?: Date): Promise; export type PreMortemResult = { ok: true; ledger: MilestoneLedger; } | { ok: false; error: string; }; export type PreMortemAdditions = { outOfScope?: string[]; likelyFailureModes?: string[]; hiddenDependencies?: string[]; }; export declare function runMilestonePreMortem(root: string, id: string, now?: Date, additions?: PreMortemAdditions): Promise; /** * Phase 179: per-recommendation reconciliation entry for `runMilestoneStatus`. * A discriminated union on `status` — `not-yet-converted` means the * recommendation has no `convertedToPhaseId` yet (or wasn't found in the * ledger at all); `no-worktree-found` means it converted to a phase but no * local/sibling worktree currently advertises that phase as its active one; * `resolved` carries the live worktree facts from the matched * `HandoffCandidate`. */ export type MilestoneStatusPhaseEntry = { recommendationId: string; status: 'not-yet-converted'; } | { recommendationId: string; phaseId: string; status: 'no-worktree-found'; } | { recommendationId: string; phaseId: string; status: 'resolved'; source: HandoffCandidate['source']; worktreePath: string; worktreeBranch: string | null; liveLoopPosition: string | null; settled: boolean; }; export type MilestoneStatusResult = { ok: true; milestoneId: string; phases: MilestoneStatusPhaseEntry[]; } | { ok: false; error: string; }; /** * Phase 179: read-only fan-in reconciliation. Maps a milestone's * `recommendationIds` to the phases they converted into, resolves each * phase's owning worktree (local or sibling) via phase 142's * `gatherHandoffCandidates`, and reports that worktree's live loop position — * replacing N manual `cadence status` round-trips with one. Never mutates * any ledger. */ export declare function runMilestoneStatus(repoRoot: string, id: string): Promise; //# sourceMappingURL=milestone.d.ts.map