1 | import React from "react";
|
2 | import { Conversation as ConversationType, MessageEvent, StartTypingEvent, StopTypingEvent, EpisodeCompleteEvent, Message, StartEvent, ReplyEvent, SpeechConfig, Mood } from "@charisma-ai/sdk";
|
3 | export interface UseConversationOptions {
|
4 | conversationId?: number;
|
5 | onChangeCharacterMoods?: (newCharacterMoods: CharacterMoods) => void;
|
6 | onMessage?: (event: MessageEvent) => Promise<void> | void;
|
7 | onStartTyping?: (event: StartTypingEvent) => void;
|
8 | onStopTyping?: (event: StopTypingEvent) => void;
|
9 | onEpisodeComplete?: (event: EpisodeCompleteEvent) => void;
|
10 | onStart?: (event: StartEvent) => void;
|
11 | onReply?: (event: ReplyEvent) => void;
|
12 | onResume?: () => void;
|
13 | onTap?: () => void;
|
14 | shouldResumeOnReady?: boolean | StartEvent;
|
15 | shouldStartOnReady?: boolean | StartEvent;
|
16 | speechConfig?: SpeechConfig;
|
17 | }
|
18 | export declare enum ChatMode {
|
19 | Tap = "tap",
|
20 | Chat = "chat"
|
21 | }
|
22 | export interface CharacterMoods {
|
23 | [id: number]: Mood;
|
24 | }
|
25 | export declare type StoredMessage = Message | {
|
26 | type: "player";
|
27 | timestamp: number;
|
28 | message: {
|
29 | text: string;
|
30 | };
|
31 | };
|
32 | export interface ConversationChildProps {
|
33 | inputValue: string;
|
34 | isTyping: boolean;
|
35 | messages: StoredMessage[];
|
36 | mode: ChatMode;
|
37 | type: (newInputValue: string) => void;
|
38 | start: ConversationType["start"];
|
39 | reply: ConversationType["reply"];
|
40 | tap: ConversationType["tap"];
|
41 | resume: ConversationType["resume"];
|
42 | }
|
43 | export declare const useConversation: ({ conversationId, onChangeCharacterMoods, onMessage, onStartTyping, onStopTyping, onEpisodeComplete, onStart, onReply, onResume, onTap, shouldResumeOnReady, shouldStartOnReady, speechConfig, }: UseConversationOptions) => {
|
44 | inputValue: string;
|
45 | isTyping: boolean;
|
46 | messages: StoredMessage[];
|
47 | mode: ChatMode;
|
48 | type: React.Dispatch<React.SetStateAction<string>>;
|
49 | start: (event?: StartEvent) => void;
|
50 | reply: (event: ReplyEvent) => void;
|
51 | tap: () => void;
|
52 | resume: () => void;
|
53 | };
|
54 | export interface ConversationProps extends UseConversationOptions {
|
55 | children: (conversation: ConversationChildProps) => React.ReactNode;
|
56 | }
|
57 | export declare const Conversation: ({ children, ...props }: ConversationProps) => JSX.Element;
|