import { API, Characteristic, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service } from 'homebridge';
import XHome from 'xfinityhome';
import { CONFIG, CONTEXT } from './settings';
/**
 * 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 XfinityHomePlatform implements DynamicPlatformPlugin {
    readonly log: Logger;
    readonly api: API;
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    readonly CustomCharacteristic: {
        EnergyUsage: any;
        PanelStatus: any;
        PanelArmType: any;
    };
    xhome: XHome;
    private refreshToken?;
    /** this is used to track restored cached accessories */
    private readonly cachedAccessories;
    /** this is used to track which accessories have been restored from the cache */
    private readonly restoredAccessories;
    /** this is used to track which accessories have been added */
    private readonly addedAccessories;
    /** this is used to track which accessories have been configured */
    config: PlatformConfig & CONFIG;
    constructor(log: Logger, config: PlatformConfig, api: API);
    /**
     * 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<CONTEXT>): void;
    /**
     * This is an example method showing how to register discovered accessories.
     * Accessories must only be registered once, previously created accessories
     * must not be registered again to prevent "duplicate UUID" errors.
     */
    discoverDevices(): Promise<void>;
}
//# sourceMappingURL=platform.d.ts.map