/**
 * @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 {
  BridgedDeviceBasicInformationServer as BaseBridgedDeviceBasicInformationServer
} from "../behaviors/bridged-device-basic-information/BridgedDeviceBasicInformationServer.js";
import {
  PowerSourceConfigurationServer as BasePowerSourceConfigurationServer
} from "../behaviors/power-source-configuration/PowerSourceConfigurationServer.js";
import { PowerSourceServer as BasePowerSourceServer } from "../behaviors/power-source/PowerSourceServer.js";
import {
  EcosystemInformationServer as BaseEcosystemInformationServer
} from "../behaviors/ecosystem-information/EcosystemInformationServer.js";
import {
  AdministratorCommissioningServer as BaseAdministratorCommissioningServer
} from "../behaviors/administrator-commissioning/AdministratorCommissioningServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { DeviceClassification } from "#model";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var BridgedNodeRequirements;
((BridgedNodeRequirements2) => {
  BridgedNodeRequirements2.BridgedDeviceBasicInformationServer = BaseBridgedDeviceBasicInformationServer;
  BridgedNodeRequirements2.PowerSourceConfigurationServer = BasePowerSourceConfigurationServer;
  BridgedNodeRequirements2.PowerSourceServer = BasePowerSourceServer;
  BridgedNodeRequirements2.EcosystemInformationServer = BaseEcosystemInformationServer;
  BridgedNodeRequirements2.AdministratorCommissioningServer = BaseAdministratorCommissioningServer;
  BridgedNodeRequirements2.server = {
    mandatory: {
      Parts: PartsBehavior,
      Index: IndexBehavior,
      BridgedDeviceBasicInformation: BridgedNodeRequirements2.BridgedDeviceBasicInformationServer
    },
    optional: {
      PowerSourceConfiguration: BridgedNodeRequirements2.PowerSourceConfigurationServer,
      PowerSource: BridgedNodeRequirements2.PowerSourceServer,
      EcosystemInformation: BridgedNodeRequirements2.EcosystemInformationServer,
      AdministratorCommissioning: BridgedNodeRequirements2.AdministratorCommissioningServer
    }
  };
})(BridgedNodeRequirements || (BridgedNodeRequirements = {}));
const BridgedNodeEndpointDefinition = MutableEndpoint({
  name: "BridgedNode",
  deviceType: 19,
  deviceRevision: 3,
  deviceClass: DeviceClassification.Utility,
  requirements: BridgedNodeRequirements,
  behaviors: SupportedBehaviors(
    BridgedNodeRequirements.server.mandatory.Parts,
    BridgedNodeRequirements.server.mandatory.Index,
    BridgedNodeRequirements.server.mandatory.BridgedDeviceBasicInformation
  )
});
Object.freeze(BridgedNodeEndpointDefinition);
const BridgedNodeEndpoint = BridgedNodeEndpointDefinition;
export {
  BridgedNodeEndpoint,
  BridgedNodeEndpointDefinition,
  BridgedNodeRequirements
};
//# sourceMappingURL=bridged-node.js.map
