/**
 * Speed presets for streaming text reveal.
 * - `'natural'` — steady character-by-character reveal (~2 chars/frame)
 * - `'fast'` — faster reveal, scales with backlog (~4 chars/frame)
 * - `'instant'` — no animation, returns full text immediately
 */
export type StreamingTextSpeed = 'natural' | 'fast' | 'instant';
export interface UseStreamingTextOptions {
    /**
     * Speed of text reveal.
     * @default 'natural'
     */
    speed?: StreamingTextSpeed;
}
/**
 * Smooths bursty streamed text into a steady character-by-character reveal.
 *
 * Returns a string that grows steadily toward `targetText`. When `isStreaming`
 * is false, returns the full `targetText` immediately. When the user prefers
 * reduced motion, the progressive reveal is skipped entirely and the full
 * `targetText` is returned immediately.
 *
 * The hook advances on word and syntax boundaries, avoiding slices inside
 * markdown markers like `**`, backticks, `[]()`, etc. This prevents visual
 * glitches when the output is rendered through a markdown parser.
 *
 * @example
 * ```
 * const displayed = useStreamingText(rawText, isStreaming);
 * return <Markdown>{displayed}</Markdown>;
 * ```
 *
 * @example
 * ```
 * const displayed = useStreamingText(rawText, isStreaming, { speed: 'fast' });
 * ```
 */
export declare function useStreamingText(targetText: string, isStreaming: boolean, options?: UseStreamingTextOptions): string;
//# sourceMappingURL=useStreamingText.d.ts.map