import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
import { Service as BonjourService } from 'bonjour-service';
import { ConfigSchema } from './config.schema';
import { EnergySocketApi, MdnsTxtRecord } from 'homewizard-energy-api';
import { EnergySocketAccessoryProperties, HomeWizardEnergyPlatformAccessoryContext } from './types';
export declare class HomebridgeHomeWizardEnergySocket implements DynamicPlatformPlugin {
    readonly log: Logger;
    readonly api: API;
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    cachedAccessories: PlatformAccessory<HomeWizardEnergyPlatformAccessoryContext>[];
    private config;
    private bonjour;
    private loggerPrefix;
    constructor(log: Logger, config: PlatformConfig, api: API);
    configureAccessory(accessory: PlatformAccessory<HomeWizardEnergyPlatformAccessoryContext>): void;
    isStaleCachedAccessory(cachedAccessory: PlatformAccessory<HomeWizardEnergyPlatformAccessoryContext>, energySocketsConfig: ConfigSchema['energySockets']): boolean;
    stopDiscoveringDevices(): void;
    startDiscoveringDevices(): void;
    isDeviceApiEnabled(txtRecord: MdnsTxtRecord): boolean;
    isDeviceProductTypeSupported(txtRecord: MdnsTxtRecord): boolean;
    handleDiscoveredService(service: BonjourService): Promise<void>;
    isValidConfigSchema(config: ConfigSchema): boolean;
    handleEnergySocketsFromConfig(): Promise<void>;
    addAccessory(energySocketProperties: EnergySocketAccessoryProperties, api: EnergySocketApi): void;
    attachAccessoryToPlatform(accessory: PlatformAccessory<HomeWizardEnergyPlatformAccessoryContext>, api: EnergySocketApi): void;
    getEnergySocketPropertiesFromIp(ip: string, configName?: string): Promise<{
        energySocketProperties: EnergySocketAccessoryProperties;
        api: EnergySocketApi;
    }>;
    getEnergySocketPropertiesFromService(service: BonjourService): Promise<{
        energySocketProperties: EnergySocketAccessoryProperties;
        api: EnergySocketApi;
    }>;
}
//# sourceMappingURL=platform.d.ts.map