/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import {
  CameraAvStreamManagementServer as BaseCameraAvStreamManagementServer
} from "../behaviors/camera-av-stream-management/CameraAvStreamManagementServer.js";
import {
  WebRtcTransportProviderServer as BaseWebRtcTransportProviderServer
} from "../behaviors/web-rtc-transport-provider/WebRtcTransportProviderServer.js";
import {
  WebRtcTransportRequestorServer as BaseWebRtcTransportRequestorServer
} from "../behaviors/web-rtc-transport-requestor/WebRtcTransportRequestorServer.js";
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import {
  CameraAvSettingsUserLevelManagementServer as BaseCameraAvSettingsUserLevelManagementServer
} from "../behaviors/camera-av-settings-user-level-management/CameraAvSettingsUserLevelManagementServer.js";
import {
  WebRtcTransportProviderClient as BaseWebRtcTransportProviderClient
} from "../behaviors/web-rtc-transport-provider/WebRtcTransportProviderClient.js";
import {
  WebRtcTransportRequestorClient as BaseWebRtcTransportRequestorClient
} from "../behaviors/web-rtc-transport-requestor/WebRtcTransportRequestorClient.js";
import { ChimeClient as BaseChimeClient } from "../behaviors/chime/ChimeClient.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var IntercomRequirements;
((IntercomRequirements2) => {
  IntercomRequirements2.CameraAvStreamManagementServer = BaseCameraAvStreamManagementServer.with("Audio");
  IntercomRequirements2.WebRtcTransportProviderServer = BaseWebRtcTransportProviderServer;
  IntercomRequirements2.WebRtcTransportRequestorServer = BaseWebRtcTransportRequestorServer;
  IntercomRequirements2.IdentifyServer = BaseIdentifyServer;
  IntercomRequirements2.CameraAvSettingsUserLevelManagementServer = BaseCameraAvSettingsUserLevelManagementServer;
  IntercomRequirements2.WebRtcTransportProviderClient = BaseWebRtcTransportProviderClient;
  IntercomRequirements2.WebRtcTransportRequestorClient = BaseWebRtcTransportRequestorClient;
  IntercomRequirements2.ChimeClient = BaseChimeClient;
  IntercomRequirements2.server = {
    mandatory: {
      CameraAvStreamManagement: IntercomRequirements2.CameraAvStreamManagementServer,
      WebRtcTransportProvider: IntercomRequirements2.WebRtcTransportProviderServer,
      WebRtcTransportRequestor: IntercomRequirements2.WebRtcTransportRequestorServer
    },
    optional: {
      Identify: IntercomRequirements2.IdentifyServer,
      CameraAvSettingsUserLevelManagement: IntercomRequirements2.CameraAvSettingsUserLevelManagementServer
    }
  };
  IntercomRequirements2.client = {
    mandatory: {
      WebRtcTransportProvider: IntercomRequirements2.WebRtcTransportProviderClient,
      WebRtcTransportRequestor: IntercomRequirements2.WebRtcTransportRequestorClient
    },
    optional: { Chime: IntercomRequirements2.ChimeClient }
  };
})(IntercomRequirements || (IntercomRequirements = {}));
const IntercomDeviceDefinition = MutableEndpoint({
  name: "Intercom",
  deviceType: 320,
  deviceRevision: 2,
  requirements: IntercomRequirements,
  behaviors: SupportedBehaviors(
    IntercomRequirements.server.mandatory.WebRtcTransportProvider,
    IntercomRequirements.server.mandatory.WebRtcTransportRequestor
  )
});
Object.freeze(IntercomDeviceDefinition);
const IntercomDevice = IntercomDeviceDefinition;
export {
  IntercomDevice,
  IntercomDeviceDefinition,
  IntercomRequirements
};
//# sourceMappingURL=intercom.js.map
