import { type RotationStrategy } from '../usage/rotation-plan.js'; import { type AccountModelUsage } from '../usage/model-preference.js'; /** * Where rotation will actually send this session, in words. * * The table says what every account HAS. This says what happens next, which is * the question the numbers are being read to answer and the one thing no other * tool can show: it needs the usage, the policy and the ledger together, and * only ccx has all three. * * Kept out of the renderer so that stays a pure function of what it is given, * and out of the planner so the planner keeps answering one question. */ export interface NextUpInput { /** Candidates in the order rotation would try them, already filtered. */ candidates: AccountModelUsage[]; /** The account running now, so "staying put" can be said as staying put. */ current: string | null; modelInUse: string | null; preference: readonly string[]; strategy: RotationStrategy; spentThisRun?: ReadonlySet; } export declare function describeNextUp(input: NextUpInput): string | null;