import { API, DynamicPlatformPlugin, Logging, PlatformAccessory, PlatformConfig } from 'homebridge';
import { FibaroClient } from './fibaro-api';
import { SetFunctions } from './setFunctions';
import { GetFunctions } from './getFunctions';
import { Poller } from './pollerupdate';
/**
 * HomebridgePlatform
 * This class is the main constructor for your plugin, this is where you should
 * parse the user config and discover/register accessories with Homebridge.
 */
export declare class FibaroHC implements DynamicPlatformPlugin {
    readonly log: Logging;
    readonly config: PlatformConfig;
    readonly api: API;
    readonly Service: typeof import("homebridge").Service;
    readonly Characteristic: typeof import("homebridge").Characteristic;
    readonly accessories: PlatformAccessory[];
    updateSubscriptions: Array<unknown>;
    poller?: Poller;
    scenes: Record<string, string>;
    climateZones: Record<string, string>;
    info: Record<string, string>;
    fibaroClient?: FibaroClient;
    setFunctions?: SetFunctions;
    getFunctions?: GetFunctions;
    loginTimeout: NodeJS.Timeout | null;
    rooms: {
        id: number;
        name: string;
    }[];
    devices: any;
    constructor(log: Logging, config: PlatformConfig, api: API);
    private setupConfig;
    private setupPollerPeriod;
    private setupThermostatMaxTemp;
    private setupDefaultConfigValues;
    private setupUrl;
    private initializeFibaroClient;
    login(): Promise<void>;
    private fetchInfo;
    private processScenes;
    private processZones;
    private processHeatingZones;
    private processClimateZones;
    private fetchDevicesAndRooms;
    private handleLoginError;
    /**
     * This function is invoked when homebridge restores cached accessories from disk at startup.
     * It should be used to setup event handlers for characteristics and update respective values.
     */
    configureAccessory(accessory: PlatformAccessory): void;
    processDevices(): void;
    addAccessory(device: any): void;
    removeAccessory(accessory: any): void;
    findServiceByName(name: any, service: any): import("homebridge").Service | undefined;
    isOldApi(): boolean | "";
    getRoomNameById(roomId: number): string | undefined;
}
//# sourceMappingURL=platform.d.ts.map