import { API, Characteristic, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service } from 'homebridge';
import { ILogger } from './Logger.js';
import { UnifiAccess } from './UnifiAccess';
import { UnifiAccessClient } from './UnifiAccessClient';
import { Mqtt } from './mqtt';
/**
 * Homebridge Platform
 * 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 UnifiAccessPlatform implements DynamicPlatformPlugin {
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    readonly api: API;
    readonly logger: ILogger;
    private readonly config;
    private readonly accessories;
    private readonly client;
    private readonly mqtt?;
    private readonly devices;
    constructor(log: Logger, config: PlatformConfig, api: API);
    configureAccessory(accessory: PlatformAccessory): void;
    init(): Promise<void>;
    dispose(): Promise<void>;
    registerDevice(device: UnifiAccess.Device): Promise<void>;
}
export declare namespace UnifiAccessPlatform {
    type Config = PlatformConfig & UnifiAccessClient.Config & {
        devices?: Array<{
            id: string;
            ignore?: boolean;
            asGarageDoor?: boolean;
        }>;
        mqtt?: Mqtt.Config;
    };
}
//# sourceMappingURL=UnifiAccessPlatform.d.ts.map