interface IConfigForApp {
    at: string;
    apikey: string;
    appid: string;
    region: 'cn' | 'us' | 'eu' | 'as';
    userAgent: 'app' | 'pc_ewelink';
    useTestEnv?: boolean;
    debug?: boolean;
    reqTimeout?: number;
    heartBeatRatio?: number;
}
interface IConfigForDevice {
    region: 'cn' | 'us' | 'eu' | 'as';
    apikey: string;
    chipid?: string;
    deviceid: string;
    userAgent: 'device';
    useTestEnv?: boolean;
    debug?: boolean;
    reqTimeout?: number;
    heartBeatRatio?: number;
}
export declare type IConfig = IConfigForDevice | IConfigForApp;
export interface IWsParams {
    [key: string]: any;
}
export interface IDeviceConfig {
    deviceid: string;
    ownerApikey: string;
    params: any;
}
export interface IQueryConfig extends IDeviceConfig {
    params: string[];
}
export interface IUpgradeConfig extends IDeviceConfig {
    params: {
        model: string;
        version: string;
        binList: IBinList[];
    };
}
interface IBinList {
    downloadUrl: string;
    digest?: string;
    name: string;
}
export interface IResponse {
    error: number;
    msg: string;
    data?: WebSocket;
}
export interface IWsHandler {
    (wsResp: any): void;
}
export interface IDeviceResponse {
    error: number;
    deviceid: string;
    apikey: string;
    sequence: string;
    params?: any;
}
export interface ISendDeviceParams {
    action: 'upgrade' | 'update' | 'query';
    deviceid: string;
    apikey: string;
    userAgent: 'app' | 'device' | 'pc_ewelink';
    sequence: string;
    params: any;
    selfApikey?: string;
}
export {};
