import { ApiResponse } from "../index";
export declare type ThingType = 1 | 2 | 3;
export declare type BasicThingType = 1 | 2;
export interface DeviceFamily {
    familyid: string;
    index: number;
    roomid?: string;
}
export interface ShareItem {
    apikey: string;
    phoneNumber?: string;
    email?: string;
    nickname?: string;
    permit: number;
    comment?: string;
    shareTime?: number;
}
export interface ThingData {
    name?: string;
    deviceid?: string;
    apikey?: string;
    extra?: any;
    brandName?: string;
    brandLogo?: string;
    showBrand?: boolean;
    productModel?: string;
    devGroups?: {
        type: number;
        groupId: string;
    }[];
    tags?: any;
    devConfig?: {
        p2pServerName?: string;
        p2pAccount?: string;
        p2pLicense?: string;
    };
    settings?: any;
    family?: DeviceFamily;
    sharedBy?: ShareItem;
    shareTo?: ShareItem[];
    devicekey?: string;
    online?: boolean;
    params?: any;
    gsmInfoData?: any;
    id?: string;
    mainDeviceId?: string;
}
export declare const device: {
    getThingList(params?: {
        lang?: "cn" | "en" | undefined;
        familyid?: string | undefined;
        num?: number | undefined;
        beginIndex?: number | undefined;
    } | undefined): Promise<{
        error: number;
        msg: string;
        data: {
            thingList: {
                itemType: number;
                itemData: ThingData;
                index: number;
            }[];
            total: number;
        };
    }>;
    getSpecThingList(params: {
        thingList: {
            itemType: ThingType;
            id: string;
        }[];
    }): Promise<{
        error: number;
        msg: string;
        data: {
            thingList: ThingData[];
        };
    }>;
    getThingStatus(params: {
        type: BasicThingType;
        id: string;
        params?: string | undefined;
    }): Promise<{
        error: number;
        msg: string;
        data: {
            params: any;
        };
    }>;
    updateThingStatus(params: {
        type: BasicThingType;
        id: string;
        params: any;
    }): Promise<ApiResponse>;
    updateMultiThingStatus(params: {
        thingList: {
            type: BasicThingType;
            id: string;
            params: any;
        }[];
        timeout?: number | undefined;
    }): Promise<{
        error: number;
        msg: string;
        data: {
            respList: {
                type: BasicThingType;
                id: string;
                error: number;
            }[];
        };
    }>;
    addWifiDevice(params: {
        name: string;
        deviceid: string;
        settings?: {
            opsNotify?: number;
            opsHistory?: number;
            alarmNotify?: number;
        };
        ifrCode?: string;
        digest: string;
        chipid?: string;
        familyid?: string;
        roomid?: string;
        sort?: number;
    }): Promise<{
        error: number;
        msg: string;
        data: {
            itemType: number;
            itemData: ThingData;
            index: number;
        };
    }>;
    addGsmDevice(params: {
        id: string;
        name: string;
        familyid?: string;
        roomid?: string;
        sort?: number;
    }): Promise<ApiResponse>;
    updateDeviceInfo(params: {
        deviceid: string;
        name?: string;
        roomid?: string;
    }): Promise<ApiResponse>;
    delDevice(params: {
        deviceid: string;
    }): Promise<ApiResponse>;
    updateDeviceTag(params: {
        deviceid: string;
        type?: 'replace' | 'merge';
        tags: any;
    }): Promise<{
        error: number;
        msg: string;
        data: {
            updatedThing: any;
        };
    }>;
    getGroupList(params?: {
        lang?: "cn" | "en" | undefined;
    } | undefined): Promise<{
        error: number;
        msg: string;
        data: {
            groupList: {
                itemType: number;
                itemData: {
                    id: string;
                    name: string;
                    mainDeviceId: string;
                    family: DeviceFamily;
                    params: any;
                };
                index: number;
            }[];
        };
    }>;
    addGroup(params: {
        name: string;
        mainDeviceId: string;
        familyid?: string;
        roomid?: string;
        sort?: number;
        deviceidList?: string[];
    }): Promise<{
        error: number;
        msg: string;
        data: {
            itemType: number;
            itemData: ThingData;
            index: number;
        };
    }>;
    updateGroup(params: {
        id: string;
        name: string;
    }): Promise<ApiResponse>;
    delGroup(params: {
        id: string;
    }): Promise<ApiResponse>;
    updateGroupStatus(params: {
        id: string;
        params: any;
    }): Promise<ApiResponse>;
    addGroupDevice(params: {
        id: string;
        deviceidList: string[];
    }): Promise<{
        error: number;
        msg: string;
        data: {
            updatedThingList: any[];
        };
    }>;
    delGroupDevice(params: {
        id: string;
        deviceidList: string[];
    }): Promise<{
        error: number;
        msg: string;
        data: {
            updatedThingList: any[];
        };
    }>;
    updateGroupList(params: {
        id: string;
        deviceidList: string[];
    }): Promise<{
        error: number;
        msg: string;
        data: {
            updatedThingList: any[];
        };
    }>;
    shareDevice(params: {
        deviceidList: string[];
        user: {
            countryCode?: string;
            phoneNumber?: string;
            email?: string;
        };
        permit: number;
        comment?: string;
        shareType?: number;
    }): Promise<{
        error: number;
        msg: string;
        data: {
            updatedThingList: any[];
        };
    }>;
    updateSharePermit(params: {
        deviceid: string;
        apikey: string;
        permit: number;
    }): Promise<{
        error: number;
        msg: string;
        data: {
            updatedThingList: any[];
        };
    }>;
    cancelShare(params: {
        deviceid: string;
        apikey: string;
    }): Promise<{
        error: number;
        msg: string;
        data: {
            updatedThingList: any[];
        };
    }>;
    getHistory(params: {
        deviceid: string;
        from?: number;
        num?: number;
    }): Promise<{
        error: number;
        msg: string;
        data: {
            histories: {
                deviceid: string;
                userAgent?: string;
                opsSwitchs?: string;
                request: string;
                opsAccount?: string;
                opsTime: number;
            }[];
        };
    }>;
    delHistory(params: {
        deviceid: string;
    }): Promise<ApiResponse>;
    getOtaInfo(params: {
        deviceInfoList: {
            deviceid: string;
            model: string;
            version: string;
        }[];
    }): Promise<{
        error: number;
        msg: string;
        data: {
            otaInfoList: {
                deviceid: string;
                version: string;
                binList: {
                    name: string;
                    downloadUrl: string;
                    digest?: string;
                }[];
                type: string;
                forceTime: string;
            }[];
        };
    }>;
};
