import { PlatformAccessory, Service, Characteristic, Logging, CharacteristicValue } from 'homebridge';
import RachioPlatform from '../rachioplatform.js';
import RachioAPI from '../rachioapi.js';
import listen from '../listener.js';
import type { Controller, Zone } from '../settings.js';
export default class irrigation {
    private readonly platform;
    private readonly log;
    private rachioapi;
    private listener;
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    constructor(platform: RachioPlatform, log?: Logging, rachioapi?: RachioAPI, listener?: listen);
    createIrrigationAccessory(device: Controller, deviceState: {
        state: {
            state: string;
            desiredState: string;
            firmwareVersion: string;
            health: string;
        };
    }, platformAccessory: PlatformAccessory): PlatformAccessory<import("homebridge").UnknownContext>;
    configureIrrigationService(device: Controller, irrigationSystemService: Service): void;
    createValveService(device: Controller, zone: Zone): Service;
    configureValveService(device: Controller, valveService: Service): void;
    updateValveService(device: Controller, zone: Zone, valveService: Service): Service | undefined;
    getDeviceValue(irrigationSystemService: Service, characteristicName: string): import("homebridge").Nullable<CharacteristicValue>;
    getValveValue(valveService: Service, characteristicName: CharacteristicValue): import("homebridge").Nullable<CharacteristicValue>;
    setValveValue(device: Controller, valveService: Service, value: CharacteristicValue): Promise<void>;
    setValveSetDuration(device: Controller, valveService: Service, value: CharacteristicValue): void;
}
