import React from "react"; import { Conversation as ConversationType, MessageEvent, StartTypingEvent, StopTypingEvent, EpisodeCompleteEvent, Message, StartEvent, ReplyEvent, SpeechConfig, Mood } from "@charisma-ai/sdk"; export interface UseConversationOptions { conversationId?: number; onChangeCharacterMoods?: (newCharacterMoods: CharacterMoods) => void; onMessage?: (event: MessageEvent) => Promise | void; onStartTyping?: (event: StartTypingEvent) => void; onStopTyping?: (event: StopTypingEvent) => void; onEpisodeComplete?: (event: EpisodeCompleteEvent) => void; onStart?: (event: StartEvent) => void; onReply?: (event: ReplyEvent) => void; onResume?: () => void; onTap?: () => void; shouldResumeOnReady?: boolean | StartEvent; shouldStartOnReady?: boolean | StartEvent; speechConfig?: SpeechConfig; } export declare enum ChatMode { Tap = "tap", Chat = "chat" } export interface CharacterMoods { [id: number]: Mood; } export declare type StoredMessage = Message | { type: "player"; timestamp: number; message: { text: string; }; }; export interface ConversationChildProps { inputValue: string; isTyping: boolean; messages: StoredMessage[]; mode: ChatMode; type: (newInputValue: string) => void; start: ConversationType["start"]; reply: ConversationType["reply"]; tap: ConversationType["tap"]; resume: ConversationType["resume"]; } export declare const useConversation: ({ conversationId, onChangeCharacterMoods, onMessage, onStartTyping, onStopTyping, onEpisodeComplete, onStart, onReply, onResume, onTap, shouldResumeOnReady, shouldStartOnReady, speechConfig, }: UseConversationOptions) => { inputValue: string; isTyping: boolean; messages: StoredMessage[]; mode: ChatMode; type: React.Dispatch>; start: (event?: StartEvent) => void; reply: (event: ReplyEvent) => void; tap: () => void; resume: () => void; }; export interface ConversationProps extends UseConversationOptions { children: (conversation: ConversationChildProps) => React.ReactNode; } export declare const Conversation: ({ children, ...props }: ConversationProps) => JSX.Element;