/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { WindowCoveringServer as BaseWindowCoveringServer } from "../behaviors/window-covering/WindowCoveringServer.js";
import { GroupsServer as BaseGroupsServer } from "../behaviors/groups/GroupsServer.js";
import { ClosureControlServer as BaseClosureControlServer } from "../behaviors/closure-control/ClosureControlServer.js";
import { ClosureDimensionServer as BaseClosureDimensionServer } from "../behaviors/closure-dimension/ClosureDimensionServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { Identity } from "@matter/general";
/**
 * This defines conformance to the Window Covering device type.
 *
 * WindowCoveringDevice requires WindowCovering cluster but WindowCovering is not added by default because you must
 * select the features your device supports. You can add manually using WindowCoveringDevice.with().
 *
 * @see {@link MatterSpecification.v151.Device} § 8.3
 */
export interface WindowCoveringDevice extends Identity<typeof WindowCoveringDeviceDefinition> {
}
export declare namespace WindowCoveringRequirements {
    /**
     * The Identify cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link IdentifyServer} for convenience.
     */
    const IdentifyServer: typeof BaseIdentifyServer;
    /**
     * The WindowCovering cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link WindowCoveringServer} for convenience.
     */
    const WindowCoveringServer: typeof BaseWindowCoveringServer;
    /**
     * The Groups cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link GroupsServer} for convenience.
     */
    const GroupsServer: typeof BaseGroupsServer;
    /**
     * The ClosureControl cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ClosureControlServer} for convenience.
     */
    const ClosureControlServer: typeof BaseClosureControlServer;
    /**
     * The ClosureDimension cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ClosureDimensionServer} for convenience.
     */
    const ClosureDimensionServer: typeof BaseClosureDimensionServer;
    /**
     * An implementation for each server cluster supported by the endpoint per the Matter specification.
     */
    const server: {
        mandatory: {
            Identify: typeof BaseIdentifyServer;
            WindowCovering: typeof BaseWindowCoveringServer;
        };
        optional: {
            Groups: typeof BaseGroupsServer;
            ClosureControl: typeof BaseClosureControlServer;
            ClosureDimension: typeof BaseClosureDimensionServer;
        };
    };
}
export declare const WindowCoveringDeviceDefinition: MutableEndpoint.With<import("../index.js").EndpointType.For<{
    readonly name: "WindowCovering";
    readonly deviceType: 514;
    readonly deviceRevision: 6;
    readonly requirements: typeof WindowCoveringRequirements;
    readonly behaviors: {
        readonly identify: typeof BaseIdentifyServer;
    };
}>, {
    readonly identify: typeof BaseIdentifyServer;
}>;
export declare const WindowCoveringDevice: WindowCoveringDevice;
//# sourceMappingURL=window-covering.d.ts.map