/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { OnOffServer as BaseOnOffServer } from "../behaviors/on-off/OnOffServer.js";
import { MediaPlaybackServer as BaseMediaPlaybackServer } from "../behaviors/media-playback/MediaPlaybackServer.js";
import { KeypadInputServer as BaseKeypadInputServer } from "../behaviors/keypad-input/KeypadInputServer.js";
import { ContentLauncherServer as BaseContentLauncherServer } from "../behaviors/content-launcher/ContentLauncherServer.js";
import { WakeOnLanServer as BaseWakeOnLanServer } from "../behaviors/wake-on-lan/WakeOnLanServer.js";
import { ChannelServer as BaseChannelServer } from "../behaviors/channel/ChannelServer.js";
import { TargetNavigatorServer as BaseTargetNavigatorServer } from "../behaviors/target-navigator/TargetNavigatorServer.js";
import { MediaInputServer as BaseMediaInputServer } from "../behaviors/media-input/MediaInputServer.js";
import { LowPowerServer as BaseLowPowerServer } from "../behaviors/low-power/LowPowerServer.js";
import { AudioOutputServer as BaseAudioOutputServer } from "../behaviors/audio-output/AudioOutputServer.js";
import {
  ApplicationLauncherServer as BaseApplicationLauncherServer
} from "../behaviors/application-launcher/ApplicationLauncherServer.js";
import { AccountLoginServer as BaseAccountLoginServer } from "../behaviors/account-login/AccountLoginServer.js";
import { ContentControlServer as BaseContentControlServer } from "../behaviors/content-control/ContentControlServer.js";
import { MessagesServer as BaseMessagesServer } from "../behaviors/messages/MessagesServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var CastingVideoPlayerRequirements;
((CastingVideoPlayerRequirements2) => {
  CastingVideoPlayerRequirements2.OnOffServer = BaseOnOffServer;
  CastingVideoPlayerRequirements2.MediaPlaybackServer = BaseMediaPlaybackServer;
  CastingVideoPlayerRequirements2.KeypadInputServer = BaseKeypadInputServer;
  CastingVideoPlayerRequirements2.ContentLauncherServer = BaseContentLauncherServer;
  CastingVideoPlayerRequirements2.WakeOnLanServer = BaseWakeOnLanServer;
  CastingVideoPlayerRequirements2.ChannelServer = BaseChannelServer;
  CastingVideoPlayerRequirements2.TargetNavigatorServer = BaseTargetNavigatorServer;
  CastingVideoPlayerRequirements2.MediaInputServer = BaseMediaInputServer;
  CastingVideoPlayerRequirements2.LowPowerServer = BaseLowPowerServer;
  CastingVideoPlayerRequirements2.AudioOutputServer = BaseAudioOutputServer;
  CastingVideoPlayerRequirements2.ApplicationLauncherServer = BaseApplicationLauncherServer.with("ApplicationPlatform");
  CastingVideoPlayerRequirements2.AccountLoginServer = BaseAccountLoginServer;
  CastingVideoPlayerRequirements2.ContentControlServer = BaseContentControlServer;
  CastingVideoPlayerRequirements2.MessagesServer = BaseMessagesServer;
  CastingVideoPlayerRequirements2.server = {
    mandatory: {
      OnOff: CastingVideoPlayerRequirements2.OnOffServer,
      MediaPlayback: CastingVideoPlayerRequirements2.MediaPlaybackServer,
      KeypadInput: CastingVideoPlayerRequirements2.KeypadInputServer,
      ContentLauncher: CastingVideoPlayerRequirements2.ContentLauncherServer
    },
    optional: {
      WakeOnLan: CastingVideoPlayerRequirements2.WakeOnLanServer,
      Channel: CastingVideoPlayerRequirements2.ChannelServer,
      TargetNavigator: CastingVideoPlayerRequirements2.TargetNavigatorServer,
      MediaInput: CastingVideoPlayerRequirements2.MediaInputServer,
      LowPower: CastingVideoPlayerRequirements2.LowPowerServer,
      AudioOutput: CastingVideoPlayerRequirements2.AudioOutputServer,
      ApplicationLauncher: CastingVideoPlayerRequirements2.ApplicationLauncherServer,
      AccountLogin: CastingVideoPlayerRequirements2.AccountLoginServer,
      ContentControl: CastingVideoPlayerRequirements2.ContentControlServer,
      Messages: CastingVideoPlayerRequirements2.MessagesServer
    }
  };
})(CastingVideoPlayerRequirements || (CastingVideoPlayerRequirements = {}));
const CastingVideoPlayerDeviceDefinition = MutableEndpoint({
  name: "CastingVideoPlayer",
  deviceType: 35,
  deviceRevision: 2,
  requirements: CastingVideoPlayerRequirements,
  behaviors: SupportedBehaviors(
    CastingVideoPlayerRequirements.server.mandatory.OnOff,
    CastingVideoPlayerRequirements.server.mandatory.MediaPlayback,
    CastingVideoPlayerRequirements.server.mandatory.KeypadInput,
    CastingVideoPlayerRequirements.server.mandatory.ContentLauncher
  )
});
Object.freeze(CastingVideoPlayerDeviceDefinition);
const CastingVideoPlayerDevice = CastingVideoPlayerDeviceDefinition;
export {
  CastingVideoPlayerDevice,
  CastingVideoPlayerDeviceDefinition,
  CastingVideoPlayerRequirements
};
//# sourceMappingURL=casting-video-player.js.map
