import { EconetApi } from './api.js';
import { EquipmentType, TemperatureUnits } from './constants.js';
import { EquipmentData, MQTTData } from './types.js';
import { Log } from '../tools/log.js';
export declare abstract class Equipment {
    private readonly api;
    private device_id?;
    private serial_number?;
    private device_name?;
    private alert_count;
    private temp_units;
    protected running: boolean;
    private _onUpdateCallback;
    constructor(api: EconetApi, data: EquipmentData);
    abstract get type(): EquipmentType;
    get deviceId(): string;
    get serialNumber(): string;
    get deviceName(): string;
    get hasAlert(): boolean;
    get units(): TemperatureUnits;
    get isRunning(): boolean;
    protected get log(): Log;
    setOnUpdateCallback(callback: (serialNumber: string) => void): void;
    protected didUpdate(): void;
    updateFromMQTT(update: MQTTData): void;
    publish(payload: {
        [key: string]: number;
    }, deviceId: string, serialNumber: string): void;
}
