interface CyclingPhraseProps { /** Words to cycle through. Cycle wraps around indefinitely. */ words: readonly string[]; /** Optional className applied to the outer span. */ className?: string; /** Milliseconds per character during the morph step. */ charMs?: number; /** Milliseconds to hold a fully-typed word before starting next morph. */ holdMs?: number; } /** * Terminal-style cycling word: a fixed-size block cursor walks left- * to-right through the word, overwriting the previous word's char at * each position with the new word's char (or trimming trailing chars * if the new word is shorter). On hold the cursor is hidden — the * morph is the only time it appears. A static "..." suffix follows * the word at all times. * * Visual sequence (Thinking → Vibing): * Thinking... (hold, no cursor) * V█hinking... → Vi█inking... → ... → Vibing█... * Vibing... (hold, no cursor) * ... * * Width is pinned to the longest word in the list (rendered invisibly * underneath) so cycling doesn't shift the dots or surrounding layout. */ export declare function CyclingPhrase({ words, className, charMs, holdMs, }: CyclingPhraseProps): import("react").JSX.Element | null; export {}; //# sourceMappingURL=cycling-phrase.d.ts.map