UNPKG

react-native-ajora

Version:

The most complete AI agent UI for React Native

83 lines (82 loc) 2.83 kB
import { IMessage } from "../types"; import ApiService, { UserEvent } from "../api"; import { Thread } from "../Thread/types"; import { FileData } from "@google/genai"; interface Messages { [key: string]: IMessage[]; } export interface Attachement extends FileData { progress?: number; isUploaded?: boolean; } export type AjoraState = { stream: IMessage[]; messages: Messages; threads: Thread[]; activeThreadId: string | null; isThinking: boolean; loadEarlier: boolean; isLoadingMessages?: boolean; mode: string; baseUrl: string; apiService: ApiService | null; isComplete: boolean; attachement: Attachement | undefined; isRecording: boolean; }; export type Ajora = AjoraState & { messagesByThread: IMessage[]; submitQuery: (query: UserEvent) => Promise<void>; stopStreaming: () => void; addNewThread: () => void; switchThread: (threadId: string) => void; getThreads: () => void; getMessages: (threadId: string) => void; setIsThinking: (isThinking: boolean) => void; setIsLoadingEarlier: (loadEarlier: boolean) => void; setMode: (mode: string) => void; regenerateMessage: (message: IMessage) => void; setIsComplete: (isComplete: boolean) => void; setAttachement: (attachement: Attachement) => void; updateAttachement: (attachement: Attachement) => void; clearAttachement: () => void; setIsRecording: (isRecording: boolean) => void; }; declare const useAjora: ({ initialMessages, initialThreads, baseUrl, bearerToken, debug, }: { initialMessages?: Record<string, IMessage[]>; initialThreads?: Thread[]; baseUrl?: string; bearerToken?: string; debug?: boolean; }) => { messagesByThread: IMessage[]; submitQuery: (query: UserEvent) => Promise<void>; stopStreaming: () => void; addNewThread: () => void; switchThread: (threadId: string) => void; getThreads: () => Promise<void>; getMessages: (threadId: string) => Promise<void>; setIsThinking: (isThinking: boolean) => void; setIsLoadingEarlier: (loadEarlier: boolean) => void; setMode: (mode: string) => void; regenerateMessage: (message: IMessage) => void; setIsComplete: (isComplete: boolean) => void; setAttachement: (attachement: Attachement) => void; updateAttachement: (attachement: Attachement) => void; clearAttachement: () => void; setIsRecording: (isRecording: boolean) => void; stream: IMessage[]; messages: Messages; threads: Thread[]; activeThreadId: string | null; isThinking: boolean; loadEarlier: boolean; isLoadingMessages?: boolean; mode: string; baseUrl: string; apiService: ApiService | null; isComplete: boolean; attachement: Attachement | undefined; isRecording: boolean; }; export default useAjora;