/** * @license * Copyright 2025-2026 Open Home Foundation * SPDX-License-Identifier: Apache-2.0 */ import { PeerAddress } from "@matter/main/protocol"; import { AttributesData } from "../types/CommandHandler.js"; type AttributePath = string; export interface NodeAttributeReader { handleReadAttributes(peer: PeerAddress, attributePaths: string[], fabricFiltered?: boolean): Promise; nodeConnected(peer: PeerAddress): boolean; } /** * Check if a node needs custom attribute polling based on its attributes. * * A node needs polling if: * 1. It has Eve vendor ID (4874) at endpoint 0/40/2 (BasicInformation.VendorID) * 2. It has Eve custom cluster (0x130AFC01) with energy attributes * 3. It does NOT have the standard ElectricalPowerMeasurement cluster (0x0090) */ export declare function checkPolledAttributes(attributes: AttributesData): Set; /** * Manages polling of custom cluster attributes for multiple nodes. */ export declare class CustomClusterPoller { #private; constructor(attributeReader: NodeAttributeReader); /** * Register a node for polling if it has custom attributes that need polling. * Call this after a node is connected and its attributes are available. */ registerNode(peer: PeerAddress, attributes: AttributesData): void; /** * Unregister a node from polling (e.g., when decommissioned or disconnected). */ unregisterNode(peer: PeerAddress): void; /** * Stop all polling and cleanup. Awaits any in-flight read operation. */ stop(): Promise; } export {}; //# sourceMappingURL=CustomClusterPoller.d.ts.map