export type StreamMode = 'typewriter' | 'fade';
export interface UseTextStreamOptions {
    /** Text content to stream */
    textStream: string | AsyncIterable<string>;
    /** Animation speed (1-100) */
    speed?: number;
    /** Callback when streaming completes */
    onComplete?: () => void;
}
export interface UseTextStreamReturn {
    /** Current displayed text */
    displayedText: string;
    /** Whether streaming is in progress */
    isStreaming: boolean;
    /** Whether streaming is complete */
    isComplete: boolean;
    /** Reset the stream */
    reset: () => void;
}
export declare function useTextStream({ textStream, speed, onComplete, }: UseTextStreamOptions): UseTextStreamReturn;
interface TypewriterTextProps {
    text: string;
    className?: string;
}
declare function TypewriterText({ text, className }: TypewriterTextProps): import("react/jsx-runtime").JSX.Element;
declare namespace TypewriterText {
    var displayName: string;
}
interface FadeTextProps {
    text: string;
    className?: string;
}
declare function FadeText({ text, className }: FadeTextProps): import("react/jsx-runtime").JSX.Element;
declare namespace FadeText {
    var displayName: string;
}
export interface AIResponseStreamProps {
    /** Text content to stream (string or async iterable) */
    textStream: string | AsyncIterable<string>;
    /** Animation mode */
    mode?: StreamMode;
    /** Animation speed (1-100) */
    speed?: number;
    /** Callback when streaming completes */
    onComplete?: () => void;
    /** Whether to show cursor during streaming */
    showCursor?: boolean;
    /** Additional class name */
    className?: string;
}
declare function AIResponseStream({ textStream, mode, speed, onComplete, showCursor, className, }: AIResponseStreamProps): import("react/jsx-runtime").JSX.Element;
declare namespace AIResponseStream {
    var displayName: string;
}
export { AIResponseStream, FadeText, TypewriterText };
