/** * @license * Copyright 2025-2026 Open Home Foundation * SPDX-License-Identifier: Apache-2.0 */ import { NodeId } from "@matter/main"; import { EndpointNumber } from "@matter/main/types"; import { NodeStates, PairedNode } from "@project-chip/matter.js/device"; import { AttributeDataCache } from "./AttributeDataCache.js"; /** * Manages node storage and tracks per-node availability. * * This class handles: * - Storage of PairedNode instances * - Node retrieval and existence checking * - Attribute data caching * - Connection state tracking for availability debouncing */ export declare class Nodes { #private; get attributeCache(): AttributeDataCache; getIds(): NodeId[]; /** @throws ServerError if node not found */ get(nodeId: NodeId): PairedNode; has(nodeId: NodeId): boolean; set(nodeId: NodeId, node: PairedNode): void; delete(nodeId: NodeId): void; queueEndpointAdded(nodeId: NodeId, endpointId: EndpointNumber): void; /** Returns insertion-ordered queue; empty if nothing pending. */ drainPendingEndpointAdds(nodeId: NodeId): EndpointNumber[]; seedState(nodeId: NodeId, initialState: NodeStates): void; /** `debouncePending` = reconnect timer armed by caller; keeps non-Connected states available. */ processStateChange(nodeId: NodeId, newState: NodeStates, debouncePending: boolean): { availabilityChanged: true; available: boolean; } | { availabilityChanged: false; }; /** Returns true if the node was previously considered available. */ forceUnavailable(nodeId: NodeId): boolean; isNodeAvailable(currentState: NodeStates, debouncePending?: boolean): boolean; /** Returns the cached value, not a recomputation — avoids disagreement with the event path. */ isAvailable(nodeId: NodeId): boolean; } //# sourceMappingURL=Nodes.d.ts.map