import type { ChangeCause, Property } from "../messages/types.js"; import type { Publisher } from "../transport.js"; import { TemperatureSensorScale } from "./enums.js"; import type { EndpointHealth, PowerController } from "./enums.js"; /** * A Response, StateReport, DeferredResponse or ChangeReport as 1.x builds it: device.getStatusMessage() or * device.getChangeReport(), the add...Prop() calls, send(). The values are not checked. */ export declare class AlexaStatusMessage { private readonly correlationToken; private readonly rootTopic; private readonly endpointId; private readonly publisher; private readonly isResponse; private readonly isDeferred; private readonly changeCause; private readonly state; private readonly messageId; private estimatedDeferralInSeconds?; /** Where a failed publish is reported (set by the Device that built this message, 1.5.2): send() never rejects. */ onPublishError?: (err: Error) => void; constructor(correlationToken: string, rootTopic: string, endpointId: string, publisher: Publisher | null, isResponse?: boolean, isDeferred?: boolean, changeCause?: ChangeCause | null); private addProperty; /** ChangeReport: the add*Prop calls that follow describe what CHANGED (the default for a change report). */ changed(): this; /** ChangeReport: the add*Prop calls that follow describe the other, unchanged properties (context). */ unchanged(): this; /** True for a ChangeReport (Device.getChangeReport). */ isChangeReport(): boolean; /** * The message as it will be published (for tests and logging). A DeferredResponse has no context. Throws * MessageError for a ChangeReport without a changed property. */ toJSON(): { event: any; context?: { properties: Property[]; }; }; addModeControllerProp(instance: string, value: string, uncertaintyInMs?: number): this; addThermostatModeProp(mode: string, uncertaintyInMs?: number): this; addEstimatedDeferralTime(seconds: number): this; addThermostatControllerProp(name: "lowerSetpoint" | "upperSetpoint" | "targetSetpoint", scale: TemperatureSensorScale, value: number, uncertaintyInMs?: number): this; /** Alexa.EndpointHealth connectivity: EndpointHealth.OK / UNREACHABLE (the plain strings "OK" / "UNREACHABLE" are accepted too). */ addHealthProp(health: EndpointHealth | `${EndpointHealth}`, uncertaintyInMs?: number): this; addPowerControllerProp(power: PowerController, uncertaintyInMs?: number): this; addTemperatureSensorProp(scale: TemperatureSensorScale, value: number, uncertaintyInMs?: number): this; addBrightnessControllerProp(brightness: number, uncertaintyInMs?: number): this; addColorTemperatureControllerProp(colorTemp: number, uncertaintyInMs?: number): this; addToggleControllerProp(state: PowerController, instance: string, uncertaintyInMs?: number): this; /** A property built by the caller. It goes to the context, also in a ChangeReport after changed(). */ addContextProp(prop: Property): this; /** * Publish: a Response/StateReport to //alexaResponce (sendAsync: deferredResponse), a ChangeReport * to /changeReport (Alex2MQTT adds the user's token and posts it to the Alexa event gateway). Resolves with * the topic, or "" when nothing was published: the publish failed, or the message is a ChangeReport without a * changed property, which Alex2MQTT would drop. The error then goes to the bridge's "error" event (when listened * to). Never rejects (1.5.1 did, so an un-caught send() could kill the host). */ send(sendAsync?: boolean): Promise; }