import { ConversationActionsProps } from './ConversationActions'; import { ConversationInputProps } from './ConversationInput'; import { ConversationMessagesProps } from './ConversationMessages'; import { ConversationStatusProps } from './ConversationStatus'; import { ConversationSuggestionsProps } from './ConversationSuggestions'; import { default as default_2 } from 'react'; import { ReactNode } from 'react'; export declare type Attachment = { id: string; type: 'image' | 'file'; name: string; url: string; file?: File; }; export declare type AttachmentAction = { type: 'select-collection'; collection: Collection; } | { type: 'attach-tab'; } | { type: 'screenshot'; } | { type: 'record-video'; } | { type: 'add-file'; }; export declare type Citation = { id: string; index: number; title: string; url: string; }; declare type Collection = { id: string; label: string; }; export declare type ContentBlock = TextBlock; export declare type ContextPill = { id: string; label: string; icon?: string; }; export declare const ContextPillBadge: ({ pill, onRemove }: ContextPillBadgeProps) => default_2.JSX.Element; declare interface ContextPillBadgeProps { pill: ContextPill; onRemove?: (pill: ContextPill) => void; } export declare const Conversation: (({ messages, callbacks, children, suggestions, actions, placeholder, attachments, collections, contextPills, showBranding, className, }: ConversationProps) => default_2.JSX.Element) & { Messages: ({ className, bottomPadding, onContentBehind }: ConversationMessagesProps) => default_2.JSX.Element; Input: ({ placeholder, attachments, collections, contextPills, disabled, isElevated, className, }: ConversationInputProps) => default_2.JSX.Element; Suggestions: ({ items, className }: ConversationSuggestionsProps) => default_2.JSX.Element | null; Actions: ({ actions, onActionClick, className }: ConversationActionsProps) => default_2.JSX.Element | null; Loading: ({ className }: ConversationStatusProps) => default_2.JSX.Element; }; export declare type ConversationAction = { id: string; label: string; icon?: string; description?: string; }; export declare const ConversationActions: ({ actions, onActionClick, className }: ConversationActionsProps_2) => default_2.JSX.Element | null; declare interface ConversationActionsProps_2 { actions: ConversationAction[]; onActionClick?: (action: ConversationAction) => void; className?: string; } export declare type ConversationCallbacks = { onSend?: (text: string, attachments?: Attachment[]) => void; onStop?: () => void; onSuggestionClick?: (suggestion: Suggestion) => void; onActionClick?: (action: ConversationAction, messageId: string) => void; onFeedback?: (messageId: string, feedback: 'positive' | 'negative') => void; onCitationClick?: (citation: Citation) => void; onAttachmentAction?: (action: AttachmentAction) => void; onContextPillRemove?: (pill: ContextPill) => void; onCopy?: (messageId: string, content: string) => void; }; export declare interface ConversationContextValue { messages: Message[]; callbacks: ConversationCallbacks; isStreaming: boolean; } export declare const ConversationInput: ({ placeholder, attachments, collections, contextPills, disabled, isElevated, className, }: ConversationInputProps_2) => default_2.JSX.Element; declare interface ConversationInputProps_2 { placeholder?: string; attachments?: Attachment[]; collections?: Collection[]; contextPills?: ContextPill[]; disabled?: boolean; isElevated?: boolean; className?: string; } export declare const ConversationMessageAssistant: ({ message, className }: ConversationMessageAssistantProps) => default_2.JSX.Element; declare interface ConversationMessageAssistantProps { message: Message; className?: string; } export declare const ConversationMessages: ({ className, bottomPadding, onContentBehind }: ConversationMessagesProps_2) => default_2.JSX.Element; declare interface ConversationMessagesProps_2 { className?: string; bottomPadding?: number; onContentBehind?: (isBehind: boolean) => void; } export declare const ConversationMessageUser: ({ message, className }: ConversationMessageUserProps) => default_2.JSX.Element; declare interface ConversationMessageUserProps { message: Message; className?: string; } declare interface ConversationProps { messages: Message[]; callbacks: ConversationCallbacks; children?: ReactNode; suggestions?: Suggestion[]; actions?: ConversationAction[]; placeholder?: string; attachments?: Attachment[]; collections?: Collection[]; contextPills?: ContextPill[]; showBranding?: boolean; className?: string; } export declare function ConversationProvider({ messages, callbacks, children }: ConversationProviderProps): default_2.JSX.Element; declare interface ConversationProviderProps { messages: Message[]; callbacks: ConversationCallbacks; children: default_2.ReactNode; } export declare const ConversationStatus: ({ className }: ConversationStatusProps_2) => default_2.JSX.Element; declare interface ConversationStatusProps_2 { className?: string; } export declare const ConversationSuggestions: ({ items, className }: ConversationSuggestionsProps_2) => default_2.JSX.Element | null; declare interface ConversationSuggestionsProps_2 { items: Suggestion[]; className?: string; } export declare type Message = { id: string; role: MessageRole; content: ContentBlock[]; status: MessageStatus; createdAt?: Date; feedback?: 'positive' | 'negative'; }; export declare type MessageRole = 'user' | 'ai'; export declare type MessageStatus = 'pending' | 'streaming' | 'completed' | 'error'; export declare type Suggestion = { id: string; text: string; icon?: string; }; export declare type TextBlock = { type: 'text'; text: string; citations?: Citation[]; }; export declare function useConversation(): ConversationContextValue; export { }