/** * Device Factory * * Creates the appropriate DysonDevice subclass based on product type. * Uses the device catalog as the single source of truth. */ import type { DeviceInfo } from './types.js'; import type { DysonDevice, MqttClientFactory } from './dysonDevice.js'; import type { MqttConnectFn } from '../protocol/mqttClient.js'; export { isProductTypeSupported, getSupportedProductTypes } from '../config/index.js'; /** * Create a DysonDevice instance for the given device info * * @param deviceInfo - Device information from discovery * @param mqttClientFactory - Optional MQTT client factory (for testing) * @param mqttConnectFn - Optional MQTT connect function (for testing) * @returns DysonDevice instance * @throws Error if product type is not supported */ export declare function createDevice(deviceInfo: DeviceInfo, mqttClientFactory?: MqttClientFactory, mqttConnectFn?: MqttConnectFn): DysonDevice; //# sourceMappingURL=deviceFactory.d.ts.map