import { type Dispatch, type MutableRefObject, type SetStateAction } from 'react'; import type { LlmExecutionTools } from '../../../execution/LlmExecutionTools'; import type { id } from '../../../types/string_token'; import type { ChatMessage } from '../types/ChatMessage'; import type { LlmChatProps } from './LlmChatProps'; /** * Minimal task-progress item rendered by ``. * * @private function of `useLlmChatMessageHandler` */ type LlmChatTaskProgress = { readonly id: string; readonly name: string; readonly progress?: number; }; /** * Internal send signature shared across retry and visibility-recovery flows. * * @private function of `useLlmChatMessageHandler` */ type HandleMessageFn = (messageContent: string, attachments?: ChatMessage['attachments']) => Promise; /** * Inputs required by `useLlmChatMessageHandler`. * * @private function of `useLlmChatMessageHandler` */ type UseLlmChatMessageHandlerProps = { readonly chatFailMessage: string; readonly hasUserInteractedRef: MutableRefObject; readonly llmParticipantName: id; readonly llmTools: LlmExecutionTools; readonly messages: ReadonlyArray; readonly onError?: LlmChatProps['onError']; readonly promptParameters: Record; readonly setMessages: Dispatch>>; readonly setTasksProgress: Dispatch>>; readonly thinkingVariants: ReadonlyArray; readonly thread?: ReadonlyArray; readonly userParticipantName: id; }; /** * State and handlers returned by `useLlmChatMessageHandler`. * * @private function of `useLlmChatMessageHandler` */ type UseLlmChatMessageHandlerResult = { readonly clearLastFailedMessage: () => void; readonly handleMessage: HandleMessageFn; readonly handleStopStreaming: () => void; readonly isStreaming: boolean; }; /** * Manages send, stream, retry, and background-recovery flows for ``. * * @private function of `useLlmChatState` */ export declare function useLlmChatMessageHandler(props: UseLlmChatMessageHandlerProps): UseLlmChatMessageHandlerResult; export {};