/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { PartsBehavior } from "../behavior/system/parts/PartsBehavior.js";
import { IndexBehavior } from "../behavior/system/index/IndexBehavior.js";
import { ActionsServer as BaseActionsServer } from "../behaviors/actions/ActionsServer.js";
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import {
  CommissionerControlServer as BaseCommissionerControlServer
} from "../behaviors/commissioner-control/CommissionerControlServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var AggregatorRequirements;
((AggregatorRequirements2) => {
  AggregatorRequirements2.ActionsServer = BaseActionsServer;
  AggregatorRequirements2.IdentifyServer = BaseIdentifyServer;
  AggregatorRequirements2.CommissionerControlServer = BaseCommissionerControlServer;
  AggregatorRequirements2.server = {
    mandatory: { Parts: PartsBehavior, Index: IndexBehavior },
    optional: { Actions: AggregatorRequirements2.ActionsServer, Identify: AggregatorRequirements2.IdentifyServer, CommissionerControl: AggregatorRequirements2.CommissionerControlServer }
  };
})(AggregatorRequirements || (AggregatorRequirements = {}));
const AggregatorEndpointDefinition = MutableEndpoint({
  name: "Aggregator",
  deviceType: 14,
  deviceRevision: 2,
  requirements: AggregatorRequirements,
  behaviors: SupportedBehaviors(
    AggregatorRequirements.server.mandatory.Parts,
    AggregatorRequirements.server.mandatory.Index
  )
});
Object.freeze(AggregatorEndpointDefinition);
const AggregatorEndpoint = AggregatorEndpointDefinition;
export {
  AggregatorEndpoint,
  AggregatorEndpointDefinition,
  AggregatorRequirements
};
//# sourceMappingURL=aggregator.js.map
