/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { Identity } from "@matter/general";
/**
 * This defines conformance to the Video Remote Control device type.
 *
 * A Video Remote Control is a client that can control a Video Player, for example, a traditional universal remote
 * control.
 *
 * @see {@link MatterSpecification.v151.Device} § 10.7
 */
export interface VideoRemoteControlDevice extends Identity<typeof VideoRemoteControlDeviceDefinition> {
}
export declare namespace VideoRemoteControlRequirements {
    /**
     * The OnOff cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link OnOffClient} for convenience.
     */
    const OnOffClient: import("../behaviors/on-off/OnOffClient.js").OnOffClientConstructor;
    /**
     * The MediaPlayback cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link MediaPlaybackClient} for convenience.
     */
    const MediaPlaybackClient: import("../behaviors/media-playback/MediaPlaybackClient.js").MediaPlaybackClientConstructor;
    /**
     * The KeypadInput cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link KeypadInputClient} for convenience.
     */
    const KeypadInputClient: import("../behaviors/keypad-input/KeypadInputClient.js").KeypadInputClientConstructor;
    /**
     * The LevelControl cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link LevelControlClient} for convenience.
     */
    const LevelControlClient: import("../behaviors/level-control/LevelControlClient.js").LevelControlClientConstructor;
    /**
     * The WakeOnLan cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link WakeOnLanClient} for convenience.
     */
    const WakeOnLanClient: import("../behaviors/wake-on-lan/WakeOnLanClient.js").WakeOnLanClientConstructor;
    /**
     * The Channel cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ChannelClient} for convenience.
     */
    const ChannelClient: import("../behaviors/channel/ChannelClient.js").ChannelClientConstructor;
    /**
     * The TargetNavigator cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link TargetNavigatorClient} for convenience.
     */
    const TargetNavigatorClient: import("../behaviors/target-navigator/TargetNavigatorClient.js").TargetNavigatorClientConstructor;
    /**
     * The MediaInput cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link MediaInputClient} for convenience.
     */
    const MediaInputClient: import("../behaviors/media-input/MediaInputClient.js").MediaInputClientConstructor;
    /**
     * The LowPower cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link LowPowerClient} for convenience.
     */
    const LowPowerClient: import("../behaviors/low-power/LowPowerClient.js").LowPowerClientConstructor;
    /**
     * The ContentLauncher cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ContentLauncherClient} for convenience.
     */
    const ContentLauncherClient: import("../behaviors/content-launcher/ContentLauncherClient.js").ContentLauncherClientConstructor;
    /**
     * The AudioOutput cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link AudioOutputClient} for convenience.
     */
    const AudioOutputClient: import("../behaviors/audio-output/AudioOutputClient.js").AudioOutputClientConstructor;
    /**
     * The ApplicationLauncher cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ApplicationLauncherClient} for convenience.
     */
    const ApplicationLauncherClient: import("../behaviors/application-launcher/ApplicationLauncherClient.js").ApplicationLauncherClientConstructor;
    /**
     * The AccountLogin cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link AccountLoginClient} for convenience.
     */
    const AccountLoginClient: import("../behaviors/account-login/AccountLoginClient.js").AccountLoginClientConstructor;
    /**
     * The ContentControl cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ContentControlClient} for convenience.
     */
    const ContentControlClient: import("../behaviors/content-control/ContentControlClient.js").ContentControlClientConstructor;
    /**
     * A definition for each client cluster supported by the endpoint per the Matter specification.
     */
    const client: {
        mandatory: {
            OnOff: import("../behaviors/on-off/OnOffClient.js").OnOffClientConstructor;
            MediaPlayback: import("../behaviors/media-playback/MediaPlaybackClient.js").MediaPlaybackClientConstructor;
            KeypadInput: import("../behaviors/keypad-input/KeypadInputClient.js").KeypadInputClientConstructor;
        };
        optional: {
            LevelControl: import("../behaviors/level-control/LevelControlClient.js").LevelControlClientConstructor;
            WakeOnLan: import("../behaviors/wake-on-lan/WakeOnLanClient.js").WakeOnLanClientConstructor;
            Channel: import("../behaviors/channel/ChannelClient.js").ChannelClientConstructor;
            TargetNavigator: import("../behaviors/target-navigator/TargetNavigatorClient.js").TargetNavigatorClientConstructor;
            MediaInput: import("../behaviors/media-input/MediaInputClient.js").MediaInputClientConstructor;
            LowPower: import("../behaviors/low-power/LowPowerClient.js").LowPowerClientConstructor;
            ContentLauncher: import("../behaviors/content-launcher/ContentLauncherClient.js").ContentLauncherClientConstructor;
            AudioOutput: import("../behaviors/audio-output/AudioOutputClient.js").AudioOutputClientConstructor;
            ApplicationLauncher: import("../behaviors/application-launcher/ApplicationLauncherClient.js").ApplicationLauncherClientConstructor;
            AccountLogin: import("../behaviors/account-login/AccountLoginClient.js").AccountLoginClientConstructor;
            ContentControl: import("../behaviors/content-control/ContentControlClient.js").ContentControlClientConstructor;
        };
    };
}
export declare const VideoRemoteControlDeviceDefinition: MutableEndpoint.With<import("../index.js").EndpointType.For<{
    readonly name: "VideoRemoteControl";
    readonly deviceType: 42;
    readonly deviceRevision: 2;
    readonly requirements: typeof VideoRemoteControlRequirements;
    readonly behaviors: {};
}>, {}, {}>;
export declare const VideoRemoteControlDevice: VideoRemoteControlDevice;
//# sourceMappingURL=video-remote-control.d.ts.map