import * as react from 'react';
import { HTMLAttributes, ComponentProps } from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';
import { IconButton } from '@kopexa/button';
/**
* Role of the message sender
*/
type MessageRole = "user" | "assistant" | "system";
type MessageProps = HTMLAttributes & {
/** Role of the message sender */
from: MessageRole;
};
declare function Message({ className, from, ...props }: MessageProps): react_jsx_runtime.JSX.Element;
declare namespace Message {
var displayName: string;
}
type MessageContentProps = HTMLAttributes;
declare function MessageContent({ children, className, ...props }: MessageContentProps): react_jsx_runtime.JSX.Element;
declare namespace MessageContent {
var displayName: string;
}
type MessageActionsProps = ComponentProps<"div">;
declare function MessageActions({ className, children, ...props }: MessageActionsProps): react_jsx_runtime.JSX.Element;
declare namespace MessageActions {
var displayName: string;
}
type MessageActionBaseProps = Omit, "aria-label" | "tooltip">;
type MessageActionProps = MessageActionBaseProps & ({
/** Tooltip text (also used as accessible label if label not provided) */
tooltip: string;
/** Accessible label (falls back to tooltip) */
label?: string;
} | {
/** Tooltip text */
tooltip?: undefined;
/** Accessible label (required if tooltip not provided) */
label: string;
});
declare function MessageAction({ tooltip, children, label, className, variant, size, ...props }: MessageActionProps): react_jsx_runtime.JSX.Element;
declare namespace MessageAction {
var displayName: string;
}
type MessageToolbarProps = ComponentProps<"div">;
declare function MessageToolbar({ className, children, ...props }: MessageToolbarProps): react_jsx_runtime.JSX.Element;
declare namespace MessageToolbar {
var displayName: string;
}
type MessageBranchProps = HTMLAttributes & {
/** Default branch index */
defaultBranch?: number;
/** Callback when branch changes */
onBranchChange?: (branchIndex: number) => void;
};
declare function MessageBranch({ defaultBranch, onBranchChange, className, children, ...props }: MessageBranchProps): react_jsx_runtime.JSX.Element;
declare namespace MessageBranch {
var displayName: string;
}
type MessageBranchContentProps = HTMLAttributes;
declare function MessageBranchContent({ children, ...props }: MessageBranchContentProps): react_jsx_runtime.JSX.Element;
declare namespace MessageBranchContent {
var displayName: string;
}
type MessageBranchSelectorProps = HTMLAttributes;
declare function MessageBranchSelector({ className, children, ...props }: MessageBranchSelectorProps): react_jsx_runtime.JSX.Element | null;
declare namespace MessageBranchSelector {
var displayName: string;
}
type MessageBranchPreviousProps = Omit, "aria-label">;
declare function MessageBranchPrevious({ children, ...props }: MessageBranchPreviousProps): react_jsx_runtime.JSX.Element;
declare namespace MessageBranchPrevious {
var displayName: string;
}
type MessageBranchNextProps = Omit, "aria-label">;
declare function MessageBranchNext({ children, ...props }: MessageBranchNextProps): react_jsx_runtime.JSX.Element;
declare namespace MessageBranchNext {
var displayName: string;
}
type MessageBranchPageProps = HTMLAttributes;
declare function MessageBranchPage({ className, ...props }: MessageBranchPageProps): react_jsx_runtime.JSX.Element;
declare namespace MessageBranchPage {
var displayName: string;
}
type MessageResponseProps = HTMLAttributes & {
/** Markdown content to render */
children?: string;
};
/**
* MessageResponse renders markdown content.
*
* Note: This is a basic implementation. For full markdown support with
* code highlighting, math, and mermaid diagrams, integrate with a
* markdown renderer like Streamdown or react-markdown.
*/
declare const MessageResponse: react.MemoExoticComponent<({ className, children, ...props }: MessageResponseProps) => react_jsx_runtime.JSX.Element>;
export { Message, MessageAction, type MessageActionProps, MessageActions, type MessageActionsProps, MessageBranch, MessageBranchContent, type MessageBranchContentProps, MessageBranchNext, type MessageBranchNextProps, MessageBranchPage, type MessageBranchPageProps, MessageBranchPrevious, type MessageBranchPreviousProps, type MessageBranchProps, MessageBranchSelector, type MessageBranchSelectorProps, MessageContent, type MessageContentProps, type MessageProps, MessageResponse, type MessageResponseProps, type MessageRole, MessageToolbar, type MessageToolbarProps };