import type { AddGroupUserRequest, Bot, BotListResponse, DeleteBotRequest, ConvertWebhookMessageRequest, ConvertWebhookMessageResponse, CreateBotRequest, CreateColumnRequest, CreateGroupRequest, CreateProjectRequest, CreateSubTaskRequest, CreateTaskDialogRequest, CreateTaskDialogResponse, CreateTaskRequest, Department, DialogInfo, DialogMember, DialogMessage, DialogMessageListResponse, MessageSearchItem, DisbandGroupRequest, EditBotRequest, EditGroupRequest, ForwardMessageRequest, GetBotRequest, GetColumnListRequest, GetDialogRequest, GetDialogUserRequest, GetMessageListRequest, GetMessageRequest, GetProjectListRequest, GetProjectRequest, GetTaskContentRequest, GetTaskFilesRequest, GetTaskListRequest, GetTaskRequest, MarkMessageDoneRequest, Project, ProjectColumn, ProjectTask, RemoveGroupUserRequest, ResponsePaginate, SearchDialogRequest, SearchMessageRequest, SetAppBadgeOptions, SendAnonymousMessageRequest, SendBotMessageRequest, SendMessageRequest, SendMessageToUserRequest, SendNoticeMessageRequest, SendStreamMessageRequest, SendTemplateMessageRequest, SystemSettings, TaskContent, TaskFile, TimeRangeRequest, TransferGroupRequest, ToggleMessageTodoRequest, TodoItem, UpdateColumnRequest, UpdateProjectRequest, UpdateTaskRequest, UserBasic, UserInfo, VersionInfo, WithdrawMessageRequest } from "./types"; export declare class DooTaskApiError extends Error { status?: number; statusText?: string; rawBody?: string; ret?: number; apiData?: unknown; constructor(message: string, extras?: Partial); } export interface DooTaskClientOptions { token: string; server?: string; timeoutMs?: number; fetch?: typeof fetch; /** 客户端版本,作为 Version 头随每个请求发送,供后端 checkClientVersion 判定接口兼容性(缺省不发,后端按 0.0.1 处理) */ version?: string; /** 应用 appid,缺省从环境变量 APP_ID 读取(用于 setAppBadge 等以应用身份调用的接口) */ appid?: string; /** 应用独立密钥,缺省从环境变量 APP_SECRET 读取 */ secret?: string; } export declare class DooTaskClient { private readonly token; private readonly server; private readonly version; private readonly appid; private readonly secret; private readonly timeoutMs; private readonly fetchFn; private userCache?; private cacheTimeMs; constructor(options: DooTaskClientOptions); private buildURL; private request; private get; private post; getUserInfo(noCache?: boolean): Promise; checkUserIdentity(identity: string): Promise; getUserDepartments(): Promise; getUsersBasic(userids: number[]): Promise; getUserBasic(userid: number): Promise; getBotList(): Promise; getBot(params: GetBotRequest): Promise; createBot(params: CreateBotRequest): Promise; updateBot(params: EditBotRequest): Promise; deleteBot(params: DeleteBotRequest): Promise; sendMessage(message: SendMessageRequest): Promise; sendMessageToUser(message: SendMessageToUserRequest): Promise; sendBotMessage(message: SendBotMessageRequest): Promise; sendAnonymousMessage(message: SendAnonymousMessageRequest): Promise; sendStreamMessage(message: SendStreamMessageRequest): Promise; sendNoticeMessage(message: SendNoticeMessageRequest): Promise; sendTemplateMessage(message: SendTemplateMessageRequest): Promise; getMessageList(params: GetMessageListRequest): Promise; searchMessage(params: SearchMessageRequest): Promise; getMessage(params: GetMessageRequest): Promise; getMessageDetail(params: GetMessageRequest): Promise; withdrawMessage(params: WithdrawMessageRequest): Promise; forwardMessage(params: ForwardMessageRequest): Promise; toggleMessageTodo(params: ToggleMessageTodoRequest): Promise; getMessageTodoList(params: GetMessageRequest): Promise; markMessageDone(params: MarkMessageDoneRequest): Promise; convertWebhookMessageToAi(params: ConvertWebhookMessageRequest): Promise; getDialogList(params: TimeRangeRequest): Promise>; searchDialog(params: SearchDialogRequest): Promise; getDialogOne(params: GetDialogRequest): Promise; getDialogUser(params: GetDialogUserRequest): Promise; createGroup(params: CreateGroupRequest): Promise; editGroup(params: EditGroupRequest): Promise; addGroupUser(params: AddGroupUserRequest): Promise; removeGroupUser(params: RemoveGroupUserRequest): Promise; exitGroup(dialog_id: number): Promise; transferGroup(params: TransferGroupRequest): Promise; disbandGroup(params: DisbandGroupRequest): Promise; getProjectList(params: GetProjectListRequest): Promise>; getProject(params: GetProjectRequest): Promise; createProject(params: CreateProjectRequest): Promise; updateProject(params: UpdateProjectRequest): Promise; exitProject(project_id: number): Promise; deleteProject(project_id: number): Promise; getColumnList(params: GetColumnListRequest): Promise>; createColumn(params: CreateColumnRequest): Promise; updateColumn(params: UpdateColumnRequest): Promise; deleteColumn(column_id: number): Promise; getTaskList(params: GetTaskListRequest): Promise>; getTask(params: GetTaskRequest): Promise; getTaskContent(params: GetTaskContentRequest): Promise; getTaskFiles(params: GetTaskFilesRequest): Promise; createTask(params: CreateTaskRequest): Promise; createSubTask(params: CreateSubTaskRequest): Promise; updateTask(params: UpdateTaskRequest): Promise; createTaskDialog(params: CreateTaskDialogRequest): Promise; archiveTask(task_id: number, archiveType: string): Promise; deleteTask(task_id: number, deleteType?: string): Promise; getSystemSettings(): Promise; getVersion(): Promise; /** * 设置应用菜单角标(绝对覆盖/幂等) * * 以应用身份(appid + secret,缺省取环境变量 APP_ID/APP_SECRET,或构造时传入) * 对 (应用, 菜单, 每个 userid) 设置角标。 * @param userid 用户ID,支持单个或数组 * @param options count(默认 0)、dot(默认 false)、menuKey(留空表示应用第一个菜单);count=0 且 dot=false 即清除 */ setAppBadge(userid: number | number[], options?: SetAppBadgeOptions): Promise; }