/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { Behavior } from "#behavior/Behavior.js"; /** * A set of client cluster declarations an endpoint supports. * * Unlike {@link SupportedBehaviors}, entries here are metadata only. They are not instantiated by * `BehaviorBacking` on a ServerNode endpoint. Their presence: * * - Populates the `clientList` attribute of the Descriptor cluster. * - Provides a discoverable surface (`endpoint.type.clientClusters`) for the Step 2 binding service * to pre-install cluster clients on a peer `ClientNode` / `GroupNode`. */ export type SupportedClientClusters = Record; /** * Create SupportedClientClusters from a list of ClientBehavior types. */ export declare function SupportedClientClusters(...types: T): SupportedClientClusters.MapOf; export declare namespace SupportedClientClusters { type List = readonly Behavior.Type[]; /** * Create a new list with additional client cluster types, replacing any prior entry with the same id. */ function extend(currentTypes: Current, newTypes: Added): With; type With = Omit & MapOf; type MapOf = T extends readonly [infer F extends Behavior.Type] ? { readonly [K in F["id"]]: F; } : T extends readonly [infer F extends Behavior.Type, ...infer R extends List] ? { readonly [K in F["id"]]: F; } & MapOf : {}; } //# sourceMappingURL=SupportedClientClusters.d.ts.map