import { type VariantProps } from 'class-variance-authority'; import * as React from 'react'; declare const reasoningBlockVariants: (props?: ({ variant?: "default" | "subtle" | "thinking" | null | undefined; state?: "idle" | "streaming" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; interface ThinkingIndicatorProps { className?: string; } declare function ThinkingIndicator({ className }: ThinkingIndicatorProps): React.JSX.Element; declare namespace ThinkingIndicator { var displayName: string; } export interface AIReasoningTriggerProps { /** Title text */ title?: string; /** Whether the block is expanded */ isOpen: boolean; /** Callback to toggle open state */ onToggle: () => void; /** Whether AI is currently streaming/thinking */ isStreaming?: boolean; /** Duration text to display */ duration?: string; /** ID of the controlled content panel */ contentId?: string; /** Additional class name */ className?: string; } declare function AIReasoningTrigger({ title, isOpen, onToggle, isStreaming, duration, contentId, className, }: AIReasoningTriggerProps): React.JSX.Element; declare namespace AIReasoningTrigger { var displayName: string; } export interface AIReasoningContentProps { /** Content to display (can be markdown string or ReactNode) */ children: React.ReactNode; /** Whether to render as markdown */ markdown?: boolean; /** Additional class name */ className?: string; } declare function AIReasoningContent({ children, markdown, className, }: AIReasoningContentProps): React.JSX.Element; declare namespace AIReasoningContent { var displayName: string; } export interface AIReasoningBlockProps extends VariantProps { /** Reasoning content (markdown string or ReactNode) */ children: React.ReactNode; /** Title for the reasoning block */ title?: string; /** Controlled open state */ open?: boolean; /** Default open state (uncontrolled) */ defaultOpen?: boolean; /** Callback when open state changes */ onOpenChange?: (open: boolean) => void; /** Whether AI is currently streaming/thinking */ isStreaming?: boolean; /** Whether to render content as markdown */ markdown?: boolean; /** Duration text to display */ duration?: string; /** Additional class name */ className?: string; } declare function AIReasoningBlock({ children, title, open: controlledOpen, defaultOpen, onOpenChange, isStreaming, markdown, duration, variant, className, }: AIReasoningBlockProps): React.JSX.Element; declare namespace AIReasoningBlock { var displayName: string; } export interface AIThinkingBarProps { /** Text to display */ text?: string; /** Whether thinking is active */ isThinking?: boolean; /** Action button content */ action?: React.ReactNode; /** Additional class name */ className?: string; } declare function AIThinkingBar({ text, isThinking, action, className, }: AIThinkingBarProps): React.JSX.Element | null; declare namespace AIThinkingBar { var displayName: string; } export { AIReasoningBlock, AIReasoningContent, AIReasoningTrigger, AIThinkingBar, reasoningBlockVariants, ThinkingIndicator, };