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): import("react/jsx-runtime").JSX.Element;
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): import("react/jsx-runtime").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): import("react/jsx-runtime").JSX.Element;
declare namespace AIReasoningContent {
    var displayName: string;
}
export interface AIReasoningBlockProps extends VariantProps<typeof reasoningBlockVariants> {
    /** 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): import("react/jsx-runtime").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): import("react/jsx-runtime").JSX.Element | null;
declare namespace AIThinkingBar {
    var displayName: string;
}
export { AIReasoningBlock, AIReasoningContent, AIReasoningTrigger, AIThinkingBar, reasoningBlockVariants, ThinkingIndicator, };
