/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
import { Command, TlvNoResponse } from "../cluster/Cluster.js";
import { TlvField, TlvObject } from "../tlv/TlvObject.js";
import { TlvNodeId } from "../datatype/NodeId.js";
import { TlvUInt16 } from "../tlv/TlvNumber.js";
import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
var ProxyDiscovery;
((ProxyDiscovery2) => {
  ProxyDiscovery2.TlvProxyDiscoverRequest = TlvObject({
    /**
     * This is the Node ID of the source for which a client seeks to find a Proxy.
     *
     * @see {@link MatterSpecification.v13.Core} § 9.15.12.4.1.1
     */
    sourceNodeId: TlvField(0, TlvNodeId),
    /**
     * The number of attribute paths the client will have in the subscription request. This is a heuristic/hint to
     * allow a Proxy to better ascertain whether it can support the ensuing subscription.
     *
     * @see {@link MatterSpecification.v13.Core} § 9.15.12.4.1.2
     */
    numAttributePaths: TlvField(1, TlvUInt16),
    /**
     * The number of event paths the client will have in the subscription request. This is a heuristic/hint to
     * allow a Proxy to better ascertain whether it can support the ensuing subscription.
     *
     * @see {@link MatterSpecification.v13.Core} § 9.15.12.4.1.3
     */
    numEventPaths: TlvField(2, TlvUInt16)
  });
  ProxyDiscovery2.ClusterInstance = MutableCluster({
    id: 67,
    name: "ProxyDiscovery",
    revision: 1,
    commands: {
      /**
       * This command is used during proxy discovery, as specified in Section 9.15.7, “Proxy Discovery &
       * Assignment Flow”.
       *
       * @see {@link MatterSpecification.v13.Core} § 9.15.12.4.1
       */
      proxyDiscoverRequest: Command(0, ProxyDiscovery2.TlvProxyDiscoverRequest, 0, TlvNoResponse)
    }
  });
  ProxyDiscovery2.Cluster = ProxyDiscovery2.ClusterInstance;
  ProxyDiscovery2.Complete = ProxyDiscovery2.Cluster;
})(ProxyDiscovery || (ProxyDiscovery = {}));
const ProxyDiscoveryCluster = ProxyDiscovery.Cluster;
ClusterRegistry.register(ProxyDiscovery.Complete);
export {
  ProxyDiscovery,
  ProxyDiscoveryCluster
};
//# sourceMappingURL=proxy-discovery.js.map
