import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
import { LGCeilingFanConfig } from './settings';
import { LGApi } from './lg-api';
export declare class LGCeilingFanPlatform implements DynamicPlatformPlugin {
    readonly log: Logger;
    readonly config: PlatformConfig & LGCeilingFanConfig;
    readonly api: API;
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    readonly accessories: PlatformAccessory[];
    private readonly fanAccessories;
    private lgApi;
    private isAuthenticated;
    constructor(log: Logger, config: PlatformConfig & LGCeilingFanConfig, api: API);
    configureAccessory(accessory: PlatformAccessory): void;
    private isValidConfig;
    private authenticate;
    private authenticateWithAutoRefresh;
    private executeWithAutoRefresh;
    discoverDevices(): Promise<void>;
    private getConfiguredDevices;
    private isCeilingFan;
    private createOrUpdateAccessory;
    private removeUnusedAccessories;
    get platformConfig(): LGCeilingFanConfig;
    getLgApi(): LGApi;
    executeApiWithAutoRefresh<T>(apiCall: () => Promise<T>): Promise<T>;
    private startAuthenticationHealthCheck;
}
