/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import {
  ContentAppObserverServer as BaseContentAppObserverServer
} from "../behaviors/content-app-observer/ContentAppObserverServer.js";
import { OnOffBehavior as BaseOnOffBehavior } from "../behaviors/on-off/OnOffBehavior.js";
import { KeypadInputBehavior as BaseKeypadInputBehavior } from "../behaviors/keypad-input/KeypadInputBehavior.js";
import {
  ContentLauncherBehavior as BaseContentLauncherBehavior
} from "../behaviors/content-launcher/ContentLauncherBehavior.js";
import {
  ApplicationBasicBehavior as BaseApplicationBasicBehavior
} from "../behaviors/application-basic/ApplicationBasicBehavior.js";
import { LevelControlBehavior as BaseLevelControlBehavior } from "../behaviors/level-control/LevelControlBehavior.js";
import { WakeOnLanBehavior as BaseWakeOnLanBehavior } from "../behaviors/wake-on-lan/WakeOnLanBehavior.js";
import { ChannelBehavior as BaseChannelBehavior } from "../behaviors/channel/ChannelBehavior.js";
import {
  TargetNavigatorBehavior as BaseTargetNavigatorBehavior
} from "../behaviors/target-navigator/TargetNavigatorBehavior.js";
import { MediaPlaybackBehavior as BaseMediaPlaybackBehavior } from "../behaviors/media-playback/MediaPlaybackBehavior.js";
import { MediaInputBehavior as BaseMediaInputBehavior } from "../behaviors/media-input/MediaInputBehavior.js";
import { LowPowerBehavior as BaseLowPowerBehavior } from "../behaviors/low-power/LowPowerBehavior.js";
import { AudioOutputBehavior as BaseAudioOutputBehavior } from "../behaviors/audio-output/AudioOutputBehavior.js";
import {
  ApplicationLauncherBehavior as BaseApplicationLauncherBehavior
} from "../behaviors/application-launcher/ApplicationLauncherBehavior.js";
import { AccountLoginBehavior as BaseAccountLoginBehavior } from "../behaviors/account-login/AccountLoginBehavior.js";
import {
  ContentControlBehavior as BaseContentControlBehavior
} from "../behaviors/content-control/ContentControlBehavior.js";
import { MessagesBehavior as BaseMessagesBehavior } from "../behaviors/messages/MessagesBehavior.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var CastingVideoClientRequirements;
((CastingVideoClientRequirements2) => {
  CastingVideoClientRequirements2.ContentAppObserverServer = BaseContentAppObserverServer;
  CastingVideoClientRequirements2.OnOffBehavior = BaseOnOffBehavior;
  CastingVideoClientRequirements2.KeypadInputBehavior = BaseKeypadInputBehavior;
  CastingVideoClientRequirements2.ContentLauncherBehavior = BaseContentLauncherBehavior;
  CastingVideoClientRequirements2.ApplicationBasicBehavior = BaseApplicationBasicBehavior;
  CastingVideoClientRequirements2.LevelControlBehavior = BaseLevelControlBehavior;
  CastingVideoClientRequirements2.WakeOnLanBehavior = BaseWakeOnLanBehavior;
  CastingVideoClientRequirements2.ChannelBehavior = BaseChannelBehavior;
  CastingVideoClientRequirements2.TargetNavigatorBehavior = BaseTargetNavigatorBehavior;
  CastingVideoClientRequirements2.MediaPlaybackBehavior = BaseMediaPlaybackBehavior;
  CastingVideoClientRequirements2.MediaInputBehavior = BaseMediaInputBehavior;
  CastingVideoClientRequirements2.LowPowerBehavior = BaseLowPowerBehavior;
  CastingVideoClientRequirements2.AudioOutputBehavior = BaseAudioOutputBehavior;
  CastingVideoClientRequirements2.ApplicationLauncherBehavior = BaseApplicationLauncherBehavior;
  CastingVideoClientRequirements2.AccountLoginBehavior = BaseAccountLoginBehavior;
  CastingVideoClientRequirements2.ContentControlBehavior = BaseContentControlBehavior;
  CastingVideoClientRequirements2.MessagesBehavior = BaseMessagesBehavior;
  CastingVideoClientRequirements2.server = { optional: { ContentAppObserver: CastingVideoClientRequirements2.ContentAppObserverServer }, mandatory: {} };
  CastingVideoClientRequirements2.client = {
    mandatory: {
      OnOff: CastingVideoClientRequirements2.OnOffBehavior,
      KeypadInput: CastingVideoClientRequirements2.KeypadInputBehavior,
      ContentLauncher: CastingVideoClientRequirements2.ContentLauncherBehavior,
      ApplicationBasic: CastingVideoClientRequirements2.ApplicationBasicBehavior
    },
    optional: {
      LevelControl: CastingVideoClientRequirements2.LevelControlBehavior,
      WakeOnLan: CastingVideoClientRequirements2.WakeOnLanBehavior,
      Channel: CastingVideoClientRequirements2.ChannelBehavior,
      TargetNavigator: CastingVideoClientRequirements2.TargetNavigatorBehavior,
      MediaPlayback: CastingVideoClientRequirements2.MediaPlaybackBehavior,
      MediaInput: CastingVideoClientRequirements2.MediaInputBehavior,
      LowPower: CastingVideoClientRequirements2.LowPowerBehavior,
      AudioOutput: CastingVideoClientRequirements2.AudioOutputBehavior,
      ApplicationLauncher: CastingVideoClientRequirements2.ApplicationLauncherBehavior,
      AccountLogin: CastingVideoClientRequirements2.AccountLoginBehavior,
      ContentControl: CastingVideoClientRequirements2.ContentControlBehavior,
      Messages: CastingVideoClientRequirements2.MessagesBehavior
    }
  };
})(CastingVideoClientRequirements || (CastingVideoClientRequirements = {}));
const CastingVideoClientDeviceDefinition = MutableEndpoint({
  name: "CastingVideoClient",
  deviceType: 41,
  deviceRevision: 2,
  requirements: CastingVideoClientRequirements,
  behaviors: SupportedBehaviors()
});
Object.freeze(CastingVideoClientDeviceDefinition);
const CastingVideoClientDevice = CastingVideoClientDeviceDefinition;
export {
  CastingVideoClientDevice,
  CastingVideoClientDeviceDefinition,
  CastingVideoClientRequirements
};
//# sourceMappingURL=casting-video-client.js.map
