import { UseChatHelpers } from '@ai-sdk/react'; import { UIMessage } from 'ai'; export type ToolName = 'comment' | 'edit' | 'generate'; export type TComment = { comment: { blockId: string; comment: string; content: string; } | null; status: 'finished' | 'streaming'; }; export type MessageDataPart = { toolName: ToolName; comment?: TComment; }; export type Chat = UseChatHelpers; export type ChatMessage = UIMessage<{}, MessageDataPart>; /** * AI 聊天 Hook * 处理编辑器与 AI API 的通信 */ export declare const useChat: () => { id: string; setMessages: (messages: ChatMessage[] | ((messages: ChatMessage[]) => ChatMessage[])) => void; error: Error | undefined; stop: () => Promise; status: import('ai').ChatStatus; sendMessage: (message?: (Omit & { id?: string | undefined; role?: "user" | "system" | "assistant" | undefined; } & { text?: never; files?: never; messageId?: string; }) | { text: string; files?: FileList | import('ai').FileUIPart[]; metadata?: {} | undefined; parts?: never; messageId?: string; } | { files: FileList | import('ai').FileUIPart[]; metadata?: {} | undefined; parts?: never; messageId?: string; } | undefined, options?: import('ai').ChatRequestOptions) => Promise; regenerate: ({ messageId, ...options }?: { messageId?: string; } & import('ai').ChatRequestOptions) => Promise; resumeStream: (options?: import('ai').ChatRequestOptions) => Promise; addToolResult: ({ state, tool, toolCallId, output, errorText, }: { state?: "output-available"; tool: TOOL; toolCallId: string; output: unknown; errorText?: never; } | { state: "output-error"; tool: TOOL; toolCallId: string; output?: never; errorText: string; }) => Promise; addToolOutput: ({ state, tool, toolCallId, output, errorText, }: { state?: "output-available"; tool: TOOL; toolCallId: string; output: unknown; errorText?: never; } | { state: "output-error"; tool: TOOL; toolCallId: string; output?: never; errorText: string; }) => Promise; addToolApprovalResponse: import('ai').ChatAddToolApproveResponseFunction; messages: ChatMessage[]; clearError: () => void; };