@plteam/chat-ui
Version:
CUI Kit is a free and open-source library for creating AI assistant chat interfaces, built with React, Material UI, and TypeScript
28 lines (27 loc) • 1.7 kB
TypeScript
import * as React from 'react';
import { MobileMessageActionsType } from '../message/hooks/useMobileMessageActions';
import { MessagesModeType } from '../message/hooks/useMessagesMode';
import { ThreadModel } from '../../models/ThreadModel';
import { Thread, Message } from '../../models';
import { ApiManager } from '../core/useApiManager';
import { PrivateApiRefType } from '../core/useApiRef';
import { type ChatGlobalContextType } from '../core/ChatGlobalContext';
import { ChatScrollApiRef } from './ChatScroller';
import { Threads } from '../../models/Threads';
type ThreadContextType<DM extends Message, DD extends Thread<DM>> = {
thread: ThreadModel<DM, DD> | undefined;
mobileMessageActions: MobileMessageActionsType;
messageMode: MessagesModeType;
apiRef: React.RefObject<PrivateApiRefType<DM>>;
};
type Props<DM extends Message, DD extends Thread<DM>> = React.PropsWithChildren<{
model: Threads<DM, DD>;
thread: ThreadModel<DM, DD> | undefined;
apiManager: ApiManager;
scrollRef: React.RefObject<ChatScrollApiRef>;
globalProps: Pick<ChatGlobalContextType<any, any>, 'onFirstMessageSent' | 'onAssistantMessageTypingFinish' | 'enableBranches' | 'beforeUserMessageSend' | 'getCurrentBranch' | 'getConversationBlockHeightMin'>;
contentRef?: React.RefObject<HTMLDivElement | null>;
}>;
declare const ThreadProvider: <DM extends Message, DD extends Thread<DM>>({ children, model, thread, apiManager, scrollRef, contentRef, globalProps }: Props<DM, DD>) => React.JSX.Element;
declare const useThreadContext: <DM extends Message, DD extends Thread<DM>>() => ThreadContextType<DM, DD>;
export { ThreadProvider, useThreadContext };