/**
 * Screen-reader-friendly output transformations.
 *
 * When accessibility.screenReader is enabled, all terminal output passes
 * through `applyScreenReader()` first. This:
 *   - strips ANSI escape codes (NVDA/JAWS/VoiceOver read them literally)
 *   - replaces decorative emoji + unicode glyphs with their word meaning
 *     ("✓" → "done", "→" → "to", "•" → "bullet", etc.)
 *   - normalizes whitespace so the reader doesn't pause mid-sentence on
 *     box-drawing characters
 *
 * Also exports utilities for blind-friendly UX:
 *   - `summarize()` — heuristic short-summary of a long response, so the
 *     reader can ask "give me the gist" instead of listening to 800 words
 *   - `isLikelyDestructive(toolName, args)` — used by the destructive-action
 *     verbal-confirm path in query.ts
 *   - `countWords()` — quick word count for the long-response threshold
 */
import type { GrawkusConfig } from './types.js';
export declare function stripAnsi(s: string): string;
export declare function stripAllAnsi(s: string): string;
/**
 * Replace decorative symbols + emoji with spoken-language equivalents.
 */
export declare function symbolsToWords(s: string): string;
/**
 * Full screen-reader transform: ANSI off, symbols → words, then a final
 * pass that drops any remaining lone control character.
 */
export declare function applyScreenReader(s: string): string;
/**
 * Conditional transform: only runs when screenReader is enabled, otherwise
 * returns the input unchanged. Use this as the standard sink for any
 * terminal output (console.log replacements, status lines, etc.).
 */
export declare function screenReaderFilter(s: string, config: GrawkusConfig): string;
export declare function countWords(s: string): number;
/**
 * Cheap, no-LLM summary: take the first sentence of each paragraph (up to
 * 3 paragraphs) and return as a single paragraph. Good enough to answer
 * "give me the gist" for a blind user without burning another API call.
 *
 * If the response is shorter than the threshold, returns it unchanged.
 */
export declare function summarize(text: string, thresholdWords?: number, maxSentences?: number): string;
export declare function isLikelyDestructive(toolName: string, args: unknown): boolean;
/**
 * Build a one-sentence "I am about to X" announcement for the destructive
 * confirmation prompt. Kept terse — TTS time is user time.
 */
export declare function describeDestructive(toolName: string, args: unknown): string;
