/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { Branded } from "@matter/general"; import { TlvWrapper } from "../tlv/TlvWrapper.js"; import type { NodeId } from "./NodeId.js"; /** * A Group Identifier (Group ID or GID) is a 16-bit number that identifies a set of Nodes across a * Fabric at the message layer (see Section 4.15, “Group Key Management”). A Group ID can further * be bound to one or more Endpoints within each Node in the group at the interaction layer. * * The Group ID space is allocated as described in Table 2, “Group ID Allocations”: * 0x0000 - Null or unspecified Group ID * 0x0001 - 0xFEFF: Application Group ID, assigned by fabric Administrator * 0xFF00 - 0xFFFF: Universal Group ID range reserved for static multicast and anycast identifiers * * @see {@link MatterSpecification.v10.Core} § 2.5.4 */ export type GroupId = Branded; export declare function GroupId(groupId: number, validate?: boolean): GroupId; export declare namespace GroupId { const NO_GROUP_ID: GroupId; /** This group is used to message all Nodes in a Fabric. */ const ALL_NODES: GroupId; /** * This group is used to message all power-capable Nodes in a Fabric. ICD Nodes SHALL NOT subscribe to this group. */ const ALL_NON_ICD_NODES: GroupId; const isValid: (groupId: number, validate?: boolean | undefined) => boolean; /** Application Group ID, assigned by fabric Administrator */ function isApplicationGroupId(groupId: GroupId): boolean; function assertGroupId(groupId: GroupId): void; function fromNodeId(nodeId: NodeId): GroupId; /** A Group Node ID is a 64-bit Node ID that contains a particular Group ID in the lower half of the Node ID. */ const isGroupNodeId: (nodeId: NodeId) => boolean; } /** Tlv Schema for a Group Id. */ export declare const TlvGroupId: TlvWrapper; //# sourceMappingURL=GroupId.d.ts.map