import { useConversation, type UseConversationParams } from "./useConversation"; import { Reference } from "./references"; import { Promotion } from "./promotions"; export type OpenCloseHandlers = { onOpen?: () => void; onClose?: () => void; }; export type UseChatbotProps = OpenCloseHandlers & UseConversationParams & { chatbotName?: string; maxInputCharacters?: number; maxCommentCharacters?: number; onReferenceClick?: (reference: Reference) => void; onSuggestedPromptClick?: (prompt: string) => void; onPromotionClick?: (promotion: Promotion) => void; }; export type ChatbotData = { awaitingReply: boolean; canSubmit: (text: string) => boolean; closeChat: () => boolean; conversation: ReturnType; handleSubmit: (text: string) => void | Promise; inputBarRef: React.RefObject; inputText: string; inputTextError: string; chatbotName?: string; maxInputCharacters?: number; maxCommentCharacters?: number; open: boolean; openChat: () => void; setInputText: (text: string) => void; onReferenceClick?: (reference: Reference) => void; onSuggestedPromptClick?: (prompt: string) => void; onPromotionClick?: (promotion: Promotion) => void; }; export declare function useChatbot({ onOpen, onClose, chatbotName, maxInputCharacters, maxCommentCharacters, onReferenceClick, onSuggestedPromptClick, onPromotionClick, ...useConversationArgs }: UseChatbotProps): ChatbotData;