matterbridge-dyson-robot
Version:
A Matterbridge plugin that connects Dyson robot vacuums and air treatment devices to the Matter smart home ecosystem via their local or cloud MQTT APIs.
99 lines • 3.63 kB
JavaScript
/**
* This module was automatically generated by `ts-interface-builder`
*/
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes
export const ProvisioningMethod = t.union(t.lit('Remote Account'), t.lit('Local Account'), t.lit('Local Wi-Fi'), t.lit('Local MQTT'));
export const DysonAccountBase = t.iface([], {
"china": "boolean",
"finishAuth": t.opt("boolean"),
"startAuth": t.opt("boolean"),
});
export const DysonAccountLogin = t.iface(["DysonAccountBase"], {
"email": "string",
"password": "string",
});
export const DysonAccountToken = t.iface(["DysonAccountBase"], {
"token": "string",
"email": t.opt("string"),
"password": t.opt("string"),
});
export const DysonAccount = t.union("DysonAccountLogin", "DysonAccountToken");
export const DeviceConfigNetwork = t.iface([], {
"host": "string",
"port": "number",
});
export const DeviceConfigLocalAccount = t.iface(["DeviceConfigNetwork"], {
"serialNumber": "string",
});
export const DeviceConfigLocalWiFi = t.iface(["DeviceConfigNetwork"], {
"name": "string",
"ssid": "string",
"password": "string",
});
export const DeviceConfigLocalMqtt = t.iface(["DeviceConfigNetwork"], {
"name": "string",
"serialNumber": "string",
"password": "string",
"rootTopic": "string",
});
export const EntityName = t.union(t.lit('Air Purifier'), t.lit('Air Quality Sensor'), t.lit('Composed Air Purifier'), t.lit('Humidity Sensor'), t.lit('Temperature Sensor'), t.lit('Thermostat'));
export const DebugFeatures = t.union(t.lit('Log Endpoint Debug'), t.lit('Log API Headers'), t.lit('Log API Bodies'), t.lit('Log MQTT Client'), t.lit('Log MQTT Payloads'), t.lit('Log Serial Numbers'), t.lit('Log Debug as Info'));
export const ConfigBase = t.iface([], {
"name": "string",
"type": "string",
"version": "string",
"whiteList": t.array("string"),
"blackList": t.array("string"),
"entityWhiteList": t.array("EntityName"),
"entityBlackList": t.array("EntityName"),
"deviceEntityBlackList": t.iface([], {
[t.indexKey]: t.array("EntityName"),
}),
"provisioningMethod": "ProvisioningMethod",
"wildcardTopic": "boolean",
"debug": "boolean",
"debugFeatures": t.array("DebugFeatures"),
"unregisterOnShutdown": "boolean",
});
export const ConfigAccount = t.iface(["ConfigBase"], {
"dysonAccount": "DysonAccount",
});
export const ConfigRemoteAccount = t.iface(["ConfigAccount"], {
"provisioningMethod": t.lit('Remote Account'),
});
export const ConfigLocalAccount = t.iface(["ConfigAccount"], {
"provisioningMethod": t.lit('Local Account'),
"devices": t.array("DeviceConfigLocalAccount"),
});
export const ConfigLocalWiFi = t.iface(["ConfigBase"], {
"provisioningMethod": t.lit('Local Wi-Fi'),
"devices": t.array("DeviceConfigLocalWiFi"),
});
export const ConfigLocalMqtt = t.iface(["ConfigBase"], {
"provisioningMethod": t.lit('Local MQTT'),
"devices": t.array("DeviceConfigLocalMqtt"),
});
export const Config = t.union("ConfigRemoteAccount", "ConfigLocalAccount", "ConfigLocalWiFi", "ConfigLocalMqtt");
const exportedTypeSuite = {
ProvisioningMethod,
DysonAccountBase,
DysonAccountLogin,
DysonAccountToken,
DysonAccount,
DeviceConfigNetwork,
DeviceConfigLocalAccount,
DeviceConfigLocalWiFi,
DeviceConfigLocalMqtt,
EntityName,
DebugFeatures,
ConfigBase,
ConfigAccount,
ConfigRemoteAccount,
ConfigLocalAccount,
ConfigLocalWiFi,
ConfigLocalMqtt,
Config,
};
export default exportedTypeSuite;
//# sourceMappingURL=config-types-ti.js.map