import { CharacteristicSetHandler } from 'homebridge';
import { BaseAccessory, NumberCallback, OnUpdateHandler } from '../abstract/base.js';
import { CharacteristicKey, HKCharacteristicKey, MQTTKeys } from '../../model/enums.js';
import { AccessoryDependency, EquipmentData, Setpoint } from '../../model/types.js';
import { TemperatureUnits } from '../../tools/temperature.js';
type TemperatureDefaults = {
    setPoint: number;
    lowerLimit: number;
    upperLimit: number;
};
export declare function TemperatureDefaults(setPoint: number, lowerLimit: number, upperLimit: number): {
    setPoint: number;
    lowerLimit: number;
    upperLimit: number;
};
export type Thresholds = {
    minimum: number;
    maximum: number;
};
export declare abstract class TemperatureControlAccessory extends BaseAccessory {
    private readonly defaults;
    protected readonly units: TemperatureUnits;
    constructor(dependency: AccessoryDependency, data: EquipmentData, defaults: TemperatureDefaults);
    protected setupThreshold(charKey: HKCharacteristicKey, setPoint: Setpoint | undefined, mqttKeys: MQTTKeys): Thresholds;
    private bindOnAlertCountUpdate;
    private bindOnAlarmUpdate;
    protected bindOnUpdateTemperature(charKey: CharacteristicKey, units: TemperatureUnits, logTemplate: string, callback?: NumberCallback): OnUpdateHandler;
    protected bindOnSetTemperature(charKey: CharacteristicKey, units: TemperatureUnits, mqttKeys: MQTTKeys, logTemplate: string, debounce?: boolean): CharacteristicSetHandler;
}
export {};
