UNPKG

@charisma-ai/react

Version:

Charisma.ai chat component for React

44 lines (43 loc) 1.79 kB
import React from "react"; import { Conversation as ConversationType, MessageEvent, StartTypingEvent, StopTypingEvent, SceneCompletedEvent, Message, StartEvent, ReplyEvent, SpeechConfig, Mood } from "@charisma-ai/sdk"; export interface UseConversationOptions { conversationId?: number; onChangeCharacterMoods?: (newCharacterMoods: CharacterMoods) => void; onMessage?: (event: MessageEvent) => void; onStartTyping?: (event: StartTypingEvent) => void; onStopTyping?: (event: StopTypingEvent) => void; onSceneCompleted?: (event: SceneCompletedEvent) => void; onStart?: (event: StartEvent) => void; onReply?: (event: ReplyEvent) => void; onTap?: () => void; speechConfig?: SpeechConfig; stopOnSceneComplete?: boolean; } export declare enum ChatMode { Tap = "tap", Chat = "chat" } export interface CharacterMoods { [id: number]: Mood; } export declare type StoredMessage = Message | { type: "player"; 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"]; } export declare const useConversation: ({ conversationId, onChangeCharacterMoods, onMessage, onStartTyping, onStopTyping, onSceneCompleted, onStart, onReply, onTap, speechConfig, stopOnSceneComplete }: UseConversationOptions) => ConversationChildProps; export interface ConversationProps extends UseConversationOptions { children: (conversation: ConversationChildProps) => React.ReactNode; } export declare const Conversation: ({ children, ...props }: ConversationProps) => JSX.Element;