import { CharacteristicValue, Nullable, PlatformAccessory } from 'homebridge';
import { PentairPlatform } from './platform';
/**
 * 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 CircuitAccessory {
    private readonly platform;
    private readonly accessory;
    private service;
    private circuit;
    private panel;
    private module;
    private pumpCircuit;
    constructor(platform: PentairPlatform, accessory: PlatformAccessory);
    private initializeContext;
    private setupAccessoryInformation;
    private setupService;
    private setupLightbulbCharacteristics;
    private configureServiceCharacteristics;
    private configureFanService;
    /**
     * Handle "SET" requests from HomeKit
     * These are sent when the user changes the state of an accessory, for example, turning on a Light bulb.
     */
    setOn(value: CharacteristicValue): Promise<void>;
    setColorHue(value: CharacteristicValue): Promise<void>;
    setColorSaturation(value: CharacteristicValue): Promise<void>;
    setColorTemperature(value: CharacteristicValue): Promise<void>;
    setBrightness(value: CharacteristicValue): Promise<void>;
    getColorHue(): Promise<CharacteristicValue>;
    getColorSaturation(): Promise<CharacteristicValue>;
    getBrightness(): Promise<CharacteristicValue>;
    getColorTemperature(): Promise<CharacteristicValue>;
    /**
     * Handle the "GET" requests from HomeKit
     * These are sent when HomeKit wants to know the current state of the accessory, for example, checking if a Light bulb is on.
     *
     * GET requests should return as fast as possbile. A long delay here will result in
     * HomeKit being unresponsive and a bad user experience in general.
     *
     * If your device takes time to respond you should update the status of your device
     * asynchronously instead using the `updateCharacteristic` method instead.
  
     * @example
     * this.service.updateCharacteristic(this.platform.Characteristic.On, true)
     */
    getOn(): Promise<CharacteristicValue>;
    getCircuitStatus(): boolean;
    setSpeed(value: CharacteristicValue): Promise<void>;
    getSpeed(): Promise<Nullable<CharacteristicValue>>;
    convertSpeedToPowerLevel(): number;
    convertPowerLevelToSpeed(powerLevel: number): number;
}
//# sourceMappingURL=circuitAccessory.d.ts.map