///
import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig } from 'homebridge';
import { EventCharacteristic, HAPEvent, Homebridge } from './types';
import { IoTClient } from '@aws-sdk/client-iot';
import { IoTDataPlaneClient } from '@aws-sdk/client-iot-data-plane';
import EventEmitter from 'events';
import { Accessory } from 'hap-nodejs';
import { MqttClient } from 'mqtt/types/lib/client';
declare type DeviceFilter = {
readonly name: string;
readonly displayCategory: string;
};
declare type PluginConfig = {
readonly pin: string;
readonly debug: boolean;
readonly awsRegion: string;
readonly awsIamAccessKey: string;
readonly awsIamSecret: string;
readonly iotIdentifier: string;
readonly iotEndpoint: string;
readonly deviceFilterList: ReadonlyArray;
} & PlatformConfig;
/**
* 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 AwsIotHomebridgePlatform implements DynamicPlatformPlugin {
readonly log: Logger;
readonly config: PlatformConfig;
readonly api: API;
configureAccessory(accessory: PlatformAccessory): void;
readonly co: PluginConfig;
readonly iotClient: IoTClient | null;
readonly iotDataplaneClient: IoTDataPlaneClient | null;
readonly eventBus: EventEmitter;
private readonly hapClient;
private readonly thingMap;
readonly mqttClient: MqttClient | null;
readonly deviceFilterList: Map;
constructor(log: Logger, config: PlatformConfig, api: API);
getUrlSignatureOptions(): {
host: string;
region: string;
username: string;
password: string;
};
handleMqttMessage(topic: string, payload: Buffer): Promise;
handleHomebridgeDiscovery(homebridges: ReadonlyArray): Promise;
getCharacteristicsForEvents(accessory: Accessory): ReadonlyArray;
registerForEvents(homebridge: Homebridge, characteristics: ReadonlyArray): void;
hapEvent(events: Array): Promise;
json(data: any): string;
}
export {};
//# sourceMappingURL=platform.d.ts.map