import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
import type { ResideoPlatform } from '../platform.js';
import type { devicesConfig, fanStatus, location, resideoDevice, roomPriorityStatus } from '../settings.js';
import { Subject } from 'rxjs';
import { deviceBase } from './device.js';
/**
 * Platform Accessory
 * An instance of this class is created for each accessory your platform registers
 * Each accessory may expose multiple services of different service types.
 */
export declare class Thermostats extends deviceBase {
    readonly platform: ResideoPlatform;
    private Thermostat;
    private Fan?;
    private HumiditySensor?;
    private StatefulProgrammableSwitch?;
    thermostatSetpointStatus: string;
    thermostatUpdateInProgress: boolean;
    doThermostatUpdate: Subject<void>;
    fanStatus: fanStatus;
    fanUpdateInProgress: boolean;
    doFanUpdate: Subject<void>;
    roomPriorityStatus: roomPriorityStatus;
    roomUpdateInProgress: boolean;
    doRoomUpdate: Subject<void>;
    constructor(platform: ResideoPlatform, accessory: PlatformAccessory, location: location, device: resideoDevice & devicesConfig);
    /**
     * Parse the device status from the Resideo api
     */
    parseStatus(): Promise<void>;
    /**
     * Asks the Resideo Home API for the latest device information
     */
    refreshStatus(): Promise<void>;
    private getDeviceStatus;
    private getRoomPriorityStatus;
    private getFanStatus;
    /**
     * Pushes the requested changes to the Resideo API
     */
    pushChanges(): Promise<void>;
    ResideoMode(): Promise<string>;
    pushChangesthermostatSetpointStatus(): Promise<void>;
    /**
     * Pushes the requested changes for Room Priority to the Resideo API
     */
    pushRoomChanges(): Promise<void>;
    /**
     * Updates the status for each of the HomeKit Characteristics
     */
    updateHomeKitCharacteristics(): Promise<void>;
    apiError(e: any): Promise<void>;
    getThermostatConfigSettings(accessory: PlatformAccessory, device: resideoDevice & devicesConfig): Promise<void>;
    setTargetHeatingCoolingState(value: CharacteristicValue): Promise<void>;
    setHeatingThresholdTemperature(value: CharacteristicValue): Promise<void>;
    setCoolingThresholdTemperature(value: CharacteristicValue): Promise<void>;
    setTargetTemperature(value: CharacteristicValue): Promise<void>;
    setTemperatureDisplayUnits(value: CharacteristicValue): Promise<void>;
    /**
     * Handle requests to set the "Programmable Switch Output State" characteristic
     */
    handleProgrammableSwitchOutputStateSet(value: CharacteristicValue): void;
    /**
     * Pushes the requested changes for Fan to the Resideo API
     */
    pushFanChanges(): Promise<void>;
    /**
     * Updates the status for each of the HomeKit Characteristics
     */
    setActive(value: CharacteristicValue): Promise<void>;
    setTargetFanState(value: CharacteristicValue): Promise<void>;
}
//# sourceMappingURL=thermostats.d.ts.map