/// import { API as APITypes, PowerApp, Value } from '@makeflow/types'; import { OperationTokenToken, OrganizationId, ProcedureId, TagId, TaskId, TeamId, UserId } from '@makeflow/types-nominal'; import { BodyInit } from 'node-fetch'; import { Dict } from 'tslang'; export declare type APISource = APITypes.PowerApp.BasicSource; export interface RequestOptions { body?: string | Dict; type?: string; requireAccessToken?: boolean; } export declare class API { private source; readonly version = "v1"; private accessToken; private resourceToken; get granted(): boolean; constructor(source: TSourceObject); setAccessToken(token: string | undefined): void; setResourceToken(token: OperationTokenToken | undefined): void; /** * 获取当前登录账号下的用户 * @accessToken */ getAccountListUsers(): Promise; /** * 发布应用 * @param definition 应用定义 * @accessToken */ publishPowerApp(definition: PowerApp.DenominalizedRawDefinition): Promise; /** * 刷新应用凭证 * @param name 应用名称 * @accessToken */ refreshPowerAppToken(name: string): Promise; /** * 更新超级自定义检查项 * @params options.description 超级自定义检查项描述 * @params options.stage 超级自定义检查项状态 * @token */ updatePowerCheckableCustomItem(options: Omit): Promise; /** * 更新超级概览 * @param dataSet 超级概览数据集合 * @token */ updatePowerGlance(dataSet: APITypes.PowerGlance.DataSetEntry[]): Promise; /** * 初始化超级概览 * @token */ initializePowerGlance(): Promise; /** * 更新超级流程项 * @params options.description 流程项描述 * @params options.stage 流程项状态 * @params options.outputs 输出 * @token */ updatePowerItem(options: Omit): Promise; /** * 创建任务 * @params options.team 团队ID * @params options.procedure 流程ID * @params options.brief 任务简述 * @params options.description 任务描述 * @params options.tags 标签 * @params options.assignee 负责人 * @params options.outputs 任务输出 * @params options.associatedTasks 关联任务信息 * @params options.postponedTo 延后任务时间 * @accessToken */ createTask(options: CreateTaskOptions): Promise; /** * 发送文件消息到任务 * @param task 任务ID * @param body 文件内容 * @param fileName 文件名 * @param type 文件类型 * @accessToken */ sendTaskFileMessage(task: TaskId, body: BodyInit, fileName: string, type: string): Promise; /** * 添加输出到任务 * @param taskId 任务ID * @param outputs 键值对 * @accessToken */ addTaskOutputs(task: TaskId, outputs: Dict): Promise; /** * 根据邮箱匹配用户 * @param email 邮箱地址 * @accessToken */ matchUser(email: string): Promise; private request; } export interface CreateTaskOptions { team: TeamId; procedure: ProcedureId; brief: string; description?: string; tags?: TagId[]; assignee?: UserId; outputs?: Dict; associatedTasks?: TaskAssociation[]; postponedTo?: number; } export interface UserCandidate { id: UserId; username: string; organization: { id: OrganizationId; displayName: string; }; profile: { fullName?: string | undefined; avatar?: string | undefined; bio?: string | undefined; mobile?: string | undefined; email?: string | undefined; position?: string | undefined; } | undefined; disabled: boolean | undefined; } export interface TaskAssociation { type: 'blocked-by' | 'blocking' | 'related'; task: TaskId; }