/**
 * @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 { 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 { Identity } from "#general";
/**
 * This defines conformance to the Casting 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 Casting Video Player has basic controls for playback (play, pause, etc.) and keypad input (up, down, number input),
 * and is able to launch content.
 *
 * For example, a Casting Video Player can be a smart TV device, a TV Set Top Box, or a content streaming device that
 * provides input to another device like a TV or computer monitor.
 *
 * See Section 10.1, “Video Player Architecture” for additional Casting Video Player requirements relating to Video
 * Player device endpoint composition, commissioning, feature representation in clusters, and UI context.
 *
 * @see {@link MatterSpecification.v142.Device} § 10.3
 */
export interface CastingVideoPlayerDevice extends Identity<typeof CastingVideoPlayerDeviceDefinition> {
}
export declare namespace CastingVideoPlayerRequirements {
    /**
     * 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 ContentLauncher cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link ContentLauncherServer} for convenience.
     */
    const ContentLauncherServer: typeof BaseContentLauncherServer;
    /**
     * 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 ApplicationLauncher cluster is optional per the Matter specification.
     *
     * This version of {@link ApplicationLauncherServer} is specialized per the specification.
     */
    const ApplicationLauncherServer: import("../index.js").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types/clusters/application-launcher").ApplicationLauncher.Cluster, readonly ["ApplicationPlatform"]>, typeof BaseApplicationLauncherServer, import("../behaviors/index.js").ApplicationLauncherInterface>;
    /**
     * The AccountLogin cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link AccountLoginServer} for convenience.
     */
    const AccountLoginServer: typeof BaseAccountLoginServer;
    /**
     * 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;
            ContentLauncher: typeof BaseContentLauncherServer;
        };
        optional: {
            WakeOnLan: typeof BaseWakeOnLanServer;
            Channel: typeof BaseChannelServer;
            TargetNavigator: typeof BaseTargetNavigatorServer;
            MediaInput: typeof BaseMediaInputServer;
            LowPower: typeof BaseLowPowerServer;
            AudioOutput: typeof BaseAudioOutputServer;
            ApplicationLauncher: import("../index.js").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types/clusters/application-launcher").ApplicationLauncher.Cluster, readonly ["ApplicationPlatform"]>, typeof BaseApplicationLauncherServer, import("../behaviors/index.js").ApplicationLauncherInterface>;
            AccountLogin: typeof BaseAccountLoginServer;
            ContentControl: typeof BaseContentControlServer;
            Messages: typeof BaseMessagesServer;
        };
    };
}
export declare const CastingVideoPlayerDeviceDefinition: MutableEndpoint.With<import("../index.js").EndpointType.For<{
    readonly name: "CastingVideoPlayer";
    readonly deviceType: 35;
    readonly deviceRevision: 2;
    readonly requirements: typeof CastingVideoPlayerRequirements;
    readonly behaviors: {
        readonly onOff: typeof BaseOnOffServer;
    } & {
        readonly mediaPlayback: typeof BaseMediaPlaybackServer;
    } & {
        readonly keypadInput: typeof BaseKeypadInputServer;
    } & {
        readonly contentLauncher: typeof BaseContentLauncherServer;
    };
}>, {
    readonly onOff: typeof BaseOnOffServer;
} & {
    readonly mediaPlayback: typeof BaseMediaPlaybackServer;
} & {
    readonly keypadInput: typeof BaseKeypadInputServer;
} & {
    readonly contentLauncher: typeof BaseContentLauncherServer;
}>;
export declare const CastingVideoPlayerDevice: CastingVideoPlayerDevice;
//# sourceMappingURL=casting-video-player.d.ts.map