import type { RequestHeader } from './common'; import type { MIND_MODE, WS_MIND_TYPE } from './session'; import type { SocketMessageInterface } from './socket'; export declare enum TaskMultipleDataType { text = "text", template = "template", upload = "upload" } export declare enum TaskItemSize { medium = "medium",// 2 * 1 large = "large" } export interface TaskMultipleDataModel { answer?: string; speech?: string; template?: string; link?: string; displayStyle: TaskItemSize; } export interface TaskMultipleData { type: TaskMultipleDataType; modal: TaskMultipleDataModel; } export declare enum TaskMessageModelGroup { hint = "hint", msg = "msg", user_upload = "user_upload", web_search = "web_search" } export interface TaskMessageModel extends SocketMessageInterface { multipleData: TaskMultipleData[]; type: 'task'; group: TaskMessageModelGroup; groupId: string; title: string; timestamp: string; } export declare function isTaskMessage(msg: SocketMessageInterface): boolean; export interface TaskCallback { onTaskListDidUpdate: (taskItem: TaskMessageModel[]) => void; onTaskListLoadError: (error: Error) => void; } export interface TaskDataInfo { mindId: string; mindType: WS_MIND_TYPE; mode: MIND_MODE; } export interface TaskUrlConfig { baseUrl: string; header: RequestHeader; refUserId: string; } export interface TaskConfig { callback: TaskCallback; mindInfo: TaskDataInfo; sessionId: string; urlConfig: TaskUrlConfig; } export interface TaskInterface { callback: TaskCallback; mindInfo: TaskDataInfo; appendTask: (taskItem: TaskMessageModel) => void; startReceiveMsg(): Promise; waitingForStart(): void; fetchTaskMsg(data: { history: boolean; seqId?: string; }): Promise; } export interface TaskLoadMoreRequestInterface { sessionId: string; seqId?: string; pageSize?: number; direction?: 'backward' | 'forward'; } export interface TaskLoadMoreResponseInterface { list: TaskMessageModel[]; total: number; }