/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import type { Endpoint } from "#endpoint/Endpoint.js"; import { ClusterModel, DeviceTypeFacts, NodeCondition } from "@matter/model"; /** * What device type validation reads of a server node's endpoints. * * Attributes, commands and events are the ones the behavior implements, as its initialization recorded them in * {@link Behaviors.elementsOf}; reading them requires the behavior to be initialized. * * Device types come from Descriptor's `DeviceTypeList` rather than the endpoint type, because * {@link DescriptorServer.addDeviceTypes} adds more at runtime. Before the endpoint's behaviors initialize they come * from the list the endpoint is configured with, or else its type, as Descriptor initializes a new list; a list * persisted from an earlier run is not read until then. */ export declare class ServerEndpointFacts implements DeviceTypeFacts { #private; /** * @param constructing an endpoint about to initialize its behaviors, counted {@link isPresent present} so it is * judged as it will be once constructed */ constructor(constructing?: Endpoint); parentOf(endpoint: Endpoint): Endpoint | undefined; partsOf(endpoint: Endpoint): Iterable; isPresent(endpoint: Endpoint): boolean; /** * Where {@link endpoint} stands in the lifecycle of the tree it belongs to. * * An endpoint without an owner is the root of a tree, so it is not detached; the walks reach none other. */ presenceOf(endpoint: Endpoint): Presence; deviceTypeIdsOf(endpoint: Endpoint): number[]; serverClustersOf(endpoint: Endpoint): ClusterModel[]; clientClustersOf(endpoint: Endpoint): ClusterModel[]; elementsOf(endpoint: Endpoint, cluster: ClusterModel): DeviceTypeFacts.Elements; statedConditionsOf(endpoint: Endpoint): ReadonlySet; /** * Interpretation: a node that does not commission over BLE only supports out-of-band-configured networking, * because its host provides the network. * * Only a node endpoint with a {@link NetworkServer} answers CustomNetworkConfig, and only once the server is * active, because it resolves its BLE flag as it initializes. * * @see {@link MatterSpecification.v161.Device} ยง 2.1.3 */ nodeConditionsOf(nodeEndpoint: Endpoint): NodeCondition[]; describe(endpoint: Endpoint): string; } /** * Where an endpoint stands in the lifecycle of its tree, as {@link ServerEndpointFacts.presenceOf} answers it. */ export declare enum Presence { /** * Being destroyed or destroyed, or no longer a part of its owner. */ Detached = 0, /** * Its behaviors are not initialized. */ Pending = 1, /** * Its behaviors are initialized and its parts are still being constructed. */ Constructing = 2, /** * Constructed. */ Active = 3, /** * Its construction failed; it stays a part of its owner. */ Crashed = 4 } //# sourceMappingURL=ServerEndpointFacts.d.ts.map