import { type StreamFn, type StreamFnExtraOptions } from './use-sse'; import type { Message } from '../types/message.types'; export type { Message } from '../types/message.types'; export type { StreamFnExtraOptions } from './use-sse'; interface UseChatOptions { useMock?: boolean; debugMode?: boolean; assistantName?: string; assistantAvatar?: string; /** Custom stream function — bypasses mock/SSE service when provided */ streamFn?: StreamFn; /** Initial messages (e.g., restored from localStorage). Evaluated once on mount. */ initialMessages?: Message[]; /** Called whenever the messages array changes — use for persistence. */ onMessagesChange?: (messages: Message[]) => void; } export declare function useChat({ useMock, debugMode, assistantName, assistantAvatar, streamFn, initialMessages, onMessagesChange, }?: UseChatOptions): { messages: Message[]; isTyping: boolean; isStreaming: boolean; error: string | null; sendMessage: (text: string, extra?: StreamFnExtraOptions, options?: { hidden?: boolean; }) => Promise; stopMessage: () => void; handleQuickAction: (actionText: string) => void; clearMessages: () => void; hydrateMessages: (history: Message[]) => void; hasMessages: boolean; }; //# sourceMappingURL=use-chat.d.ts.map