import { AccessToken } from '@tnwx/accesstoken';
/**
 * @author Javen
 * @copyright javendev@126.com
 * @description 微信摇一摇 设备管理
 */
export declare class ShakeAroundDeviceApi {
    private static applyIdUrl;
    /**
     * 申请设备ID
     * @param quantity 申请的设备ID的数量，单次新增设备超过500个，需走人工审核流程
     * @param applyReason 申请理由，不超过100个汉字或200个英文字母
     * @param comment 备注，不超过15个汉字或30个英文字母
     * @param poiId 设备关联的门店ID，关联门店后，在门店1KM的范围内有优先摇出信息的机会。门店相关信息具体可 查看门店相关的接口文档
     * @param accessToken
     */
    static applyId(quantity: number, applyReason: string, comment?: string, poiId?: number, accessToken?: AccessToken): Promise<any>;
    private static applyStatusUrl;
    /**
     * 查询设备ID申请审核状态
     * @param applyId 批次ID，申请设备ID时所返回的批次ID
     * @param accessToken
     */
    static getApplyStatus(applyId: number, accessToken?: AccessToken): Promise<any>;
    private static updateUrl;
    /**
     * 编辑设备的备注信息
     * @param deviceIdentifier 可用设备ID或完整的UUID、Major、Minor指定设备，二者选其一。
     * @param comment 	设备的备注信息，不超过15个汉字或30个英文字母。
     * @param accessToken
     */
    static updateDeviceInfo(deviceIdentifier: DeviceIdentifier, comment: string, accessToken?: AccessToken): Promise<any>;
    private static bindLocationUrl;
    /**
     * 配置设备与门店的关联关系
     * @param deviceIdentifier 指定的设备ID
     * @param poiId 设备关联的门店ID，关联门店后，在门店1KM的范围内有优先摇出信息的机会。当值为0时，将清除设备已关联的门店ID。门店相关信息具体可 查看门店相关的接口文档
     * @param type 为1时，关联的门店和设备归属于同一公众账号； 为2时，关联的门店为其他公众账号的门店
     * @param poiAppid 当Type为2时，必填。关联门店所归属的公众账号的APPID
     * @param accessToken
     */
    static bindLocation(deviceIdentifier: DeviceIdentifier, poiId: number, type?: number, poiAppid?: string, accessToken?: AccessToken): Promise<any>;
    private static searchUrl;
    /**
     * 查询设备列表
     * @param deviceIdentifier 指定的设备ID
     * @param accessToken
     */
    static searchByDevice(deviceIdentifier: DeviceIdentifier, accessToken?: AccessToken): Promise<any>;
    /**
     * 需要分页查询或者指定范围内的设备时
     * @param lastSeen 	前一次查询列表末尾的设备ID ， 第一次查询last_seen 为0
     * @param count 待查询的设备数量，不能超过50个
     * @param accessToken
     */
    static searchPage(lastSeen: number, count: number, accessToken?: AccessToken): Promise<any>;
    /**
     * 当需要根据批次ID查询时
     * @param applyId 批次ID，申请设备ID时所返回的批次ID
     * @param lastSeen 前一次查询列表末尾的设备ID ， 第一次查询last_seen 为0
     * @param count 待查询的设备数量，不能超过50个
     * @param accessToken
     */
    static searchPageByApplyId(applyId: number, lastSeen: number, count: number, accessToken?: AccessToken): Promise<any>;
    private static bindPageUrl;
    /**
     * 配置设备与页面的关联关系
     * @param deviceIdentifier 指定页面的设备ID
     * @param pageIds 待关联的页面列表
     * @param accessToken
     */
    static bindPage(deviceIdentifier: DeviceIdentifier, pageIds: number[], accessToken?: AccessToken): Promise<any>;
    private static relationSearchUrl;
    /**
     * 查询设备与页面的关联关系,当查询指定设备所关联的页面时
     * @param deviceIdentifier 指定页面的设备ID
     * @param accessToken
     */
    static relationSearch(deviceIdentifier: DeviceIdentifier, accessToken?: AccessToken): Promise<any>;
    /**
     *
     * @param pageId 指定的页面id
     * @param begin 关联关系列表的起始索引值
     * @param count 待查询的关联关系数量，不能超过50个
     * @param accessToken
     */
    static relationSearchByPage(pageId: number, begin: number, count: number, accessToken?: AccessToken): Promise<any>;
    private static addGroupUrl;
    /**
     * 新增分组 每个帐号下最多只有1000个分组。
     * @param groupName 分组名称，不超过100汉字或200个英文字母
     * @param accessToken
     */
    static addGroup(groupName: string, accessToken?: AccessToken): Promise<any>;
    private static updateGroupUrl;
    /**
     * 编辑分组信息
     * @param groupId 分组唯一标识，全局唯一
     * @param groupName 分组名称，不超过100汉字或200个英文字母
     * @param accessToken
     */
    static updateGroup(groupId: number, groupName: string, accessToken?: AccessToken): Promise<any>;
    private static deleteGroupUrl;
    /**
     * 删除分组
     * @param groupId 分组唯一标识，全局唯一
     * @param accessToken
     */
    static deleteGroup(groupId: number, accessToken?: AccessToken): Promise<any>;
    private static getGroupListUrl;
    /**
     * 查询分组列表
     * @param begin 分组列表的起始索引值
     * @param count 待查询的分组数量，不能超过1000个
     * @param accessToken
     */
    static getGroupList(begin: number, count: number, accessToken?: AccessToken): Promise<any>;
    private static getGroupDetailUrl;
    /**
     * 查询分组详情
     * @param groupId 分组唯一标识，全局唯一
     * @param begin 分组列表的起始索引值
     * @param count 待查询的分组数量，不能超过1000个
     * @param accessToken
     */
    static getGroupDetail(groupId: number, begin: number, count: number, accessToken?: AccessToken): Promise<any>;
    private static addDeviceUrl;
    /**
     * 添加设备到分组
     * @param groupId 分组唯一标识，全局唯一
     * @param deviceIdentifierList 	设备id列表 每次添加设备上限为1000
     * @param accessToken
     */
    static addDeviceToGroup(groupId: number, deviceIdentifierList: DeviceIdentifier[], accessToken?: AccessToken): Promise<any>;
    private static deleteGroupDeviceUrl;
    /**
     * 从分组中移除设备
     * @param groupId 分组唯一标识，全局唯一
     * @param deviceIdentifierList 设备id列表 每次删除设备上限为1000
     * @param accessToken
     */
    static deleteDeviceFromGroup(groupId: number, deviceIdentifierList: DeviceIdentifier[], accessToken?: AccessToken): Promise<any>;
}
export declare class DeviceIdentifier {
    private device_id;
    private uuid;
    private major;
    private minor;
    set setDeviceId(deviceId: number);
    get getDeviceId(): number;
    set setUuid(uuid: string);
    get getUuit(): string;
    set setMajor(major: number);
    get getMajor(): number;
    set setMinor(minor: number);
    get getMinor(): number;
}
