import type { CommandIO, CommandResult } from './io.js'; import type { MilestoneLedger } from '@manehorizons/cadence-types'; /** * Zero-eligible empty-result enrichment (phase 207 T2): states the * milestone-eligibility precondition in concrete terms, names the * nearest-miss candidate (highest-scored recommendation that's still live * but not yet eligible) with what it's missing, and prints the exact * `cadence recommendation promote` command that would fix it — computed via * the shared `findNearestCandidates` helper so this never diverges from * `cadence recommend`/`cadence next`'s own ranking. Best-effort: a ledger * read failure here silently degrades to no enrichment rather than turning * an otherwise-successful `propose` call into an error. */ export declare function buildEmptyResultMessage(repoRoot: string): Promise; /** * AC-2 (phase 221 T2): the single shared definition of "did this run produce * any newly-proposed milestones". `ledger.milestones` is the FULL historical * ledger (clusterMilestones returns survivors + freshly-clustered), not just * this run's output — `ledger.milestones.length === 0` would wrongly suppress * the zero-eligible enrichment whenever any old accepted/deferred/exported/ * closed milestone survives from a past run. The correct empty-this-run * signal is "zero newly-proposed milestones" (`status === 'proposed'`). * Both `milestoneProposeService` below and `cli/commands/milestone.ts`'s * `propose` action call this one function — a prior whole-branch review * caught this exact predicate fixed on only one of the two call sites when * they were kept as independent copies, so this export exists to make that * mistake structurally impossible. */ export declare function hasNewlyProposedMilestone(ledger: MilestoneLedger): boolean; /** * `cadence milestone propose` as a service seam (phase 153) — MCP adapter over * the shared `runProposeMilestones` core. Takes no arguments: it re-reads the * recommendation + milestone ledgers, clusters newly eligible recommendations * (status `accepted`, readiness `ready-for-milestone`/`ready-for-cadence-spec`) * into proposed milestones, and writes the updated milestone ledger. Already * proposed/accepted/deferred/exported milestones are preserved untouched, so * this is safe to call repeatedly. `data` is the updated `MilestoneLedger`, * matching `cadence milestone propose --json`'s output shape. */ export type MilestoneProposeArgs = Record; export declare function milestoneProposeService(repoRoot: string, _args: MilestoneProposeArgs, io: CommandIO): Promise; //# sourceMappingURL=milestone-propose.d.ts.map