import { API, Characteristic, DynamicPlatformPlugin, Logging, PlatformAccessory, PlatformConfig, Service } from 'homebridge';
import { PoolControllerClient } from './poolControllerClient.js';
export interface PoolControllerConfig {
    name?: string;
    url: string;
    apiKey: string;
    relays: string[];
    exposeScheduler?: boolean;
    exposeLoadSensors?: boolean;
    pollIntervalSeconds?: number;
}
/**
 * Homebridge platform: one Pool Controller accessory with multiple services.
 */
export declare class PoolControllerHomebridgePlatform implements DynamicPlatformPlugin {
    readonly log: Logging;
    readonly api: API;
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    readonly accessories: PlatformAccessory[];
    readonly client: PoolControllerClient;
    readonly config: PlatformConfig & PoolControllerConfig;
    private controllerAccessory?;
    private pollTimer?;
    constructor(log: Logging, config: PlatformConfig & PoolControllerConfig, api: API);
    configureAccessory(accessory: PlatformAccessory): void;
    private controllerUUID;
    private legacyRelayUUID;
    discoverDevices(): Promise<void>;
    private unregisterLegacyAccessories;
    private pollIntervalMs;
    private startPoller;
}
