/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import {
  NetworkCommissioningServer as BaseNetworkCommissioningServer
} from "../behaviors/network-commissioning/NetworkCommissioningServer.js";
import {
  EthernetNetworkDiagnosticsServer as BaseEthernetNetworkDiagnosticsServer
} from "../behaviors/ethernet-network-diagnostics/EthernetNetworkDiagnosticsServer.js";
import {
  WiFiNetworkDiagnosticsServer as BaseWiFiNetworkDiagnosticsServer
} from "../behaviors/wi-fi-network-diagnostics/WiFiNetworkDiagnosticsServer.js";
import {
  ThreadNetworkDiagnosticsServer as BaseThreadNetworkDiagnosticsServer
} from "../behaviors/thread-network-diagnostics/ThreadNetworkDiagnosticsServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { DeviceClassification } from "#model";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var SecondaryNetworkInterfaceRequirements;
((SecondaryNetworkInterfaceRequirements2) => {
  SecondaryNetworkInterfaceRequirements2.NetworkCommissioningServer = BaseNetworkCommissioningServer;
  SecondaryNetworkInterfaceRequirements2.EthernetNetworkDiagnosticsServer = BaseEthernetNetworkDiagnosticsServer;
  SecondaryNetworkInterfaceRequirements2.WiFiNetworkDiagnosticsServer = BaseWiFiNetworkDiagnosticsServer;
  SecondaryNetworkInterfaceRequirements2.ThreadNetworkDiagnosticsServer = BaseThreadNetworkDiagnosticsServer;
  SecondaryNetworkInterfaceRequirements2.server = {
    mandatory: { NetworkCommissioning: SecondaryNetworkInterfaceRequirements2.NetworkCommissioningServer },
    optional: {
      EthernetNetworkDiagnostics: SecondaryNetworkInterfaceRequirements2.EthernetNetworkDiagnosticsServer,
      WiFiNetworkDiagnostics: SecondaryNetworkInterfaceRequirements2.WiFiNetworkDiagnosticsServer,
      ThreadNetworkDiagnostics: SecondaryNetworkInterfaceRequirements2.ThreadNetworkDiagnosticsServer
    }
  };
})(SecondaryNetworkInterfaceRequirements || (SecondaryNetworkInterfaceRequirements = {}));
const SecondaryNetworkInterfaceEndpointDefinition = MutableEndpoint({
  name: "SecondaryNetworkInterface",
  deviceType: 25,
  deviceRevision: 1,
  deviceClass: DeviceClassification.Utility,
  requirements: SecondaryNetworkInterfaceRequirements,
  behaviors: SupportedBehaviors()
});
Object.freeze(SecondaryNetworkInterfaceEndpointDefinition);
const SecondaryNetworkInterfaceEndpoint = SecondaryNetworkInterfaceEndpointDefinition;
export {
  SecondaryNetworkInterfaceEndpoint,
  SecondaryNetworkInterfaceEndpointDefinition,
  SecondaryNetworkInterfaceRequirements
};
//# sourceMappingURL=secondary-network-interface.js.map
