/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { KeypadInputServer as BaseKeypadInputServer } from "../behaviors/keypad-input/KeypadInputServer.js";
import { ApplicationLauncherServer as BaseApplicationLauncherServer } from "../behaviors/application-launcher/ApplicationLauncherServer.js";
import { ApplicationBasicServer as BaseApplicationBasicServer } from "../behaviors/application-basic/ApplicationBasicServer.js";
import { BindingServer as BaseBindingServer } from "../behaviors/binding/BindingServer.js";
import { ChannelServer as BaseChannelServer } from "../behaviors/channel/ChannelServer.js";
import { TargetNavigatorServer as BaseTargetNavigatorServer } from "../behaviors/target-navigator/TargetNavigatorServer.js";
import { MediaPlaybackServer as BaseMediaPlaybackServer } from "../behaviors/media-playback/MediaPlaybackServer.js";
import { ContentLauncherServer as BaseContentLauncherServer } from "../behaviors/content-launcher/ContentLauncherServer.js";
import { AccountLoginServer as BaseAccountLoginServer } from "../behaviors/account-login/AccountLoginServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { Identity } from "#general";
/**
 * This defines conformance to the Content App device type.
 *
 * A Content App is usually an application built by a Content Provider. A Casting Video Player with a Content App
 * Platform is able to launch Content Apps and represent these apps as separate endpoints.
 *
 * @see {@link MatterSpecification.v142.Device} § 10.5
 */
export interface ContentAppDevice extends Identity<typeof ContentAppDeviceDefinition> {
}
export declare namespace ContentAppRequirements {
    /**
     * 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 ApplicationLauncher cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link ApplicationLauncherServer} for convenience.
     */
    const ApplicationLauncherServer: typeof BaseApplicationLauncherServer;
    /**
     * The ApplicationBasic cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link ApplicationBasicServer} for convenience.
     */
    const ApplicationBasicServer: typeof BaseApplicationBasicServer;
    /**
     * The Binding cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link BindingServer} for convenience.
     */
    const BindingServer: typeof BaseBindingServer;
    /**
     * 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 MediaPlayback cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link MediaPlaybackServer} for convenience.
     */
    const MediaPlaybackServer: typeof BaseMediaPlaybackServer;
    /**
     * The ContentLauncher cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ContentLauncherServer} for convenience.
     */
    const ContentLauncherServer: typeof BaseContentLauncherServer;
    /**
     * 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 ContentAppObserver cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ContentAppObserverBehavior} for convenience.
     */
    const ContentAppObserverBehavior: import("../behaviors/content-app-observer/ContentAppObserverBehavior.js").ContentAppObserverBehaviorConstructor;
    /**
     * An implementation for each server cluster supported by the endpoint per the Matter specification.
     */
    const server: {
        mandatory: {
            KeypadInput: typeof BaseKeypadInputServer;
            ApplicationLauncher: typeof BaseApplicationLauncherServer;
            ApplicationBasic: typeof BaseApplicationBasicServer;
        };
        optional: {
            Binding: typeof BaseBindingServer;
            Channel: typeof BaseChannelServer;
            TargetNavigator: typeof BaseTargetNavigatorServer;
            MediaPlayback: typeof BaseMediaPlaybackServer;
            ContentLauncher: typeof BaseContentLauncherServer;
            AccountLogin: typeof BaseAccountLoginServer;
        };
    };
    /**
     * A definition for each client cluster supported by the endpoint per the Matter specification.
     */
    const client: {
        optional: {
            ContentAppObserver: import("../behaviors/content-app-observer/ContentAppObserverBehavior.js").ContentAppObserverBehaviorConstructor;
        };
        mandatory: {};
    };
}
export declare const ContentAppDeviceDefinition: MutableEndpoint.With<import("../index.js").EndpointType.For<{
    readonly name: "ContentApp";
    readonly deviceType: 36;
    readonly deviceRevision: 2;
    readonly requirements: typeof ContentAppRequirements;
    readonly behaviors: {
        readonly keypadInput: typeof BaseKeypadInputServer;
    } & {
        readonly applicationLauncher: typeof BaseApplicationLauncherServer;
    } & {
        readonly applicationBasic: typeof BaseApplicationBasicServer;
    };
}>, {
    readonly keypadInput: typeof BaseKeypadInputServer;
} & {
    readonly applicationLauncher: typeof BaseApplicationLauncherServer;
} & {
    readonly applicationBasic: typeof BaseApplicationBasicServer;
}>;
export declare const ContentAppDevice: ContentAppDevice;
//# sourceMappingURL=content-app.d.ts.map