/** How the preview writes numbers, commits and untrusted text. Nothing here reads a plan. */ /** The thousands abbreviation of FR-18: 34000 becomes "34k", 840 stays "840". */ export declare function formatTokens(tokens: number): string; /** The short commit form the preview shows. */ export declare function shortCommit(commit: string): string; /** * True when two commits name the same one, whether abbreviated or full. A prefix match * needs at least a short commit on both sides: source text is untrusted, and "9" must * not silence the warning that the tree moved. */ export declare function sameCommit(left: string, right: string): boolean; /** * One line in, one line out. Source titles and paths are attacker-controlled text * (FR-60): folding newlines and control characters is what stops a session title * from forging a preview line of its own. */ export declare function oneLine(text: string, maxLength?: number): string; /** Singular or plural, chosen by the count. */ export declare function plural(count: number, one: string, many: string): string;