@charisma-ai/react
Version:
Charisma.ai chat component for React
44 lines (43 loc) • 1.79 kB
TypeScript
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;