// Compiled, never run (test/typings.test.js, npm run check): a CommonJS TypeScript consumer of the declarations in // dist/types, resolved through the package's "exports". A "@ts-expect-error" line fails the compile when the // declaration stops rejecting what follows it. import { ActionMapping, AlexaActions, AlexaInterfaceType, DisplayCategory, EndpointHealth, PowerController } from "alex2node"; import type { Alex2MQTT, Alex2MQTTOptions, AlexaInterface, AlexaStatusMessage, ChangeCause, Device, SupportedMode } from "alex2node"; declare const bridge: Alex2MQTT; declare const message: AlexaStatusMessage; declare const capability: AlexaInterface; const options: Alex2MQTTOptions = { host: "mqtt://127.0.0.1:1883", mqtt: { reconnectPeriod: 1000 }, log: (line) => line.length }; const device: Device = bridge.registerDevice("Lamp", "lamp-1", [DisplayCategory.LIGHT, DisplayCategory.SWITCH]); const added: AlexaInterface = device.addCapability(AlexaInterfaceType.POWER_CONTROLLER, { proactivelyReported: true }); // ActionMapping: the payload is optional const close = new ActionMapping([AlexaActions.Close], "TurnOn"); capability.addActionMapping(close); // addHealthProp: the enum or its string values, chainable const chained: AlexaStatusMessage = message.addHealthProp(EndpointHealth.OK).addHealthProp("UNREACHABLE", 50); // @ts-expect-error not a connectivity value message.addHealthProp("ASLEEP"); // @ts-expect-error a power state is ON or OFF message.addPowerControllerProp("ON "); message.addPowerControllerProp(PowerController.ON); // addSupportedModes: Mode objects, plain strings still accepted const mode: SupportedMode = { value: "Fan.Auto", modeResources: { friendlyNames: [{ "@type": "text", value: { text: "Auto", locale: "en-US" } }] } }; capability.addSupportedModes([mode, "Fan.On"]); const cause: ChangeCause = "PHYSICAL_INTERACTION"; const sent: Promise = device.getChangeReport(cause).addPowerControllerProp(PowerController.OFF).send(); // @ts-expect-error not a cause Alexa knows device.getChangeReport("BUTTON"); export { options, added, chained, sent };