import type { HassDeviceRegistryEntry, HassEntityRegistryEntry, HassState } from "../types/hass.js"; export interface HaDeviceTreeNode { device: HassDeviceRegistryEntry; /** Entity registry rows for this device, sorted by `entity_id`. */ entities: HassEntityRegistryEntry[]; } export interface HaDeviceTree { /** One node per device in the device registry (including devices with zero entities). */ devices: HaDeviceTreeNode[]; /** Entities with no `device_id` (helpers, some core entities, etc.). */ unassignedEntities: HassEntityRegistryEntry[]; } /** * Groups entity registry rows under device registry rows (same logic as the HA UI device pages). */ export declare function buildHaDeviceTree(devices: HassDeviceRegistryEntry[], entities: HassEntityRegistryEntry[]): HaDeviceTree; export declare function deviceTitle(d: HassDeviceRegistryEntry): string; /** * Pretty-print a device tree for logs / CLI (similar layout to HA device view: device name, then entities). * * Pass `statesByEntityId` from {@link DevicesManager.getAllDevices} (or a `Map` built from it) to append current values. */ export declare function formatDeviceTreeAsText(tree: HaDeviceTree, options?: { statesByEntityId?: Map; }): string; /** * Builds a map `entity_id` → {@link HassState} from the REST states list. */ export declare function statesArrayToMap(states: HassState[]): Map; //# sourceMappingURL=device-tree.d.ts.map