import { PlatformAccessory, Service, Characteristic, Logging, PlatformConfig, CharacteristicValue } from 'homebridge';
import RachioPlatform from '../rachioplatform.js';
import RachioAPI from '../rachioapi.js';
import listen from '../listener.js';
import poll from '../polling.js';
import type { BaseStation, Property, Valve } from '../settings.js';
export default class valve {
    private readonly platform;
    private readonly log;
    private readonly config;
    private rachioapi;
    private listener;
    private polling;
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    valves: Service[];
    constructor(platform: RachioPlatform, log?: Logging, config?: PlatformConfig, rachioapi?: RachioAPI, listener?: listen, polling?: poll);
    createValveAccessory(base: BaseStation, property: Property, valve: Valve, platformAccessory: PlatformAccessory): PlatformAccessory<import("homebridge").UnknownContext>;
    configureValveService(valve: Valve, valveService: Service): void;
    updateValveService(base: BaseStation, valve: Valve, valveService: Service): Service;
    getValveValue(valveService: Service, characteristicName: string): import("homebridge").Nullable<CharacteristicValue>;
    setValveValue(valve: Valve, valveService: Service, value: CharacteristicValue): Promise<void>;
    setValveSetDuration(valve: Valve, valveService: Service, value: CharacteristicValue): void;
}
