import { Signal } from '@preact/signals'; import { ChatTopic } from '../../entity'; import { ITopic, ITopicOptions, IResourceOptions } from '../../interface'; import { ChatController } from '../chat/chat.controller'; /** * ai话题控制器 * * @author tony001 * @date 2025-02-20 16:02:01 * @export * @class AiTopicController */ export declare class AiTopicController { private chat; /** * 话题清单 * * @author tony001 * @date 2025-02-20 16:02:38 * @type {Signal} */ readonly topics: Signal; /** * 激活话题 * * @author tony001 * @date 2025-02-24 16:02:44 * @type {(Signal)} */ readonly activedTopic: Signal; /** * 折叠话题侧边栏 * * @author tony001 * @date 2026-02-05 11:33:34 * @type {Signal} */ readonly topicSidebarCollapse: Signal; /** * 侧边栏宽度 * @author tony001 * @date 2026-02-05 13:48:34 * @type {Signal} */ readonly topicSidebarWidth: Signal; /** * 是否是临时会话 * * @author tony001 * @date 2026-02-05 17:26:34 * @type {Signal} */ readonly isTempChat: Signal; /** * 当前话题配置备份 * * @author tony001 * @date 2025-02-24 16:02:28 * @public * @type {(ITopicOptions | undefined)} */ backupOptions: ITopicOptions | undefined; /** * 上一次激活话题 */ preActivedTopic: ChatTopic | undefined; /** * 远程会话列表 */ private remoteSessionList; /** * 资源模式 */ private resourceMode; /** * 资源选项 */ private resourceOptions; /** * Creates an instance of AiTopicController. * @author tony001 * @date 2025-02-24 11:02:26 * @param {ChatController} chat */ constructor(chat: ChatController); /** * 设置激活话题 * @param topic 话题数据 */ setActivedTopic(topic: ChatTopic | undefined): void; /** * 注入资源选项 * @param resourceOptions */ injectResourceOptions(resourceOptions: IResourceOptions | undefined): void; /** * 获取历史话题 * * @author tony001 * @date 2025-02-23 16:02:37 * @return {*} {Promise} */ fetchHistory(options: ITopicOptions): Promise; /** * 同步远程会话 * @param configList config存储数据 */ asyncRemoteSession(configList: Array): Promise; /** * 同步当前话题 * * @author tony001 * @date 2025-02-23 17:02:43 * @param {ITopicOptions} options * @return {*} {Promise} */ asyncTopic(options: ITopicOptions): Promise; /** * 获取指定标识话题 * @param topicid * @returns */ getCurrentTopicByID(topicid: string): ChatTopic | undefined; /** * 基于话题标识更新当前话题 * @param topicid 话题标识 */ updateTopicChatByID(topicid: string, args: Record): Promise; /** * 删除话题 * * @author tony001 * @date 2025-02-24 16:02:03 * @param {ITopicOptions} options * @param {object} context * @param {object} params * @param {ITopic} data * @param {MouseEvent} event * @return {*} {Promise} */ removeTopic(options: ITopicOptions, context: object, params: object, data: ITopic, event: MouseEvent): Promise; /** * 处理选中变化 * * @author tony001 * @date 2025-02-20 19:02:27 * @param {ChatTopic} item */ handleTopicChange(item: ChatTopic): void; /** * 处理话题行为 * * @author tony001 * @date 2025-02-24 16:02:58 * @param {string} action * @param {ChatTopic} topic * @param {MouseEvent} event * @return {*} {Promise} */ handleTopicAction(action: string, topic: ChatTopic, event: MouseEvent): Promise; /** * 清空指定话题的消息 * @param topicID * @returns */ clearMessagesByTopicId(topicID: string): Promise; /** * 新建对话 * * @author tony001 * @date 2025-03-18 18:03:49 * @return {*} {Promise} */ newTopic(topicid: string, args: Record): Promise; /** * 清空话题 * - 当前激活项不清空 * @return {*} {Promise} * @memberof AiTopicController */ clearTopic(): Promise; /** * 更新话题标题 * @param topicId * @param message */ updateTopicCaption(topicId: string, newCaption: string): Promise; /** * 更新话题数据 * * @param {ITopicOptions} options 话题配置 * @return {*} {Promise} * @memberof AiTopicController */ updateTopic(options: ITopicOptions): Promise; /** * 计算话题侧边栏宽度 */ computeTopicSidebarWidth(): void; /** * 切换话题侧边栏折叠状态 */ switchTopicSidebarCollapse(): void; /** * 全局新建会话 * @returns */ globalNewTopic(): void; /** * 进入临时会话 */ enterTempChat(): void; /** * 退出临时会话 * @param isSwitchTopic 是否切换激活会话 * @returns */ exitTempChat(): void; }