import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
import { EufySecurityPlatformConfig } from './config';
import { EufySecurity, Station } from '@spectralblu/eufy-security-client';
import { Logger as TsLogger, ILogObj } from 'tslog';
export declare class EufySecurityPlatform implements DynamicPlatformPlugin {
    readonly hblog: Logger;
    readonly api: API;
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    eufyClient: EufySecurity;
    readonly accessories: PlatformAccessory[];
    config: EufySecurityPlatformConfig;
    private eufyConfig;
    log: TsLogger<ILogObj>;
    private tsLogger;
    ffmpegLogger: TsLogger<ILogObj>;
    private already_shutdown;
    readonly eufyPath: string;
    private activeAccessoryIds;
    private cleanCachedAccessoriesTimeout?;
    constructor(hblog: Logger, config: PlatformConfig, api: API);
    private pluginSetup;
    private stationAdded;
    private deviceAdded;
    private processAccessory;
    private deviceRemoved;
    private pluginShutdown;
    /**
     * 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;
    private cleanCachedAccessories;
    private register_accessory;
    getStationById(id: string): Promise<Station>;
    private clean_config;
    private clean_config_after_init;
}
//# sourceMappingURL=platform.d.ts.map