import { API, Characteristic, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service } from 'homebridge';
import { UniFiSmartPower, UniFiControllerConfig } from './uniFiSmartPower';
type UniFiSmartPowerHomebridgePlatformConfig = PlatformConfig & UniFiControllerConfig & {
    controlSwitch?: UniFiControlSwitchConfig;
    includeSites?: string[];
    excludeSites?: string[];
    includeDevices?: string[];
    excludeDevices?: string[];
    includeOutlets?: string[];
    excludeOutlets?: string[];
    includeInactivePorts?: boolean;
    excludePorts?: string[];
    includePorts?: string[];
    includeInactiveRpsPorts?: boolean;
    excludeRpsPorts?: string[];
    includeRpsPorts?: string[];
    logApiResponses?: boolean;
};
interface UniFiControlSwitchConfig {
    create?: boolean;
    name?: string;
    timeout?: number;
    guardOutlets?: boolean;
    guardSwitchPorts?: boolean;
    guardRpsPorts?: boolean;
}
export declare class UniFiSmartPowerHomebridgePlatform implements DynamicPlatformPlugin {
    readonly log: Logger;
    readonly platformConfig: PlatformConfig;
    readonly api: API;
    private static readonly REFRESH_DEVICES_POLL_INTERVAL_MS_DEFAULT;
    private static readonly REFRESH_DEVICES_POLL_INTERVAL_MS_MIN;
    private static readonly REFRESH_DEVICES_POLL_INTERVAL_MS_MAX;
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    readonly accessories: PlatformAccessory[];
    readonly config: UniFiSmartPowerHomebridgePlatformConfig;
    readonly uniFiSmartPower: UniFiSmartPower;
    private initialized;
    constructor(log: Logger, platformConfig: PlatformConfig, api: API);
    configureAccessory(accessory: PlatformAccessory): void;
    discoverDevices(): Promise<void>;
    private get refreshDevicesPollIntervalMs();
}
export {};
//# sourceMappingURL=platform.d.ts.map