@@ -2778,12 +2778,21 @@ declare module "zigbee-clusters" {
27782778 getLogId ( endpointId : number , clusterId : number ) : string ;
27792779 }
27802780
2781- class ZCLNodeEndpoint extends EventEmitter {
2782- constructor ( node : ZCLNode , descriptor : {
2781+ /**
2782+ * Minimum shape an Endpoint needs from its owner. Endpoint only ever calls `sendFrame`, so a
2783+ * plain object is enough - a device serving bound clusters does not need a full ZCLNode, which
2784+ * models one remote peer and bakes that peer's address into its own `sendFrame`.
2785+ */
2786+ type EndpointInput = {
2787+ sendFrame ( endpointId : number , clusterId : number , frame : Buffer ) : Promise < unknown > ;
2788+ } ;
2789+
2790+ class Endpoint extends EventEmitter {
2791+ constructor ( node : EndpointInput , descriptor : {
27832792 endpointId : number ;
27842793 inputClusters : number [ ] ;
2785- outputClusters : number [ ] ;
2786- } [ ] ) ;
2794+ outputClusters ? : number [ ] ;
2795+ } ) ;
27872796 // Typed lookup: known cluster names (per the generated `ClustersByName`)
27882797 // resolve to their specific class (e.g. `clusters.onOff` is `OnOffCluster`),
27892798 // while unknown keys fall back to the generic Cluster via the index half.
@@ -2795,8 +2804,21 @@ declare module "zigbee-clusters" {
27952804 unbind ( clusterName : string ) : void ;
27962805
27972806 makeDefaultResponseFrame ( receivedFrame : unknown , success : boolean , status : types . ZCLEnum8Status ) : typeof zclFrames . ZCLStandardHeader | typeof zclFrames . ZCLMfgSpecificHeader ;
2807+
2808+ /**
2809+ * Dispatch an incoming ZCL frame to the bound cluster and write the response. Handles the
2810+ * command-response rules: no reply to a Default Response or a group-addressed frame
2811+ * (ZCL 2.5.12.2), a Default Response carrying a thrown ZCLError's status, and
2812+ * `disableDefaultResponse`.
2813+ *
2814+ * Pass `meta.groupId` for a group-addressed frame, or the suppression cannot be applied.
2815+ */
2816+ handleFrame ( clusterId : number , frame : Buffer , meta ?: { groupId ?: number } ) : Promise < void > ;
27982817 }
27992818
2819+ /** @deprecated Use {@link Endpoint}; kept so existing references keep compiling. */
2820+ type ZCLNodeEndpoint = Endpoint ;
2821+
28002822 type ZCLDataType < Value > = import ( '@athombv/data-types' ) . DataType < Value > ;
28012823 const ZCLDataTypes : ZCLDataTypes ;
28022824 const ZCLStruct : typeof import ( '@athombv/data-types' ) . Struct ;
0 commit comments