/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { OnOffClient as BaseOnOffClient } from "../behaviors/on-off/OnOffClient.js";
import { MediaPlaybackClient as BaseMediaPlaybackClient } from "../behaviors/media-playback/MediaPlaybackClient.js";
import { KeypadInputClient as BaseKeypadInputClient } from "../behaviors/keypad-input/KeypadInputClient.js";
import { LevelControlClient as BaseLevelControlClient } from "../behaviors/level-control/LevelControlClient.js";
import { WakeOnLanClient as BaseWakeOnLanClient } from "../behaviors/wake-on-lan/WakeOnLanClient.js";
import { ChannelClient as BaseChannelClient } from "../behaviors/channel/ChannelClient.js";
import { TargetNavigatorClient as BaseTargetNavigatorClient } from "../behaviors/target-navigator/TargetNavigatorClient.js";
import { MediaInputClient as BaseMediaInputClient } from "../behaviors/media-input/MediaInputClient.js";
import { LowPowerClient as BaseLowPowerClient } from "../behaviors/low-power/LowPowerClient.js";
import { ContentLauncherClient as BaseContentLauncherClient } from "../behaviors/content-launcher/ContentLauncherClient.js";
import { AudioOutputClient as BaseAudioOutputClient } from "../behaviors/audio-output/AudioOutputClient.js";
import {
  ApplicationLauncherClient as BaseApplicationLauncherClient
} from "../behaviors/application-launcher/ApplicationLauncherClient.js";
import { AccountLoginClient as BaseAccountLoginClient } from "../behaviors/account-login/AccountLoginClient.js";
import { ContentControlClient as BaseContentControlClient } from "../behaviors/content-control/ContentControlClient.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var VideoRemoteControlRequirements;
((VideoRemoteControlRequirements2) => {
  VideoRemoteControlRequirements2.OnOffClient = BaseOnOffClient;
  VideoRemoteControlRequirements2.MediaPlaybackClient = BaseMediaPlaybackClient;
  VideoRemoteControlRequirements2.KeypadInputClient = BaseKeypadInputClient;
  VideoRemoteControlRequirements2.LevelControlClient = BaseLevelControlClient;
  VideoRemoteControlRequirements2.WakeOnLanClient = BaseWakeOnLanClient;
  VideoRemoteControlRequirements2.ChannelClient = BaseChannelClient;
  VideoRemoteControlRequirements2.TargetNavigatorClient = BaseTargetNavigatorClient;
  VideoRemoteControlRequirements2.MediaInputClient = BaseMediaInputClient;
  VideoRemoteControlRequirements2.LowPowerClient = BaseLowPowerClient;
  VideoRemoteControlRequirements2.ContentLauncherClient = BaseContentLauncherClient;
  VideoRemoteControlRequirements2.AudioOutputClient = BaseAudioOutputClient;
  VideoRemoteControlRequirements2.ApplicationLauncherClient = BaseApplicationLauncherClient;
  VideoRemoteControlRequirements2.AccountLoginClient = BaseAccountLoginClient;
  VideoRemoteControlRequirements2.ContentControlClient = BaseContentControlClient;
  VideoRemoteControlRequirements2.client = {
    mandatory: { OnOff: VideoRemoteControlRequirements2.OnOffClient, MediaPlayback: VideoRemoteControlRequirements2.MediaPlaybackClient, KeypadInput: VideoRemoteControlRequirements2.KeypadInputClient },
    optional: {
      LevelControl: VideoRemoteControlRequirements2.LevelControlClient,
      WakeOnLan: VideoRemoteControlRequirements2.WakeOnLanClient,
      Channel: VideoRemoteControlRequirements2.ChannelClient,
      TargetNavigator: VideoRemoteControlRequirements2.TargetNavigatorClient,
      MediaInput: VideoRemoteControlRequirements2.MediaInputClient,
      LowPower: VideoRemoteControlRequirements2.LowPowerClient,
      ContentLauncher: VideoRemoteControlRequirements2.ContentLauncherClient,
      AudioOutput: VideoRemoteControlRequirements2.AudioOutputClient,
      ApplicationLauncher: VideoRemoteControlRequirements2.ApplicationLauncherClient,
      AccountLogin: VideoRemoteControlRequirements2.AccountLoginClient,
      ContentControl: VideoRemoteControlRequirements2.ContentControlClient
    }
  };
})(VideoRemoteControlRequirements || (VideoRemoteControlRequirements = {}));
const VideoRemoteControlDeviceDefinition = MutableEndpoint({
  name: "VideoRemoteControl",
  deviceType: 42,
  deviceRevision: 2,
  requirements: VideoRemoteControlRequirements,
  behaviors: SupportedBehaviors()
});
Object.freeze(VideoRemoteControlDeviceDefinition);
const VideoRemoteControlDevice = VideoRemoteControlDeviceDefinition;
export {
  VideoRemoteControlDevice,
  VideoRemoteControlDeviceDefinition,
  VideoRemoteControlRequirements
};
//# sourceMappingURL=video-remote-control.js.map
