///
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;
}