@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.62 kB
TypeScript
import * as React from 'react';
import { ChatPropsTypes } from './useChatProps';
import { Thread, Message, FileAttachedParams } from '../../models';
import { PrivateApiRefType } from './useApiRef';
import { Threads } from '../../models/Threads';
import { FnType } from '../../models/types';
import SnackbarModel from '../../models/SnackbarModel';
import { ApiManager } from './useApiManager';
export type ChatGlobalContextType<DM extends Message = any, DD extends Thread<DM> = any> = {
apiRef: React.RefObject<PrivateApiRefType>;
model: Threads<DM, DD>;
actionsAssistant: {
element: Exclude<ChatPropsTypes<DM, DD>['assistantActions'], undefined>[number];
}[];
handleCreateNewThread: FnType<DD>;
snackbar: SnackbarModel;
onFileAttached?: (params: FileAttachedParams) => Promise<void> | void;
} & Omit<ChatPropsTypes<DM, DD>, 'assistantActions' | 'thread' | 'threads' | 'handleCreateNewThread'>;
type ProviderProps<DM extends Message = any, DD extends Thread<DM> = any> = React.PropsWithChildren<{
props: ChatPropsTypes<DM, DD>;
apiManager: ApiManager;
}>;
declare const useChatContext: <DM extends Message, DD extends Thread<DM>>() => ChatGlobalContextType<DM, DD>;
export declare const useSafeChatContext: <DM extends Message, DD extends Thread<DM>>() => ChatGlobalContextType<DM, DD>;
declare const useChatModel: () => Threads<Message, Thread<Message>>;
declare const ChatGlobalProvider: React.MemoExoticComponent<({ props, children, apiManager }: ProviderProps) => React.JSX.Element>;
export { ChatGlobalProvider, useChatContext, useChatModel };