/** * polishGoal — Pure utility functions for generating a polished, imperative * single-sentence Goal line in the spec completion summary. * * No AI calls, no side-effects. Deterministic string transformations only. */ /** * selectGoalSource — Choose the best source for the goal line from a * structured set of candidates, applying the spec's 3-tier fallback chain: * 1. AI recap (if non-empty/non-whitespace) * 2. Key decisions (if non-empty/non-whitespace after normalisation) * 3. User request (fallback) * * For `keyDecisions`, bullet prefixes are stripped and fragments joined with `; `. */ export declare function selectGoalSource(opts: { aiRecap: string; keyDecisions: string | string[]; userRequest: string; }): { source: 'ai' | 'decisions' | 'user'; text: string; }; /** * polishGoalSentence — Transform any goal source text into a polished, * imperative, single-sentence string ending with a period. * * Steps applied (all deterministic): * 1. Whitespace normalization * 2. Strip trailing ellipses * 3. Remove leading framing phrases ("I want to …", "We will …", etc.) * 4. Single-sentence enforcement (take first sentence) * 5. Imperative verb enforcement (prepend "Implement " if needed) * 6. Capitalise first letter * 7. Ensure exactly one trailing period */ export declare function polishGoalSentence(text: string): string;