/** * [WHO]: Pure formatting helpers for goal display: formatGoalElapsedSeconds, formatTokens, goalStatusLabel, goalUsageSummary, goalSummaryLines, goalStatusIndicator, shouldConfirmBeforeReplacing, editedGoalStatus, validateObjective, validateBudget * [FROM]: Depends on ./goal-types * [TO]: Consumed by ./goal-command, ./goal-tools, ./index (status line) * [HERE]: extensions/builtin/goal/goal-format.ts - display & validation boundary; no I/O */ import { type ThreadGoal, type ThreadGoalStatus } from "./goal-types.js"; export declare function formatGoalElapsedSeconds(seconds: number): string; export declare function formatTokens(tokens: number): string; export declare function goalStatusLabel(status: ThreadGoalStatus): string; export interface GoalUsageSummary { elapsed: string; tokensLabel: string; tokensUsed: string; tokensBudget: string; hasBudget: boolean; } export declare function goalUsageSummary(goal: ThreadGoal): GoalUsageSummary; export declare function goalSummaryLines(goal: ThreadGoal): string[]; export type GoalStatusIndicator = { type: "Active"; usage: string; } | { type: "Paused"; } | { type: "Blocked"; } | { type: "UsageLimited"; } | { type: "BudgetLimited"; usage: string | null; } | { type: "Complete"; usage: string; }; export declare function goalStatusIndicator(goal: ThreadGoal, activeTurnStartedAt: number | null): GoalStatusIndicator; export declare function shouldConfirmBeforeReplacing(goal: ThreadGoal): boolean; export declare function editedGoalStatus(status: ThreadGoalStatus): ThreadGoalStatus; export declare function validateObjective(input: string): { ok: true; value: string; } | { ok: false; reason: string; }; export declare function validateBudget(input: number | null | undefined): { ok: true; value: number | null; } | { ok: false; reason: string; };