/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import {
  WiFiNetworkManagementServer as BaseWiFiNetworkManagementServer
} from "../behaviors/wi-fi-network-management/WiFiNetworkManagementServer.js";
import {
  ThreadBorderRouterManagementServer as BaseThreadBorderRouterManagementServer
} from "../behaviors/thread-border-router-management/ThreadBorderRouterManagementServer.js";
import {
  ThreadNetworkDirectoryServer as BaseThreadNetworkDirectoryServer
} from "../behaviors/thread-network-directory/ThreadNetworkDirectoryServer.js";
import {
  ThreadNetworkDiagnosticsServer as BaseThreadNetworkDiagnosticsServer
} from "../behaviors/thread-network-diagnostics/ThreadNetworkDiagnosticsServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var NetworkInfrastructureManagerRequirements;
((NetworkInfrastructureManagerRequirements2) => {
  NetworkInfrastructureManagerRequirements2.WiFiNetworkManagementServer = BaseWiFiNetworkManagementServer;
  NetworkInfrastructureManagerRequirements2.ThreadBorderRouterManagementServer = BaseThreadBorderRouterManagementServer;
  NetworkInfrastructureManagerRequirements2.ThreadNetworkDirectoryServer = BaseThreadNetworkDirectoryServer;
  NetworkInfrastructureManagerRequirements2.ThreadNetworkDiagnosticsServer = BaseThreadNetworkDiagnosticsServer;
  NetworkInfrastructureManagerRequirements2.server = {
    mandatory: {
      WiFiNetworkManagement: NetworkInfrastructureManagerRequirements2.WiFiNetworkManagementServer,
      ThreadBorderRouterManagement: NetworkInfrastructureManagerRequirements2.ThreadBorderRouterManagementServer,
      ThreadNetworkDirectory: NetworkInfrastructureManagerRequirements2.ThreadNetworkDirectoryServer,
      ThreadNetworkDiagnostics: NetworkInfrastructureManagerRequirements2.ThreadNetworkDiagnosticsServer
    }
  };
})(NetworkInfrastructureManagerRequirements || (NetworkInfrastructureManagerRequirements = {}));
const NetworkInfrastructureManagerDeviceDefinition = MutableEndpoint({
  name: "NetworkInfrastructureManager",
  deviceType: 144,
  deviceRevision: 2,
  requirements: NetworkInfrastructureManagerRequirements,
  behaviors: SupportedBehaviors(
    NetworkInfrastructureManagerRequirements.server.mandatory.WiFiNetworkManagement,
    NetworkInfrastructureManagerRequirements.server.mandatory.ThreadBorderRouterManagement,
    NetworkInfrastructureManagerRequirements.server.mandatory.ThreadNetworkDirectory,
    NetworkInfrastructureManagerRequirements.server.mandatory.ThreadNetworkDiagnostics
  )
});
Object.freeze(NetworkInfrastructureManagerDeviceDefinition);
const NetworkInfrastructureManagerDevice = NetworkInfrastructureManagerDeviceDefinition;
export {
  NetworkInfrastructureManagerDevice,
  NetworkInfrastructureManagerDeviceDefinition,
  NetworkInfrastructureManagerRequirements
};
//# sourceMappingURL=network-infrastructure-manager.js.map
