teodor-new-chat-ui 1.2.6 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/components/chat/ChatApp.d.ts +25 -6
  2. package/dist/components/chat/ChatInterface.d.ts +16 -5
  3. package/dist/components/chat/ChatProvider.d.ts +37 -81
  4. package/dist/components/chat/InlineBranchSelector.d.ts +13 -0
  5. package/dist/components/chat/MessageComponent.d.ts +34 -12
  6. package/dist/components/chat/ResponsiveChatContainer.d.ts +11 -0
  7. package/dist/components/chat/ThreadManager.d.ts +19 -4
  8. package/dist/components/chat/chat-routing.d.ts +15 -0
  9. package/dist/components/chat/index.d.ts +12 -14
  10. package/dist/components/settings/ChatSettings.d.ts +30 -0
  11. package/dist/components/ui/resizable.d.ts +1 -1
  12. package/dist/hooks/useApiClient.d.ts +34 -0
  13. package/dist/index.esm.js +6665 -9562
  14. package/dist/index.umd.js +53 -67
  15. package/dist/lib/index.d.ts +12 -36
  16. package/dist/types/api.d.ts +212 -0
  17. package/package.json +58 -58
  18. package/README.md +0 -73
  19. package/dist/api/mockBranchingApi.d.ts +0 -43
  20. package/dist/components/chat/BranchVisualization.d.ts +0 -10
  21. package/dist/components/chat/BranchingUI.d.ts +0 -16
  22. package/dist/components/chat/ChatHeader.d.ts +0 -7
  23. package/dist/components/chat/ChatSettingsButton.d.ts +0 -8
  24. package/dist/components/chat/ChatSettingsDemo.d.ts +0 -2
  25. package/dist/components/chat/ChatSettingsModal.d.ts +0 -6
  26. package/dist/components/chat/ChatWidget.d.ts +0 -20
  27. package/dist/components/chat/DevControls.d.ts +0 -5
  28. package/dist/components/chat/MissingDataDemo.d.ts +0 -2
  29. package/dist/components/chat/useChatJsonSync.d.ts +0 -9
  30. package/dist/components/demo/JsonRendererDemo.d.ts +0 -2
  31. package/dist/hooks/useChatMessages.d.ts +0 -65
  32. package/dist/hooks/useStreamMonitor.d.ts +0 -75
  33. /package/dist/components/chat/{JsonRenderer.d.ts → JsonRenderer/JsonRenderer.d.ts} +0 -0
  34. /package/dist/components/chat/{JsonRendererConfig.d.ts → JsonRenderer/JsonRendererConfig.d.ts} +0 -0
  35. /package/dist/components/chat/{JsonRendererControlPanel.d.ts → JsonRenderer/JsonRendererControlPanel.d.ts} +0 -0
  36. /package/dist/components/chat/{JsonRendererUtils.d.ts → JsonRenderer/JsonRendererUtils.d.ts} +0 -0
  37. /package/dist/components/chat/{MissingDataDetector.d.ts → JsonRenderer/MissingDataDetector.d.ts} +0 -0
  38. /package/dist/components/chat/{SpecializedRenderers.d.ts → JsonRenderer/SpecializedRenderers.d.ts} +0 -0
@@ -1,8 +1,27 @@
1
- interface ChatAppProps {
2
- apiBaseUrl?: string;
3
- enableUrlSync?: boolean;
4
- layout?: 'sidebar' | 'tabs' | 'split';
1
+ /**
2
+ * Chat App - Complete chat application with sidebar layout
3
+ * Combines all chat components into a ready-to-use chat interface
4
+ */
5
+ import { ChatProviderProps } from './ChatProvider';
6
+ import { ApiConfig } from '@/types/api';
7
+ export interface ChatAppProps extends Omit<ChatProviderProps, 'children'> {
8
+ layout?: 'sidebar' | 'fullscreen' | 'tabs';
9
+ showThreads?: boolean;
5
10
  className?: string;
11
+ customStyles?: {
12
+ container?: string;
13
+ sidebar?: string;
14
+ chatArea?: string;
15
+ };
6
16
  }
7
- export declare function ChatApp({ apiBaseUrl, enableUrlSync, layout, className }: ChatAppProps): import("react/jsx-runtime").JSX.Element;
8
- export {};
17
+ export declare function ChatApp({ layout, showThreads, className, customStyles, ...providerProps }: ChatAppProps): import("react/jsx-runtime").JSX.Element;
18
+ export interface SimpleChatProps {
19
+ apiConfig: ApiConfig;
20
+ className?: string;
21
+ onError?: (error: string) => void;
22
+ }
23
+ export declare function SimpleChat({ apiConfig, className, onError }: SimpleChatProps): import("react/jsx-runtime").JSX.Element;
24
+ export * from './ChatProvider';
25
+ export * from './ChatInterface';
26
+ export * from './ThreadManager';
27
+ export * from './MessageComponent';
@@ -1,10 +1,21 @@
1
- interface ChatInterfaceProps {
1
+ /**
2
+ * Chat Interface - Clean, exportable chat UI component
3
+ * Designed for use across multiple applications with customizable styling
4
+ */
5
+ export interface ChatInterfaceProps {
2
6
  className?: string;
3
7
  placeholder?: string;
4
8
  autoFocus?: boolean;
5
- showBranches?: boolean;
6
9
  maxHeight?: string;
7
- enableInputFieldEditing?: boolean;
10
+ enableFileUpload?: boolean;
11
+ enableMessageEditing?: boolean;
12
+ customStyles?: {
13
+ container?: string;
14
+ messagesArea?: string;
15
+ inputArea?: string;
16
+ sendButton?: string;
17
+ };
18
+ onMessageSent?: (message: string) => void;
19
+ onError?: (error: string) => void;
8
20
  }
9
- export declare function ChatInterface({ className, placeholder, autoFocus, showBranches, maxHeight, enableInputFieldEditing }: ChatInterfaceProps): import("react/jsx-runtime").JSX.Element;
10
- export {};
21
+ export declare function ChatInterface({ className, placeholder, autoFocus, maxHeight, enableFileUpload, enableMessageEditing, customStyles, onMessageSent, onError }: ChatInterfaceProps): import("react/jsx-runtime").JSX.Element;
@@ -1,93 +1,49 @@
1
- import React from 'react';
2
- export interface Message {
3
- id?: string;
4
- role: "human" | "ai" | "tool";
5
- content: string | any;
6
- timestamp?: string;
7
- name?: string;
8
- tool_call_id?: string;
9
- args?: any;
10
- branch_id?: string;
11
- sequence_number?: number;
12
- isMarkdown?: boolean;
13
- agentName?: string;
14
- }
15
- export interface ChatSettings {
16
- appearance: {
17
- theme: 'light' | 'dark' | 'system';
18
- };
19
- jsonFormatting: {
20
- enabled: boolean;
21
- theme: 'professional' | 'clean' | 'minimal' | 'dark';
22
- compactMode: boolean;
23
- showIcons: boolean;
24
- highlightMissingData: boolean;
25
- missingDataStyle: 'red' | 'yellow' | 'gray';
26
- maxHeight: number;
27
- autoDetectStructure: boolean;
28
- };
29
- messageDisplay: {
30
- showTimestamps: boolean;
31
- showAgentNames: boolean;
32
- compactMessages: boolean;
33
- showToolCalls: boolean;
34
- };
35
- chatBehavior: {
36
- autoScroll: boolean;
37
- soundEnabled: boolean;
38
- typewriterEffect: boolean;
39
- };
40
- }
41
- export interface Thread {
42
- id: string;
43
- title?: string;
44
- updated_at: string;
45
- created_at: string;
46
- }
47
- export interface Branch {
48
- branch_id: string;
49
- created_at: string;
50
- from_message_index: number;
51
- last_sequence: number;
52
- message_count: number;
53
- preview: string;
54
- is_current?: boolean;
55
- }
56
- interface ChatState {
1
+ /**
2
+ * Chat Provider - Clean, exportable chat context
3
+ * Designed for use across multiple applications with consistent API
4
+ */
5
+ import { ReactNode } from 'react';
6
+ import { Message, ThreadResponse, ChatSettings, CreateThreadRequest, ApiConfig } from '@/types/api';
7
+ interface ChatContextValue {
57
8
  currentThreadId: string | null;
9
+ threads: ThreadResponse[];
58
10
  messages: Message[];
59
11
  isLoading: boolean;
60
12
  isLoadingHistory: boolean;
61
13
  error: string | null;
62
- interrupt: any;
63
- threads: Thread[];
64
- loadingThreads: boolean;
65
- availableBranches: Branch[];
66
- currentBranch: string | null;
67
14
  settings: ChatSettings;
68
- }
69
- interface ChatActions {
70
- selectThread: (threadId: string | null) => void;
71
- createThread: () => Promise<string>;
15
+ createThread: (request?: CreateThreadRequest) => Promise<string>;
16
+ loadThread: (threadId: string) => Promise<void>;
72
17
  deleteThread: (threadId: string) => Promise<void>;
73
18
  updateThreadTitle: (threadId: string, title: string) => Promise<void>;
74
- sendMessage: (content: string, files?: File[]) => Promise<void>;
75
- editMessage: (message: Message, newContent: string, rerun?: boolean, editFromInput?: boolean) => Promise<void>;
76
- regenerateFromMessage: (message: Message, newContent?: string) => Promise<void>;
77
- stop: () => void;
78
- switchBranch: (branchId: string) => Promise<void>;
79
- updateSettings: (settings: Partial<ChatSettings>) => void;
80
- resetSettings: () => void;
19
+ sendMessage: (content: string, options?: {
20
+ branchId?: number;
21
+ saveToStorage?: boolean;
22
+ originalMessageId?: string;
23
+ }) => Promise<void>;
24
+ editMessage: (messageId: string, newContent: string) => Promise<void>;
25
+ regenerateFromMessage: (messageIndex: number) => Promise<void>;
26
+ stopStream: () => void;
81
27
  clearError: () => void;
82
- refresh: () => Promise<void>;
28
+ refreshThreads: () => Promise<void>;
29
+ updateSettings: (newSettings: Partial<ChatSettings>) => void;
30
+ currentBranchId: string | null;
31
+ availableBranches: any[];
32
+ branchPointMessageIds: string[];
33
+ switchBranch: (branchId: string) => Promise<void>;
34
+ messageVariants: Record<string, Record<string, Message>>;
35
+ switchableMessageIds: string[];
36
+ edgeSwitchMap: Record<string, string[]>;
83
37
  }
84
- interface ChatProviderProps {
85
- children: React.ReactNode;
86
- apiBaseUrl?: string;
87
- enableUrlSync?: boolean;
88
- getAuthHeaders?: () => Record<string, string>;
89
- authToken?: string;
38
+ export interface ChatProviderProps {
39
+ children: ReactNode;
40
+ apiConfig?: ApiConfig;
41
+ initialSettings?: Partial<ChatSettings>;
42
+ onError?: (error: string) => void;
43
+ onThreadChange?: (threadId: string | null) => void;
44
+ onMessageUpdate?: (messages: Message[]) => void;
45
+ initialThreadId?: string;
90
46
  }
91
- export declare function ChatProvider({ children, apiBaseUrl, enableUrlSync, getAuthHeaders, authToken }: ChatProviderProps): import("react/jsx-runtime").JSX.Element;
92
- export declare function useChat(): ChatState & ChatActions;
47
+ export declare function ChatProvider({ children, apiConfig, initialSettings, onError, onThreadChange, onMessageUpdate, initialThreadId }: ChatProviderProps): import("react/jsx-runtime").JSX.Element;
48
+ export declare function useChat(): ChatContextValue;
93
49
  export {};
@@ -0,0 +1,13 @@
1
+ interface Branch {
2
+ branchId: string;
3
+ messageCount: number;
4
+ lastTimestamp: string;
5
+ }
6
+ interface InlineBranchSelectorProps {
7
+ branches: Branch[];
8
+ currentBranchId: string;
9
+ onBranchChange: (branchId: string) => void;
10
+ compact?: boolean;
11
+ }
12
+ export declare function InlineBranchSelector({ branches, currentBranchId, onBranchChange, compact }: InlineBranchSelectorProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -1,14 +1,36 @@
1
- import { Message } from './ChatProvider';
2
- interface MessageComponentProps {
1
+ /**
2
+ * Message Component - With truncatable tool messages and responsive design
3
+ */
4
+ import { Message } from '@/types/api';
5
+ export interface MessageComponentProps {
3
6
  message: Message;
4
- onRegenerate?: (message: Message) => void;
5
- onEditMessage?: (message: Message, newContent: string, rerun?: boolean, editInInput?: boolean) => void;
6
- showRegenerate?: boolean;
7
- showBranches?: boolean;
8
- branches?: any[];
9
- onSwitchBranch?: (branchId: string) => void;
10
- messageIndex?: number;
11
- currentBranch?: string;
7
+ messageIndex: number;
8
+ isEditing?: boolean;
9
+ showActions?: boolean;
10
+ showTimestamp?: boolean;
11
+ showAgentName?: boolean;
12
+ layoutSize?: 'phone' | 'tablet' | 'desktop' | 'half-screen';
13
+ truncateToolMessages?: boolean;
14
+ toolMessagePreviewLength?: number;
15
+ customStyles?: {
16
+ container?: string;
17
+ content?: string;
18
+ actions?: string;
19
+ header?: string;
20
+ };
21
+ availableBranches?: Array<{
22
+ branchId: string;
23
+ messageCount: number;
24
+ lastTimestamp: string;
25
+ }>;
26
+ currentBranchId?: string | null;
27
+ onBranchSwitch?: (branchId: string) => void;
28
+ switchableMessageIds?: string[];
29
+ edgeSwitchMap?: Record<string, string[]>;
30
+ onEdit?: (messageId: string, content: string) => void;
31
+ onRegenerate?: (messageIndex: number) => void;
32
+ onCancelEdit?: () => void;
33
+ onCopy?: (content: string) => void;
12
34
  }
13
- export declare function MessageComponent({ message, onRegenerate, onEditMessage, showRegenerate, showBranches, branches, onSwitchBranch, messageIndex, currentBranch }: MessageComponentProps): import("react/jsx-runtime").JSX.Element;
14
- export {};
35
+ export declare function MessageComponent({ message, messageIndex, isEditing, showActions, showTimestamp, showAgentName, layoutSize, truncateToolMessages, toolMessagePreviewLength, customStyles, availableBranches, currentBranchId, onBranchSwitch, switchableMessageIds, edgeSwitchMap, // NEW
36
+ onEdit, onRegenerate, onCancelEdit, onCopy }: MessageComponentProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Responsive Chat Container - Handles different screen sizes and layouts
3
+ */
4
+ import React from 'react';
5
+ interface ResponsiveChatContainerProps {
6
+ children: React.ReactNode;
7
+ layoutSize: 'phone' | 'tablet' | 'desktop' | 'half-screen';
8
+ className?: string;
9
+ }
10
+ export declare function ResponsiveChatContainer({ children, layoutSize, className }: ResponsiveChatContainerProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -1,7 +1,22 @@
1
- interface ThreadManagerProps {
1
+ /**
2
+ * Thread Manager - Clean, exportable thread management UI
3
+ * Handles thread listing, creation, and navigation
4
+ */
5
+ export interface ThreadManagerProps {
2
6
  className?: string;
3
7
  showCreateButton?: boolean;
4
- onThreadSelect?: (threadId: string | null) => void;
8
+ showDeleteButton?: boolean;
9
+ showEditTitle?: boolean;
10
+ maxHeight?: string;
11
+ customStyles?: {
12
+ container?: string;
13
+ threadList?: string;
14
+ threadItem?: string;
15
+ activeThread?: string;
16
+ createButton?: string;
17
+ };
18
+ onThreadSelect?: (threadId: string) => void;
19
+ onThreadCreate?: (threadId: string) => void;
20
+ onThreadDelete?: (threadId: string) => void;
5
21
  }
6
- export declare function ThreadManager({ className, showCreateButton, onThreadSelect }: ThreadManagerProps): import("react/jsx-runtime").JSX.Element;
7
- export {};
22
+ export declare function ThreadManager({ className, showCreateButton, showDeleteButton, showEditTitle, maxHeight, customStyles, onThreadSelect, onThreadCreate, onThreadDelete }: ThreadManagerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ChatRoutingConfig {
3
+ basePath?: string;
4
+ }
5
+ interface ChatRoutingValue {
6
+ basePath: string;
7
+ buildThreadPath: (threadId: string) => string;
8
+ buildBasePath: () => string;
9
+ }
10
+ export declare function ChatRoutingProvider({ children, basePath }: {
11
+ children: ReactNode;
12
+ basePath?: string;
13
+ }): import("react/jsx-runtime").JSX.Element;
14
+ export declare function useChatRouting(): ChatRoutingValue;
15
+ export {};
@@ -1,17 +1,15 @@
1
- export { ChatApp } from './ChatApp';
1
+ /**
2
+ * Chat Components - Export index
3
+ * Clean exports for use in other applications
4
+ */
5
+ export { ChatApp, SimpleChat } from './ChatApp';
2
6
  export { ChatProvider, useChat } from './ChatProvider';
3
- export { ThreadManager } from './ThreadManager';
4
7
  export { ChatInterface } from './ChatInterface';
8
+ export { ThreadManager } from './ThreadManager';
5
9
  export { MessageComponent } from './MessageComponent';
6
- export { ChatWidget } from './ChatWidget';
7
- export { ChatHeader } from './ChatHeader';
8
- export { ChatSettingsButton } from './ChatSettingsButton';
9
- export { ChatSettingsModal } from './ChatSettingsModal';
10
- export { JsonRenderer } from './JsonRenderer';
11
- export { JsonRendererProvider, useJsonRenderer } from './JsonRendererConfig';
12
- export { useChatJsonSync } from './useChatJsonSync';
13
- export { useChatMessages, useToolMessages, useChatActions } from '../../hooks/useChatMessages';
14
- export { useStreamMonitor, useToolExtractor, useSearchResults, useFileContents, useCodeExecution } from '../../hooks/useStreamMonitor';
15
- export type { Message, Thread, Branch } from './ChatProvider';
16
- export type { ToolMessage, ProcessedToolMessage } from '../../hooks/useChatMessages';
17
- export type { StreamEvent, StreamState } from '../../hooks/useStreamMonitor';
10
+ export { InlineBranchSelector } from './InlineBranchSelector';
11
+ export { useApiClient } from '@/hooks/useApiClient';
12
+ export type { Message, Thread, ApiConfig, StreamEvent, CreateThreadRequest, StreamRequest, ThreadResponse } from '@/types/api';
13
+ export { ChatSettings } from '@/components/settings/ChatSettings';
14
+ export type { ChatSettingsConfig } from '@/components/settings/ChatSettings';
15
+ export { ChatApp as default } from './ChatApp';
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Chat Settings Component - Persistent settings with beautiful UI
3
+ * Handles API configuration, layout preferences, and chat behavior
4
+ */
5
+ export interface ChatSettingsConfig {
6
+ api: {
7
+ baseUrl: string;
8
+ authToken: string;
9
+ enableAuth: boolean;
10
+ };
11
+ ui: {
12
+ layout: 'sidebar' | 'fullscreen' | 'tabs';
13
+ theme: 'light' | 'dark' | 'system';
14
+ showTimestamps: boolean;
15
+ showAgentNames: boolean;
16
+ compactMessages: boolean;
17
+ };
18
+ behavior: {
19
+ autoSave: boolean;
20
+ enableStreaming: boolean;
21
+ showTypingIndicator: boolean;
22
+ };
23
+ }
24
+ interface ChatSettingsProps {
25
+ settings: ChatSettingsConfig;
26
+ onSettingsChange: (settings: ChatSettingsConfig) => void;
27
+ className?: string;
28
+ }
29
+ export declare function ChatSettings({ settings, onSettingsChange, className }: ChatSettingsProps): import("react/jsx-runtime").JSX.Element;
30
+ export {};
@@ -1,6 +1,6 @@
1
1
  import * as ResizablePrimitive from "react-resizable-panels";
2
2
  declare const ResizablePanelGroup: ({ className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => import("react/jsx-runtime").JSX.Element;
3
- declare const ResizablePanel: import("react").ForwardRefExoticComponent<Omit<import("react").HTMLAttributes<HTMLButtonElement | HTMLElement | HTMLTextAreaElement | HTMLDivElement | HTMLParagraphElement | HTMLHeadingElement | HTMLSpanElement | HTMLBRElement | HTMLPreElement | HTMLObjectElement | HTMLUListElement | HTMLOListElement | HTMLLIElement | HTMLQuoteElement | HTMLAnchorElement | HTMLTitleElement | HTMLInputElement | HTMLProgressElement | HTMLSelectElement | HTMLMapElement | HTMLLinkElement | HTMLFormElement | HTMLSlotElement | HTMLStyleElement | HTMLDialogElement | HTMLImageElement | HTMLOptionElement | HTMLTableElement | HTMLDataElement | HTMLLabelElement | HTMLAreaElement | HTMLAudioElement | HTMLBaseElement | HTMLBodyElement | HTMLCanvasElement | HTMLTableColElement | HTMLDataListElement | HTMLModElement | HTMLDetailsElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLHeadElement | HTMLHRElement | HTMLHtmlElement | HTMLIFrameElement | HTMLLegendElement | HTMLMetaElement | HTMLMeterElement | HTMLOptGroupElement | HTMLOutputElement | HTMLScriptElement | HTMLSourceElement | HTMLTemplateElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTimeElement | HTMLTableRowElement | HTMLTrackElement | HTMLVideoElement | HTMLTableCaptionElement | HTMLMenuElement | HTMLPictureElement>, "id" | "onResize"> & {
3
+ declare const ResizablePanel: import("react").ForwardRefExoticComponent<Omit<import("react").HTMLAttributes<HTMLButtonElement | HTMLElement | HTMLInputElement | HTMLDivElement | HTMLObjectElement | HTMLMapElement | HTMLLinkElement | HTMLFormElement | HTMLSlotElement | HTMLStyleElement | HTMLTitleElement | HTMLDialogElement | HTMLImageElement | HTMLOptionElement | HTMLTableElement | HTMLAnchorElement | HTMLAreaElement | HTMLAudioElement | HTMLBaseElement | HTMLQuoteElement | HTMLBodyElement | HTMLBRElement | HTMLCanvasElement | HTMLTableColElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDetailsElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLHeadingElement | HTMLHeadElement | HTMLHRElement | HTMLHtmlElement | HTMLIFrameElement | HTMLLabelElement | HTMLLegendElement | HTMLLIElement | HTMLMetaElement | HTMLMeterElement | HTMLOListElement | HTMLOptGroupElement | HTMLOutputElement | HTMLParagraphElement | HTMLPreElement | HTMLProgressElement | HTMLScriptElement | HTMLSelectElement | HTMLSourceElement | HTMLSpanElement | HTMLTemplateElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTextAreaElement | HTMLTimeElement | HTMLTableRowElement | HTMLTrackElement | HTMLUListElement | HTMLVideoElement | HTMLTableCaptionElement | HTMLMenuElement | HTMLPictureElement>, "id" | "onResize"> & {
4
4
  className?: string | undefined;
5
5
  collapsedSize?: number | undefined;
6
6
  collapsible?: boolean | undefined;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * API client hook for aiNav backend
3
+ * Handles all HTTP requests with proper error handling and type safety
4
+ */
5
+ import { Thread, CreateThreadRequest, CreateThreadResponse, ThreadListResponse, ThreadMessagesResponse, UpdateThreadRequest, EditMessageRequest, EditMessageResponse, StreamRequest, StreamChatRequest, DeleteResponse, StreamEvent } from '@/types/api';
6
+ export interface UseApiClientProps {
7
+ baseUrl?: string;
8
+ authToken?: string;
9
+ getAuthHeaders?: () => Record<string, string>;
10
+ }
11
+ export declare function useApiClient({ baseUrl, authToken, getAuthHeaders }?: UseApiClientProps): {
12
+ isLoading: boolean;
13
+ error: string;
14
+ isOffline: boolean;
15
+ retryCount: number;
16
+ clearError: () => void;
17
+ createThread: (request: CreateThreadRequest) => Promise<CreateThreadResponse>;
18
+ getThreads: () => Promise<ThreadListResponse>;
19
+ getThread: (threadId: string) => Promise<Thread>;
20
+ updateThread: (threadId: string, request: UpdateThreadRequest) => Promise<Thread>;
21
+ deleteThread: (threadId: string) => Promise<DeleteResponse>;
22
+ getThreadMessages: (threadId: string) => Promise<ThreadMessagesResponse>;
23
+ editMessage: (threadId: string, request: EditMessageRequest) => Promise<EditMessageResponse>;
24
+ getThreadState: (threadId: string) => Promise<{
25
+ thread_id: string;
26
+ state: any;
27
+ }>;
28
+ setThreadState: (threadId: string, state: any) => Promise<{
29
+ thread_id: string;
30
+ state: any;
31
+ }>;
32
+ streamChat: (request: StreamRequest, onMessage: (event: StreamEvent) => void, onError?: (error: Error) => void, onComplete?: () => void) => Promise<void>;
33
+ streamChatSimple: (request: StreamChatRequest, onMessage: (event: StreamEvent) => void, onError?: (error: Error) => void, onComplete?: () => void) => Promise<void>;
34
+ };