import type { TServiceParams } from "@digital-alchemy/core"; import type { ByIdProxy, PICK_ENTITY } from "@digital-alchemy/hass"; import type { AddEntityOptions, BasicAddParams, CallbackData, NumberDeviceClasses, NumberSensors, SettableConfiguration, SynapseEntityProxy } from "../../helpers/index.mts"; export type NumberConfiguration = Partial> & { /** * Defines how the number should be displayed in the UI. * It's recommended to use the default `auto`. * Can be `box` or `slider` to force a display mode. */ mode?: SettableConfiguration<"auto" | "slider" | "box", DATA>; /** * The maximum accepted value in the number's native_unit_of_measurement (inclusive) */ native_max_value?: number; /** * The minimum accepted value in the number's native_unit_of_measurement (inclusive) */ native_min_value?: number; /** * Defines the resolution of the values, i.e. the smallest increment or decrement in the number's */ step?: number; /** * The value of the number in the number's native_unit_of_measurement. */ native_value?: SettableConfiguration; /** * default: true */ managed?: boolean; }; export type NumberEvents = { set_value: { value: number; }; }; /** * Convenient type for number entities with optional attributes and locals */ export type SynapseNumber = SynapseEntityProxy, NumberEvents, ATTRIBUTES, LOCALS, DATA, PICK_ENTITY<"number">> & { entity: ByIdProxy>; }; export declare function VirtualNumber({ context, synapse, logger }: TServiceParams): >>({ managed, ...options }: AddEntityOptions, NumberEvents, PARAMS["attributes"], PARAMS["locals"], DATA>) => SynapseNumber;