import { AccessToken } from '@tnwx/accesstoken';
/**
 * @author Javen
 * @copyright javendev@126.com
 * @description 外部联系人管理
 */
export declare class QyExContact {
    private static getFollowUserListUrl;
    /**
     * 获取配置了客户联系功能的成员列表
     * @param accessToken {AccessToken}
     */
    static getFollowUserList(accessToken?: AccessToken): Promise<any>;
    private static addContactWayUrl;
    /**
     * 配置客户联系「联系我」方式
     * @param type 联系方式类型,1-单人, 2-多人
     * @param scene 场景，1-在小程序中联系，2-通过二维码联系，3-在线问诊
     * @param style 在小程序中联系时使用的控件样式
     * @param remark 联系方式的备注信息，用于助记，不超过30个字符
     * @param skipVerify 外部客户添加时是否无需验证，默认为true
     * @param state 自定义的state参数
     * @param user 使用该联系方式的用户userID列表，在type为1时为必填，且只能有一个
     * @param party 使用该联系方式的部门id列表，只在type为2时有效
     * @param accessToken {AccessToken}
     */
    static addContactWay(type: number, scene: number, style?: number, remark?: string, skipVerify?: boolean, state?: string, user?: Array<string>, party?: Array<string>, accessToken?: AccessToken): Promise<any>;
    private static updateContactWayUrl;
    /**
     * 更新企业已配置的「联系我」方式
     * @param configId
     * @param style
     * @param remark
     * @param skipVerify
     * @param state
     * @param user
     * @param party
     * @param accessToken {AccessToken}
     */
    static updateContactWay(configId: string, style?: number, remark?: string, skipVerify?: boolean, state?: string, user?: Array<string>, party?: Array<string>, accessToken?: AccessToken): Promise<any>;
    private static getContactWayUrl;
    /**
     * 获取企业已配置的「联系我」方式
     * @param configId 联系方式的配置id
     * @param accessToken {AccessToken}
     */
    static getContactWay(configId: string, accessToken?: AccessToken): Promise<any>;
    private static delContactWayUrl;
    /**
     * 删除企业已配置的「联系我」方式
     * @param configId 联系方式的配置id
     * @param accessToken {AccessToken}
     */
    static delContactWay(configId: string, accessToken?: AccessToken): Promise<any>;
    private static getUserListUrl;
    /**
     * 获取客户列表
     * @param userId 企业成员的userid
     * @param accessToken {AccessToken}
     */
    static getUserList(userId: string, accessToken?: AccessToken): Promise<any>;
    private static getUserInfoUrl;
    /**
     * 获取客户列表
     * @param externalUserId 外部联系人的userid
     * @param accessToken {AccessToken}
     */
    static getUserInfo(externalUserId: string, accessToken?: AccessToken): Promise<any>;
    private static updateRemarkUrl;
    /**
     * 修改客户备注信息
     * @param userId
     * @param externalUserId
     * @param remark
     * @param description
     * @param remarkCompany
     * @param remarkMobiles
     * @param remarkPicMediaid
     * @param accessToken
     */
    static updateRemark(userId: string, externalUserId: string, remark?: string, description?: string, remarkCompany?: string, remarkMobiles?: Array<string>, remarkPicMediaid?: string, accessToken?: AccessToken): Promise<any>;
    private static getCorpTagListUrl;
    /**
     * 获取企业标签库
     * @param tagId
     * @param accessToken
     */
    static getCorpTagList(tagId?: Array<string>, accessToken?: AccessToken): Promise<any>;
    private static addCorpTagUrl;
    /**
     * 添加企业客户标签
     * @param groupId 标签组id
     * @param groupName 标签组名称
     * @param order 标签组次序值
     * @param tag 标签列表
     * @param accessToken {AccessToken}
     */
    static addCorpTag(groupId?: string, groupName?: string, order?: number, tag?: Array<{
        name: string;
        order?: number;
    }>, accessToken?: AccessToken): Promise<any>;
    private static editCorpTagUrl;
    /**
     * 编辑企业客户标签
     * @param id 标签或标签组的id列表
     * @param name 新的标签或标签组名称
     * @param order 标签/标签组的次序值
     * @param accessToken {AccessToken}
     */
    static editCorpTag(id: string, name?: string, order?: number, accessToken?: AccessToken): Promise<any>;
    private static delCorpTagUrl;
    /**
     * 删除企业客户标签
     * @param tagId 标签的id列表
     * @param groupId 标签组的id列表
     * @param accessToken {AccessToken}
     */
    static delCorpTag(tagId: Array<string>, groupId?: Array<string>, accessToken?: AccessToken): Promise<any>;
    private static markTagUrl;
    /**
     * 编辑客户企业标签
     * @param userId 添加外部联系人的userid
     * @param externalUserId 外部联系人userid
     * @param addTag 要标记的标签列表
     * @param removeTag 要移除的标签列表
     * @param accessToken
     */
    static markTag(userId: string, externalUserId: string, addTag?: Array<string>, removeTag?: Array<string>, accessToken?: AccessToken): Promise<any>;
    private static getGroupChatListUrl;
    /**
     * 获取客户群列表
     * @param offset 分页，偏移量
     * @param limit 分页，预期请求的数据量，取值范围 1 ~ 1000
     * @param statusFilter 群状态过滤。0 - 普通列表 1 - 离职待继承 2 - 离职继承中 3 - 离职继承完成
     * @param ownerFilter 群主过滤。如果不填，表示获取全部群主的数据
     * @param accessToken {AccessToken}
     */
    static getGroupChatList(offset: number, limit: number, statusFilter?: number, ownerFilter?: {
        userid_list: Array<string>;
        partyid_list: Array<string>;
    }, accessToken?: AccessToken): Promise<any>;
    private static getGroupChatUrl;
    /**
     * 获取客户群详情
     * @param chatId 客户群ID
     * @param accessToken {AccessToken}
     */
    static getGroupChat(chatId: string, accessToken?: AccessToken): Promise<any>;
    private static addMsgTemplateUrl;
    /**
     * 添加企业群发消息任务
     * @param externalUserId 客户的外部联系人id列表，不可与sender同时为空，最多可传入1万个客户
     * @param sender 发送企业群发消息的成员userid，不可与external_userid同时为空
     * @param text 文本消息
     * @param image 图片消息
     * @param link 链接消息
     * @param miniprogram 小程序消息
     * @param accessToken {AccessToken}
     */
    static addMsgTemplate(externalUserId?: Array<string>, sender?: string, text?: {
        content: string;
    }, image?: {
        media_id: string;
    }, link?: {
        title: string;
        url: string;
        picurl?: string;
        desc?: string;
    }, miniprogram?: {
        title: string;
        pic_media_id: string;
        appid: string;
        page: string;
    }, accessToken?: AccessToken): Promise<any>;
    private static getGroupMsgResultUrl;
    /**
     * 获取企业群发消息发送结果
     * @param msgId 群发消息的id
     * @param accessToken {AccessToken}
     */
    static getGroupMsgResult(msgId: string, accessToken?: AccessToken): Promise<any>;
    private static sendWelcomeMsgUrl;
    /**
     * 发送新客户欢迎语
     * @param welcomeCode 通过添加外部联系人事件推送给企业的发送欢迎语的凭证，有效期为20秒
     * @param text 文本消息
     * @param image 图片消息
     * @param link 链接消息
     * @param miniprogram 小程序消息
     * @param accessToken {AccessToken}
     */
    static sendWelcomeMsg(welcomeCode: string, text?: {
        content: string;
    }, image?: {
        media_id: string;
    }, link?: {
        title: string;
        url: string;
        picurl?: string;
        desc?: string;
    }, miniprogram?: {
        title: string;
        pic_media_id: string;
        appid: string;
        page: string;
    }, accessToken?: AccessToken): Promise<any>;
    private static addGroupWelcomeTemplateUrl;
    /**
     * 添加群欢迎语素材
     * @param text 文本消息
     * @param image 图片消息
     * @param link 链接消息
     * @param miniprogram 小程序消息
     * @param accessToken {AccessToken}
     */
    static addGroupWelcomeTemplate(text?: {
        content: string;
    }, image?: {
        media_id: string;
    }, link?: {
        title: string;
        url: string;
        picurl?: string;
        desc?: string;
    }, miniprogram?: {
        title: string;
        pic_media_id: string;
        appid: string;
        page: string;
    }, accessToken?: AccessToken): Promise<any>;
    private static editGroupWelcomeTemplateUrl;
    /**
     * 编辑群欢迎语素材
     * @param templateId 群欢迎语的素材id
     * @param text 文本消息
     * @param image 图片消息
     * @param link 链接消息
     * @param miniprogram 小程序消息
     * @param accessToken {AccessToken}
     */
    static editGroupWelcomeTemplate(templateId: string, text?: {
        content: string;
    }, image?: {
        media_id: string;
    }, link?: {
        title: string;
        url: string;
        picurl?: string;
        desc?: string;
    }, miniprogram?: {
        title: string;
        pic_media_id: string;
        appid: string;
        page: string;
    }, accessToken?: AccessToken): Promise<any>;
    private static getGroupWelcomeTemplateUrl;
    /**
     * 获取群欢迎语素材
     * @param templateId 群欢迎语的素材id
     * @param accessToken {AccessToken}
     */
    static getGroupWelcomeTemplate(templateId: string, accessToken?: AccessToken): Promise<any>;
    private static delGroupWelcomeTemplateUrl;
    /**
     * 获取群欢迎语素材
     * @param templateId 群欢迎语的素材id
     * @param accessToken {AccessToken}
     */
    static delGroupWelcomeTemplate(templateId: string, accessToken?: AccessToken): Promise<any>;
    private static getUnAssignedListUrl;
    /**
     * 获取离职成员的客户列表
     * @param pageId
     * @param pageSize
     * @param accessToken {AccessToken}
     */
    static getUnAssignedList(pageId: number, pageSize: number, accessToken?: AccessToken): Promise<any>;
    private static transferContactUrl;
    /**
     * 离职成员的外部联系人再分配
     * @param externalUserId 外部联系人的userid，注意不是企业成员的帐号
     * @param handOverUserId 离职成员的userid
     * @param takeOverUserId 接替成员的userid
     * @param accessToken {AccessToken}
     */
    static transferContact(externalUserId: string, handOverUserId: string, takeOverUserId: string, accessToken?: AccessToken): Promise<any>;
    private static transferGroupChatUrl;
    /**
     * 离职成员的群再分配
     * @param chatIdList 需要转群主的客户群ID列表
     * @param newOwner 新群主ID
     * @param accessToken {AccessToken}
     */
    static transferGroupChat(chatIdList: Array<string>, newOwner: string, accessToken?: AccessToken): Promise<any>;
    private static getUserBehaviorDataUrl;
    /**
     * 获取联系客户统计数据
     * @param startTime 数据起始时间
     * @param endTime 数据结束时间
     * @param userId 用户ID列表
     * @param partyId 部门ID列表
     * @param accessToken {AccessToken}
     */
    static getUserBehaviorData(startTime: number, endTime: number, userId?: Array<string>, partyId?: Array<number>, accessToken?: AccessToken): Promise<any>;
    private static getGroupChatStatisticUrl;
    /**
     * 获取客户群统计数据
     * @param dayBeginTime 开始时间，填当天开始的0分0秒（否则系统自动处理为当天的0分0秒）。取值范围：昨天至前60天
     * @param ownerFilter 群主过滤，如果不填，表示获取全部群主的数据
     * @param orderBy 排序方式。1 - 新增群的数量 2 - 群总数 3 - 新增群人数 4 - 群总人数
     * @param orderAsc 是否升序。0-否；1-是。默认降序
     * @param offset 分页，偏移量, 默认为0
     * @param limit 分页，预期请求的数据量，默认为500，取值范围 1 ~ 1000
     * @param accessToken {AccessToken}
     */
    static getGroupChatStatistic(dayBeginTime: number, ownerFilter?: {
        userid_list?: Array<string>;
        partyid_list?: Array<number>;
    }, orderBy?: number, orderAsc?: number, offset?: number, limit?: number, accessToken?: AccessToken): Promise<any>;
}
