export interface IThingsboardHttpClient {
    /**
     * Close the HTTP connection
     *
     * @memberof IThingsboardHttpClient
     */
    closeHttpConnection(): any;
    /**
     * Check if the HTTP client has a valid access token
     *
     * @returns {boolean}
     * @memberof IThingsboardHttpClient
     */
    hasToken(): boolean;
    /**
     * Get a Thingsboard device by name
     * ONLY USEABLE FOR TENANT USER
     * @param {string} deviceName The device name
     * @returns {Promise<any>}
     * @memberof IThingsboardHttpClient
     */
    getDeviceByName(deviceName: string): Promise<any>;
    /**
     * Get a Thingsboard asset by name
     * ONLY USEABLE FOR TENANT USER
     * @param {string} assetName The asset name
     * @returns {Promise<any>}
     * @memberof IThingsboardHttpClient
     */
    getAssetByName(assetName: string): Promise<any>;
    /**
     * Get a Thingsboard device's credentials
     *
     * @param {string} deviceId The device ID
     * @returns {Promise<any>}
     * @memberof IThingsboardHttpClient
     */
    getDeviceCredentials(deviceId: string): Promise<any>;
    /**
     * Add a new device to Thingsboard
     *
     * @param {string} deviceName The device name
     * @param {*} mobiusObject The mobius object representing the device
     * @returns {Promise<any>}
     * @memberof IThingsboardHttpClient
     */
    addDevice(deviceName: string, mobiusObject: any): Promise<any>;
    /**
     * Add a new asset to Thingsboard
     *
     * @param {string} assetName The asset name
     * @param {*} mobiusObject The mobius object representing the asset
     * @returns {Promise<any>}
     * @memberof IThingsboardHttpClient
     */
    addAsset(assetName: string, mobiusObject: any): Promise<any>;
    /**
     * Update a Thingsboard device's attributes
     *
     * @param {string} deviceName The device name
     * @param {*} attributes The attributes as key value pairs
     * @returns {Promise<any>}
     * @memberof IThingsboardHttpClient
     */
    updateDeviceClientAttributes(deviceName: string, attributes: any): Promise<any>;
    /**
     * Update a Thingsboard device's telemetry
     *
     * @param {string} deviceName The device name
     * @param {number} timestamp The update timestamp
     * @param {*} telemetry The telemetry as key value pairs
     * @returns {Promise<any>}
     * @memberof IThingsboardHttpClient
     */
    updateDeviceTelemetry(deviceName: string, timestamp: number, telemetry: any): Promise<any>;
    /**
     * Update a Thingsboard asset's telemetry
     *
     * @param {string} assetName The asset name
     * @param {number} timestamp The update timestamp
     * @param {*} telemetry The telemetry as key value pairs
     * @returns {Promise<any>}
     * @memberof IThingsboardHttpClient
     */
    updateAssetTelemetry(assetName: string, timestamp: number, telemetry: any): Promise<any>;
}
export declare class ThingsboardHttpClient implements IThingsboardHttpClient {
    private httpClient;
    private siteURL;
    private userName;
    private password;
    private token;
    private refreshToken;
    private httpTokenRefreshTimer;
    constructor(siteURL: string, userName: string, password: string);
    closeHttpConnection(): void;
    hasToken(): boolean;
    getDeviceByName(deviceName: string): Promise<any>;
    getAssetByName(assetName: string): Promise<any>;
    getDeviceCredentials(deviceId: string): Promise<any>;
    addDevice(deviceName: string, mobiusObject: any): Promise<any>;
    addAsset(assetName: string, mobiusObject: any): Promise<any>;
    updateDeviceClientAttributes(deviceId: string, attributes: any): Promise<any>;
    updateDeviceTelemetry(deviceId: string, timestamp: number, telemetry: any): Promise<any>;
    updateAssetTelemetry(assetId: string, timestamp: number, telemetry: any): Promise<any>;
    private getHttpTokenFromTB;
}
