import { type Ref } from 'vue'; import type { ChatMessagesData, ChatStatus, ChatServiceConfig } from 'tdesign-web-components/lib/chat-engine'; import { TdChatProps } from 'tdesign-web-components'; export declare const useChat: (options: { defaultMessages: TdChatProps["defaultMessages"]; chatServiceConfig: ChatServiceConfig; }) => { chatEngine: Ref<{ messageStore: { initialize: (initialState?: Partial) => void; createMessage: (message: ChatMessagesData) => void; createMultiMessages: (messages: ChatMessagesData[]) => void; setMessages: (messages: ChatMessagesData[], mode?: import("tdesign-web-components").ChatMessageSetterMode) => void; appendContent: (messageId: string, processedContent: import("tdesign-web-components").AIMessageContent, targetIndex?: number) => void; replaceContent: (messageId: string, processedContent: import("tdesign-web-components").AIMessageContent[]) => void; setMessageStatus: (messageId: string, status: ChatMessagesData["status"]) => void; setMessageExt: (messageId: string, attr?: {}) => void; clearHistory: () => void; removeMessage: (messageId: string) => void; createMessageBranch: (messageId: string) => void; readonly messages: ChatMessagesData[]; getMessageByID: (id: string) => ChatMessagesData; readonly currentMessage: ChatMessagesData; readonly lastAIMessage: import("tdesign-web-components").AIMessage | undefined; readonly lastUserMessage: import("tdesign-web-components").UserMessage | undefined; updateMultipleContents: (messageId: string, contents: import("tdesign-web-components").AIMessageContent[]) => void; setState: (updater: (draft: import("tdesign-web-components").ChatMessageStore) => void, paths?: string[]) => void; getState: (cloned?: boolean) => Readonly; subscribe: (subscriber: import("tdesign-web-components/lib/chat-engine/store/reactiveState").Subscriber, paths?: string[]) => () => void; destroy: () => void; debug: (label?: string) => import("tdesign-web-components/lib/chat-engine/store/message").MessageStore; }; readonly eventBus: { on: (event: E, callback: import("tdesign-web-components").EventCallback) => import("tdesign-web-components").UnsubscribeFn; once: (event: E, callback: import("tdesign-web-components").EventCallback) => import("tdesign-web-components").UnsubscribeFn; off: (event: E, callback?: import("tdesign-web-components").EventCallback) => void; emit: (event: E, payload: import("tdesign-web-components").ChatEngineEventPayloadMap[E]) => void; waitFor: (event: E, timeout?: number) => Promise; waitForMatch: (event: E, filter: import("tdesign-web-components").EventFilter, timeout?: number) => Promise; onCustom: (eventName: string, callback: import("tdesign-web-components").EventCallback) => import("tdesign-web-components").UnsubscribeFn; emitCustom: (eventName: string, data: T) => void; getHistory: () => import("tdesign-web-components").EventHistoryItem[]; clear: () => void; destroy: () => void; }; readonly messages: ChatMessagesData[]; readonly status: ChatStatus; destroy: () => void; init: (configSetter: import("tdesign-web-components").ChatServiceConfigSetter, initialMessages?: ChatMessagesData[]) => void; sendUserMessage: (requestParams: import("tdesign-web-components").ChatRequestParams, sendRequest?: boolean) => Promise; sendSystemMessage: (msg: string) => Promise; sendAIMessage: (options?: { params?: import("tdesign-web-components").ChatRequestParams; content?: import("tdesign-web-components").AIMessageContent[]; sendRequest?: boolean; }) => Promise; abortChat: () => Promise; registerMergeStrategy: (type: T["type"], handler: (chunk: T, existing?: T) => T) => void; setMessages: (messages: ChatMessagesData[], mode?: import("tdesign-web-components").ChatMessageSetterMode) => void; clearMessages: () => void; regenerateAIMessage: (keepVersion?: boolean) => Promise; sendRequest: (params: import("tdesign-web-components").ChatRequestParams) => Promise; getToolcallByName: (name: string) => import("tdesign-web-components").ToolCall | undefined; }>; messages: Ref; status: Ref; };