/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
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 { 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 { 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 { Identity } from "#general";
/**
 * This defines conformance to the Basic Video Player device type.
 *
 * A Video Player (either Basic or Casting) represents a device that is able to play media to a physical output or to a
 * display screen which is part of the device.
 *
 * A Basic Video Player has playback controls (play, pause, etc.) and keypad remote controls (up, down, number input),
 * but is not able to launch content and is not a content app platform (the Casting Video Player device type is used for
 * these functions).
 *
 * For example, a Basic Video Player can be a traditional TV device a physical media playback device such as a DVD
 * Player, or a device that provides input to another device like a TV or computer monitor.
 *
 * See Section 10.1, “Video Player Architecture” for additional Basic Video Player requirements relating to Video Player
 * device endpoint composition, commissioning, feature representation in clusters, and UI context.
 *
 * @see {@link MatterSpecification.v142.Device} § 10.2
 */
export interface BasicVideoPlayerDevice extends Identity<typeof BasicVideoPlayerDeviceDefinition> {
}
export declare namespace BasicVideoPlayerRequirements {
    /**
     * The OnOff cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link OnOffServer} for convenience.
     */
    const OnOffServer: typeof BaseOnOffServer;
    /**
     * The MediaPlayback cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link MediaPlaybackServer} for convenience.
     */
    const MediaPlaybackServer: typeof BaseMediaPlaybackServer;
    /**
     * The KeypadInput cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link KeypadInputServer} for convenience.
     */
    const KeypadInputServer: typeof BaseKeypadInputServer;
    /**
     * The WakeOnLan cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link WakeOnLanServer} for convenience.
     */
    const WakeOnLanServer: typeof BaseWakeOnLanServer;
    /**
     * The Channel cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ChannelServer} for convenience.
     */
    const ChannelServer: typeof BaseChannelServer;
    /**
     * The TargetNavigator cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link TargetNavigatorServer} for convenience.
     */
    const TargetNavigatorServer: typeof BaseTargetNavigatorServer;
    /**
     * The MediaInput cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link MediaInputServer} for convenience.
     */
    const MediaInputServer: typeof BaseMediaInputServer;
    /**
     * The LowPower cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link LowPowerServer} for convenience.
     */
    const LowPowerServer: typeof BaseLowPowerServer;
    /**
     * The AudioOutput cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link AudioOutputServer} for convenience.
     */
    const AudioOutputServer: typeof BaseAudioOutputServer;
    /**
     * The ContentControl cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ContentControlServer} for convenience.
     */
    const ContentControlServer: typeof BaseContentControlServer;
    /**
     * The Messages cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link MessagesServer} for convenience.
     */
    const MessagesServer: typeof BaseMessagesServer;
    /**
     * An implementation for each server cluster supported by the endpoint per the Matter specification.
     */
    const server: {
        mandatory: {
            OnOff: typeof BaseOnOffServer;
            MediaPlayback: typeof BaseMediaPlaybackServer;
            KeypadInput: typeof BaseKeypadInputServer;
        };
        optional: {
            WakeOnLan: typeof BaseWakeOnLanServer;
            Channel: typeof BaseChannelServer;
            TargetNavigator: typeof BaseTargetNavigatorServer;
            MediaInput: typeof BaseMediaInputServer;
            LowPower: typeof BaseLowPowerServer;
            AudioOutput: typeof BaseAudioOutputServer;
            ContentControl: typeof BaseContentControlServer;
            Messages: typeof BaseMessagesServer;
        };
    };
}
export declare const BasicVideoPlayerDeviceDefinition: MutableEndpoint.With<import("../index.js").EndpointType.For<{
    readonly name: "BasicVideoPlayer";
    readonly deviceType: 40;
    readonly deviceRevision: 2;
    readonly requirements: typeof BasicVideoPlayerRequirements;
    readonly behaviors: {
        readonly onOff: typeof BaseOnOffServer;
    } & {
        readonly mediaPlayback: typeof BaseMediaPlaybackServer;
    } & {
        readonly keypadInput: typeof BaseKeypadInputServer;
    };
}>, {
    readonly onOff: typeof BaseOnOffServer;
} & {
    readonly mediaPlayback: typeof BaseMediaPlaybackServer;
} & {
    readonly keypadInput: typeof BaseKeypadInputServer;
}>;
export declare const BasicVideoPlayerDevice: BasicVideoPlayerDevice;
//# sourceMappingURL=basic-video-player.d.ts.map