/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
import { Attribute, WritableAttribute, Command } from "../cluster/Cluster.js";
import { TypeFromSchema } from "../tlv/TlvSchema.js";
import { BitFlag } from "../schema/BitmapSchema.js";
import { ClusterType } from "../cluster/ClusterType.js";
import { Identity } from "@matter/general";
export declare namespace OnOff {
    /**
     * These are optional features supported by OnOffCluster.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.5.4
     */
    enum Feature {
        /**
         * Lighting (LT)
         *
         * This cluster is used for a lighting application.
         *
         * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to FALSE, the OnTime
         * attribute shall be set to 0.
         *
         * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to TRUE, if the value
         * of the OnTime attribute is equal to 0, the server shall set the OffWaitTime attribute to 0.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.1
         */
        Lighting = "Lighting",
        /**
         * DeadFrontBehavior (DF)
         *
         * When this feature is supported, the device exposing this server cluster exhibits "dead front" behavior when
         * the "OnOff" attribute is FALSE (Off). This "dead front" behavior includes:
         *
         *   - clusters other than this cluster that are also exposed may respond with failures to Invoke and Write
         *     interactions. Such failure responses when in a "dead front" shall be with an INVALID_IN_STATE status
         *     code.
         *
         *   - clusters other than this cluster may change the values of their attributes to best-effort values, due to
         *     the actual values not being defined or available in this state. Device type specifications that require
         *     support for the DF feature SHOULD define what these best-effort values are.
         *
         *   - Report Transactions shall continue to be generated. Such transactions may include best-effort values as
         *     noted above.
         *
         *   - Event generation logic for clusters other than this cluster is unchanged (noting possible use of
         *     best-effort attribute values as in the preceding bullets).
         *
         * When this feature is supported and the OnOff attribute changes from TRUE to FALSE (e.g. when receiving an Off
         * Command, or due to a manual interaction on the device), it shall start executing this "dead front" behavior.
         *
         * When this feature is supported and the OnOff attribute changes from FALSE to TRUE (e.g. when receiving an On
         * Command, or due to a manual interaction on the device), it shall stop executing this "dead front" behavior.
         *
         * When this feature is supported, and any change of the "dead front" state leads to changes in attributes of
         * other clusters due to the "dead front" feature, these attribute changes shall NOT be skipped or omitted from
         * the usual processing associated with attribute changes. For example, if an attribute changes from value 4 to
         * null on "dead front" behavior due to an Off command being received, this change shall be processed for
         * reporting and subscriptions.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.2
         */
        DeadFrontBehavior = "DeadFrontBehavior",
        /**
         * OffOnly (OFFONLY)
         *
         * When this feature is supported, the Off command shall be supported and the On and Toggle commands shall NOT
         * be supported.
         *
         * This feature is useful for devices which can be turned off via the Off command received by an instance of
         * this cluster but cannot be turned on via commands received by an instance of this cluster due to regulatory
         * requirements.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.3
         */
        OffOnly = "OffOnly"
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 1.5.5.2
     */
    enum StartUpOnOff {
        /**
         * Set the OnOff attribute to FALSE
         */
        Off = 0,
        /**
         * Set the OnOff attribute to TRUE
         */
        On = 1,
        /**
         * If the previous value of the OnOff attribute is equal to FALSE, set the OnOff attribute to TRUE. If the
         * previous value of the OnOff attribute is equal to TRUE, set the OnOff attribute to FALSE (toggle).
         */
        Toggle = 2
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 1.5.5.3
     */
    enum EffectIdentifier {
        /**
         * Delayed All Off
         */
        DelayedAllOff = 0,
        /**
         * Dying Light
         */
        DyingLight = 1
    }
    /**
     * Input to the OnOff offWithEffect command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4
     */
    const TlvOffWithEffectRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field specifies the fading effect to use when turning the device off. This field shall contain one of
         * the non-reserved values listed in EffectIdentifierEnum.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.1
         */
        effectIdentifier: import("../tlv/TlvObject.js").FieldType<EffectIdentifier>;
        /**
         * This field is used to indicate which variant of the effect, indicated in the EffectIdentifier field, SHOULD
         * be triggered. If the server does not support the given variant, it shall use the default variant. This field
         * is dependent on the value of the EffectIdentifier field and shall contain one of the non-reserved values
         * listed in either DelayedAllOffEffectVariantEnum or DyingLightEffectVariantEnum.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.2
         */
        effectVariant: import("../tlv/TlvObject.js").FieldType<number>;
    }>;
    /**
     * Input to the OnOff offWithEffect command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4
     */
    interface OffWithEffectRequest extends TypeFromSchema<typeof TlvOffWithEffectRequest> {
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 1.5.5.1
     */
    const OnOffControl: {
        /**
         * Indicates a command is only accepted when in On state.
         */
        acceptOnlyWhenOn: BitFlag;
    };
    /**
     * Input to the OnOff onWithTimedOff command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6
     */
    const TlvOnWithTimedOffRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field contains information on how the server is to be operated.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.1
         */
        onOffControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
            /**
             * Indicates a command is only accepted when in On state.
             */
            acceptOnlyWhenOn: BitFlag;
        }>>;
        /**
         * This field is used to adjust the value of the OnTime attribute.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.2
         */
        onTime: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field is used to adjust the value of the OffWaitTime attribute.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.3
         */
        offWaitTime: import("../tlv/TlvObject.js").FieldType<number>;
    }>;
    /**
     * Input to the OnOff onWithTimedOff command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6
     */
    interface OnWithTimedOffRequest extends TypeFromSchema<typeof TlvOnWithTimedOffRequest> {
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 1.5.5.4
     */
    enum DelayedAllOffEffectVariant {
        /**
         * Fade to off in 0.8 seconds
         */
        DelayedOffFastFade = 0,
        /**
         * No fade
         */
        NoFade = 1,
        /**
         * 50% dim down in 0.8 seconds then fade to off in 12 seconds
         */
        DelayedOffSlowFade = 2
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 1.5.5.5
     */
    enum DyingLightEffectVariant {
        /**
         * 20% dim up in 0.5s then fade to off in 1 second
         */
        DyingLightFadeOff = 0
    }
    /**
     * A OnOffCluster supports these elements if it supports feature Lighting.
     */
    const LightingComponent: {
        readonly attributes: {
            /**
             * In order to support the use case where the user gets back the last setting of a set of devices (e.g.
             * level settings for lights), a global scene is introduced which is stored when the devices are turned off
             * and recalled when the devices are turned on. The global scene is defined as the scene that is stored with
             * group identifier 0 and scene identifier 0.
             *
             * This attribute is defined in order to prevent a second Off command storing the all-devices-off situation
             * as a global scene, and to prevent a second On command destroying the current settings by going back to
             * the global scene.
             *
             * This attribute shall be set to TRUE after the reception of a command which causes the OnOff attribute to
             * be set to TRUE, such as a standard On command, a MoveToLevel(WithOnOff) command, a RecallScene command or
             * a OnWithRecallGlobalScene command.
             *
             * This attribute is set to FALSE after reception of a OffWithEffect command.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.3
             */
            readonly globalSceneControl: Attribute<boolean, any>;
            /**
             * This attribute specifies the length of time (in 1/10ths second) that the On state shall be maintained
             * before automatically transitioning to the Off state when using the OnWithTimedOff command. This attribute
             * can be written at any time, but writing a value only has effect when in the Timed On state. See
             * OnWithTimedOff for more details.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.4
             */
            readonly onTime: WritableAttribute<number, any>;
            /**
             * This attribute specifies the length of time (in 1/10ths second) that the Off state shall be guarded to
             * prevent another OnWithTimedOff command turning the server back to its On state (e.g., when leaving a
             * room, the lights are turned off but an occupancy sensor detects the leaving person and attempts to turn
             * the lights back on). This attribute can be written at any time, but writing a value only has an effect
             * when in the Timed On state followed by a transition to the Delayed Off state, or in the Delayed Off
             * state. See OnWithTimedOff for more details.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.5
             */
            readonly offWaitTime: WritableAttribute<number, any>;
            /**
             * This attribute shall define the desired startup behavior of a device when it is supplied with power and
             * this state shall be reflected in the OnOff attribute. If the value is null, the OnOff attribute is set to
             * its previous value. Otherwise, the behavior is defined in the table defining StartUpOnOffEnum.
             *
             * This behavior does not apply to reboots associated with OTA. After an OTA restart, the OnOff attribute
             * shall return to its value prior to the restart.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.6
             */
            readonly startUpOnOff: WritableAttribute<StartUpOnOff | null, any>;
        };
        readonly commands: {
            /**
             * The OffWithEffect command allows devices to be turned off using enhanced ways of fading.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4
             */
            readonly offWithEffect: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field specifies the fading effect to use when turning the device off. This field shall contain one of
                 * the non-reserved values listed in EffectIdentifierEnum.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.1
                 */
                effectIdentifier: import("../tlv/TlvObject.js").FieldType<EffectIdentifier>;
                /**
                 * This field is used to indicate which variant of the effect, indicated in the EffectIdentifier field, SHOULD
                 * be triggered. If the server does not support the given variant, it shall use the default variant. This field
                 * is dependent on the value of the EffectIdentifier field and shall contain one of the non-reserved values
                 * listed in either DelayedAllOffEffectVariantEnum or DyingLightEffectVariantEnum.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.2
                 */
                effectVariant: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any>;
            /**
             * This command allows the recall of the settings when the device was turned off.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.5
             */
            readonly onWithRecallGlobalScene: Command<void, void, any>;
            /**
             * This command allows devices to be turned on for a specific duration with a guarded off duration so that
             * SHOULD the device be subsequently turned off, further OnWithTimedOff commands, received during this time,
             * are prevented from turning the devices back on. Further OnWithTimedOff commands received while the server
             * is turned on, will update the period that the device is turned on.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6
             */
            readonly onWithTimedOff: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field contains information on how the server is to be operated.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.1
                 */
                onOffControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                    /**
                     * Indicates a command is only accepted when in On state.
                     */
                    acceptOnlyWhenOn: BitFlag;
                }>>;
                /**
                 * This field is used to adjust the value of the OnTime attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.2
                 */
                onTime: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field is used to adjust the value of the OffWaitTime attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.3
                 */
                offWaitTime: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any>;
        };
    };
    /**
     * A OnOffCluster supports these elements if doesn't support feature OFFONLY.
     */
    const NotOffOnlyComponent: {
        readonly commands: {
            /**
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.2
             */
            readonly on: Command<void, void, any>;
            /**
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.3
             */
            readonly toggle: Command<void, void, any>;
        };
    };
    /**
     * These elements and properties are present in all OnOff clusters.
     */
    const Base: {
        readonly id: 6;
        readonly name: "OnOff";
        readonly revision: 6;
        readonly features: {
            /**
             * This cluster is used for a lighting application.
             *
             * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to FALSE, the
             * OnTime attribute shall be set to 0.
             *
             * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to TRUE, if the
             * value of the OnTime attribute is equal to 0, the server shall set the OffWaitTime attribute to 0.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.1
             */
            readonly lighting: BitFlag;
            /**
             * When this feature is supported, the device exposing this server cluster exhibits "dead front" behavior
             * when the "OnOff" attribute is FALSE (Off). This "dead front" behavior includes:
             *
             *   - clusters other than this cluster that are also exposed may respond with failures to Invoke and Write
             *     interactions. Such failure responses when in a "dead front" shall be with an INVALID_IN_STATE status
             *     code.
             *
             *   - clusters other than this cluster may change the values of their attributes to best-effort values, due
             *     to the actual values not being defined or available in this state. Device type specifications that
             *     require support for the DF feature SHOULD define what these best-effort values are.
             *
             *   - Report Transactions shall continue to be generated. Such transactions may include best-effort values
             *     as noted above.
             *
             *   - Event generation logic for clusters other than this cluster is unchanged (noting possible use of
             *     best-effort attribute values as in the preceding bullets).
             *
             * When this feature is supported and the OnOff attribute changes from TRUE to FALSE (e.g. when receiving an
             * Off Command, or due to a manual interaction on the device), it shall start executing this "dead front"
             * behavior.
             *
             * When this feature is supported and the OnOff attribute changes from FALSE to TRUE (e.g. when receiving an
             * On Command, or due to a manual interaction on the device), it shall stop executing this "dead front"
             * behavior.
             *
             * When this feature is supported, and any change of the "dead front" state leads to changes in attributes
             * of other clusters due to the "dead front" feature, these attribute changes shall NOT be skipped or
             * omitted from the usual processing associated with attribute changes. For example, if an attribute changes
             * from value 4 to null on "dead front" behavior due to an Off command being received, this change shall be
             * processed for reporting and subscriptions.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.2
             */
            readonly deadFrontBehavior: BitFlag;
            /**
             * When this feature is supported, the Off command shall be supported and the On and Toggle commands shall
             * NOT be supported.
             *
             * This feature is useful for devices which can be turned off via the Off command received by an instance of
             * this cluster but cannot be turned on via commands received by an instance of this cluster due to
             * regulatory requirements.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.3
             */
            readonly offOnly: BitFlag;
        };
        readonly attributes: {
            /**
             * This attribute indicates whether the device type implemented on the endpoint is turned off or turned on,
             * in these cases the value of the OnOff attribute equals FALSE, or TRUE respectively.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.2
             */
            readonly onOff: Attribute<boolean, any>;
        };
        readonly commands: {
            /**
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.1
             */
            readonly off: Command<void, void, any>;
        };
        /**
         * This metadata controls which OnOffCluster elements matter.js activates for specific feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly lighting: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * In order to support the use case where the user gets back the last setting of a set of devices (e.g.
                     * level settings for lights), a global scene is introduced which is stored when the devices are turned off
                     * and recalled when the devices are turned on. The global scene is defined as the scene that is stored with
                     * group identifier 0 and scene identifier 0.
                     *
                     * This attribute is defined in order to prevent a second Off command storing the all-devices-off situation
                     * as a global scene, and to prevent a second On command destroying the current settings by going back to
                     * the global scene.
                     *
                     * This attribute shall be set to TRUE after the reception of a command which causes the OnOff attribute to
                     * be set to TRUE, such as a standard On command, a MoveToLevel(WithOnOff) command, a RecallScene command or
                     * a OnWithRecallGlobalScene command.
                     *
                     * This attribute is set to FALSE after reception of a OffWithEffect command.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.3
                     */
                    readonly globalSceneControl: Attribute<boolean, any>;
                    /**
                     * This attribute specifies the length of time (in 1/10ths second) that the On state shall be maintained
                     * before automatically transitioning to the Off state when using the OnWithTimedOff command. This attribute
                     * can be written at any time, but writing a value only has effect when in the Timed On state. See
                     * OnWithTimedOff for more details.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.4
                     */
                    readonly onTime: WritableAttribute<number, any>;
                    /**
                     * This attribute specifies the length of time (in 1/10ths second) that the Off state shall be guarded to
                     * prevent another OnWithTimedOff command turning the server back to its On state (e.g., when leaving a
                     * room, the lights are turned off but an occupancy sensor detects the leaving person and attempts to turn
                     * the lights back on). This attribute can be written at any time, but writing a value only has an effect
                     * when in the Timed On state followed by a transition to the Delayed Off state, or in the Delayed Off
                     * state. See OnWithTimedOff for more details.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.5
                     */
                    readonly offWaitTime: WritableAttribute<number, any>;
                    /**
                     * This attribute shall define the desired startup behavior of a device when it is supplied with power and
                     * this state shall be reflected in the OnOff attribute. If the value is null, the OnOff attribute is set to
                     * its previous value. Otherwise, the behavior is defined in the table defining StartUpOnOffEnum.
                     *
                     * This behavior does not apply to reboots associated with OTA. After an OTA restart, the OnOff attribute
                     * shall return to its value prior to the restart.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.6
                     */
                    readonly startUpOnOff: WritableAttribute<StartUpOnOff | null, any>;
                };
                readonly commands: {
                    /**
                     * The OffWithEffect command allows devices to be turned off using enhanced ways of fading.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4
                     */
                    readonly offWithEffect: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field specifies the fading effect to use when turning the device off. This field shall contain one of
                         * the non-reserved values listed in EffectIdentifierEnum.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.1
                         */
                        effectIdentifier: import("../tlv/TlvObject.js").FieldType<EffectIdentifier>;
                        /**
                         * This field is used to indicate which variant of the effect, indicated in the EffectIdentifier field, SHOULD
                         * be triggered. If the server does not support the given variant, it shall use the default variant. This field
                         * is dependent on the value of the EffectIdentifier field and shall contain one of the non-reserved values
                         * listed in either DelayedAllOffEffectVariantEnum or DyingLightEffectVariantEnum.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.2
                         */
                        effectVariant: import("../tlv/TlvObject.js").FieldType<number>;
                    }>, void, any>;
                    /**
                     * This command allows the recall of the settings when the device was turned off.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.5
                     */
                    readonly onWithRecallGlobalScene: Command<void, void, any>;
                    /**
                     * This command allows devices to be turned on for a specific duration with a guarded off duration so that
                     * SHOULD the device be subsequently turned off, further OnWithTimedOff commands, received during this time,
                     * are prevented from turning the devices back on. Further OnWithTimedOff commands received while the server
                     * is turned on, will update the period that the device is turned on.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6
                     */
                    readonly onWithTimedOff: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field contains information on how the server is to be operated.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.1
                         */
                        onOffControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                            /**
                             * Indicates a command is only accepted when in On state.
                             */
                            acceptOnlyWhenOn: BitFlag;
                        }>>;
                        /**
                         * This field is used to adjust the value of the OnTime attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.2
                         */
                        onTime: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field is used to adjust the value of the OffWaitTime attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.3
                         */
                        offWaitTime: import("../tlv/TlvObject.js").FieldType<number>;
                    }>, void, any>;
                };
            };
        }, {
            readonly flags: {
                readonly offOnly: false;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.2
                     */
                    readonly on: Command<void, void, any>;
                    /**
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.3
                     */
                    readonly toggle: Command<void, void, any>;
                };
            };
        }, {
            readonly flags: {
                readonly lighting: true;
                readonly offOnly: true;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly deadFrontBehavior: true;
                readonly offOnly: true;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly offOnly: true;
                readonly lighting: false;
                readonly deadFrontBehavior: true;
            };
            readonly component: false;
        }];
    };
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster<{
        readonly base: ClusterType.Of<{
            readonly id: 6;
            readonly name: "OnOff";
            readonly revision: 6;
            readonly features: {
                /**
                 * This cluster is used for a lighting application.
                 *
                 * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to FALSE, the
                 * OnTime attribute shall be set to 0.
                 *
                 * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to TRUE, if the
                 * value of the OnTime attribute is equal to 0, the server shall set the OffWaitTime attribute to 0.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.1
                 */
                readonly lighting: BitFlag;
                /**
                 * When this feature is supported, the device exposing this server cluster exhibits "dead front" behavior
                 * when the "OnOff" attribute is FALSE (Off). This "dead front" behavior includes:
                 *
                 *   - clusters other than this cluster that are also exposed may respond with failures to Invoke and Write
                 *     interactions. Such failure responses when in a "dead front" shall be with an INVALID_IN_STATE status
                 *     code.
                 *
                 *   - clusters other than this cluster may change the values of their attributes to best-effort values, due
                 *     to the actual values not being defined or available in this state. Device type specifications that
                 *     require support for the DF feature SHOULD define what these best-effort values are.
                 *
                 *   - Report Transactions shall continue to be generated. Such transactions may include best-effort values
                 *     as noted above.
                 *
                 *   - Event generation logic for clusters other than this cluster is unchanged (noting possible use of
                 *     best-effort attribute values as in the preceding bullets).
                 *
                 * When this feature is supported and the OnOff attribute changes from TRUE to FALSE (e.g. when receiving an
                 * Off Command, or due to a manual interaction on the device), it shall start executing this "dead front"
                 * behavior.
                 *
                 * When this feature is supported and the OnOff attribute changes from FALSE to TRUE (e.g. when receiving an
                 * On Command, or due to a manual interaction on the device), it shall stop executing this "dead front"
                 * behavior.
                 *
                 * When this feature is supported, and any change of the "dead front" state leads to changes in attributes
                 * of other clusters due to the "dead front" feature, these attribute changes shall NOT be skipped or
                 * omitted from the usual processing associated with attribute changes. For example, if an attribute changes
                 * from value 4 to null on "dead front" behavior due to an Off command being received, this change shall be
                 * processed for reporting and subscriptions.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.2
                 */
                readonly deadFrontBehavior: BitFlag;
                /**
                 * When this feature is supported, the Off command shall be supported and the On and Toggle commands shall
                 * NOT be supported.
                 *
                 * This feature is useful for devices which can be turned off via the Off command received by an instance of
                 * this cluster but cannot be turned on via commands received by an instance of this cluster due to
                 * regulatory requirements.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.3
                 */
                readonly offOnly: BitFlag;
            };
            readonly attributes: {
                /**
                 * This attribute indicates whether the device type implemented on the endpoint is turned off or turned on,
                 * in these cases the value of the OnOff attribute equals FALSE, or TRUE respectively.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.2
                 */
                readonly onOff: Attribute<boolean, any>;
            };
            readonly commands: {
                /**
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.1
                 */
                readonly off: Command<void, void, any>;
            };
            /**
             * This metadata controls which OnOffCluster elements matter.js activates for specific feature combinations.
             */
            readonly extensions: readonly [{
                readonly flags: {
                    readonly lighting: true;
                };
                readonly component: {
                    readonly attributes: {
                        /**
                         * In order to support the use case where the user gets back the last setting of a set of devices (e.g.
                         * level settings for lights), a global scene is introduced which is stored when the devices are turned off
                         * and recalled when the devices are turned on. The global scene is defined as the scene that is stored with
                         * group identifier 0 and scene identifier 0.
                         *
                         * This attribute is defined in order to prevent a second Off command storing the all-devices-off situation
                         * as a global scene, and to prevent a second On command destroying the current settings by going back to
                         * the global scene.
                         *
                         * This attribute shall be set to TRUE after the reception of a command which causes the OnOff attribute to
                         * be set to TRUE, such as a standard On command, a MoveToLevel(WithOnOff) command, a RecallScene command or
                         * a OnWithRecallGlobalScene command.
                         *
                         * This attribute is set to FALSE after reception of a OffWithEffect command.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.3
                         */
                        readonly globalSceneControl: Attribute<boolean, any>;
                        /**
                         * This attribute specifies the length of time (in 1/10ths second) that the On state shall be maintained
                         * before automatically transitioning to the Off state when using the OnWithTimedOff command. This attribute
                         * can be written at any time, but writing a value only has effect when in the Timed On state. See
                         * OnWithTimedOff for more details.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.4
                         */
                        readonly onTime: WritableAttribute<number, any>;
                        /**
                         * This attribute specifies the length of time (in 1/10ths second) that the Off state shall be guarded to
                         * prevent another OnWithTimedOff command turning the server back to its On state (e.g., when leaving a
                         * room, the lights are turned off but an occupancy sensor detects the leaving person and attempts to turn
                         * the lights back on). This attribute can be written at any time, but writing a value only has an effect
                         * when in the Timed On state followed by a transition to the Delayed Off state, or in the Delayed Off
                         * state. See OnWithTimedOff for more details.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.5
                         */
                        readonly offWaitTime: WritableAttribute<number, any>;
                        /**
                         * This attribute shall define the desired startup behavior of a device when it is supplied with power and
                         * this state shall be reflected in the OnOff attribute. If the value is null, the OnOff attribute is set to
                         * its previous value. Otherwise, the behavior is defined in the table defining StartUpOnOffEnum.
                         *
                         * This behavior does not apply to reboots associated with OTA. After an OTA restart, the OnOff attribute
                         * shall return to its value prior to the restart.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.6
                         */
                        readonly startUpOnOff: WritableAttribute<StartUpOnOff | null, any>;
                    };
                    readonly commands: {
                        /**
                         * The OffWithEffect command allows devices to be turned off using enhanced ways of fading.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4
                         */
                        readonly offWithEffect: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                            /**
                             * This field specifies the fading effect to use when turning the device off. This field shall contain one of
                             * the non-reserved values listed in EffectIdentifierEnum.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.1
                             */
                            effectIdentifier: import("../tlv/TlvObject.js").FieldType<EffectIdentifier>;
                            /**
                             * This field is used to indicate which variant of the effect, indicated in the EffectIdentifier field, SHOULD
                             * be triggered. If the server does not support the given variant, it shall use the default variant. This field
                             * is dependent on the value of the EffectIdentifier field and shall contain one of the non-reserved values
                             * listed in either DelayedAllOffEffectVariantEnum or DyingLightEffectVariantEnum.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.2
                             */
                            effectVariant: import("../tlv/TlvObject.js").FieldType<number>;
                        }>, void, any>;
                        /**
                         * This command allows the recall of the settings when the device was turned off.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.5
                         */
                        readonly onWithRecallGlobalScene: Command<void, void, any>;
                        /**
                         * This command allows devices to be turned on for a specific duration with a guarded off duration so that
                         * SHOULD the device be subsequently turned off, further OnWithTimedOff commands, received during this time,
                         * are prevented from turning the devices back on. Further OnWithTimedOff commands received while the server
                         * is turned on, will update the period that the device is turned on.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6
                         */
                        readonly onWithTimedOff: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                            /**
                             * This field contains information on how the server is to be operated.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.1
                             */
                            onOffControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                                /**
                                 * Indicates a command is only accepted when in On state.
                                 */
                                acceptOnlyWhenOn: BitFlag;
                            }>>;
                            /**
                             * This field is used to adjust the value of the OnTime attribute.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.2
                             */
                            onTime: import("../tlv/TlvObject.js").FieldType<number>;
                            /**
                             * This field is used to adjust the value of the OffWaitTime attribute.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.3
                             */
                            offWaitTime: import("../tlv/TlvObject.js").FieldType<number>;
                        }>, void, any>;
                    };
                };
            }, {
                readonly flags: {
                    readonly offOnly: false;
                };
                readonly component: {
                    readonly commands: {
                        /**
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.2
                         */
                        readonly on: Command<void, void, any>;
                        /**
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.3
                         */
                        readonly toggle: Command<void, void, any>;
                    };
                };
            }, {
                readonly flags: {
                    readonly lighting: true;
                    readonly offOnly: true;
                };
                readonly component: false;
            }, {
                readonly flags: {
                    readonly deadFrontBehavior: true;
                    readonly offOnly: true;
                };
                readonly component: false;
            }, {
                readonly flags: {
                    readonly offOnly: true;
                    readonly lighting: false;
                    readonly deadFrontBehavior: true;
                };
                readonly component: false;
            }];
        }>;
        readonly id: 6;
        readonly name: "OnOff";
        readonly revision: 6;
        readonly features: {
            /**
             * This cluster is used for a lighting application.
             *
             * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to FALSE, the
             * OnTime attribute shall be set to 0.
             *
             * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to TRUE, if the
             * value of the OnTime attribute is equal to 0, the server shall set the OffWaitTime attribute to 0.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.1
             */
            readonly lighting: BitFlag;
            /**
             * When this feature is supported, the device exposing this server cluster exhibits "dead front" behavior
             * when the "OnOff" attribute is FALSE (Off). This "dead front" behavior includes:
             *
             *   - clusters other than this cluster that are also exposed may respond with failures to Invoke and Write
             *     interactions. Such failure responses when in a "dead front" shall be with an INVALID_IN_STATE status
             *     code.
             *
             *   - clusters other than this cluster may change the values of their attributes to best-effort values, due
             *     to the actual values not being defined or available in this state. Device type specifications that
             *     require support for the DF feature SHOULD define what these best-effort values are.
             *
             *   - Report Transactions shall continue to be generated. Such transactions may include best-effort values
             *     as noted above.
             *
             *   - Event generation logic for clusters other than this cluster is unchanged (noting possible use of
             *     best-effort attribute values as in the preceding bullets).
             *
             * When this feature is supported and the OnOff attribute changes from TRUE to FALSE (e.g. when receiving an
             * Off Command, or due to a manual interaction on the device), it shall start executing this "dead front"
             * behavior.
             *
             * When this feature is supported and the OnOff attribute changes from FALSE to TRUE (e.g. when receiving an
             * On Command, or due to a manual interaction on the device), it shall stop executing this "dead front"
             * behavior.
             *
             * When this feature is supported, and any change of the "dead front" state leads to changes in attributes
             * of other clusters due to the "dead front" feature, these attribute changes shall NOT be skipped or
             * omitted from the usual processing associated with attribute changes. For example, if an attribute changes
             * from value 4 to null on "dead front" behavior due to an Off command being received, this change shall be
             * processed for reporting and subscriptions.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.2
             */
            readonly deadFrontBehavior: BitFlag;
            /**
             * When this feature is supported, the Off command shall be supported and the On and Toggle commands shall
             * NOT be supported.
             *
             * This feature is useful for devices which can be turned off via the Off command received by an instance of
             * this cluster but cannot be turned on via commands received by an instance of this cluster due to
             * regulatory requirements.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.3
             */
            readonly offOnly: BitFlag;
        };
        readonly attributes: {
            /**
             * This attribute indicates whether the device type implemented on the endpoint is turned off or turned on,
             * in these cases the value of the OnOff attribute equals FALSE, or TRUE respectively.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.2
             */
            readonly onOff: Attribute<boolean, any>;
        };
        readonly commands: {
            /**
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.1
             */
            readonly off: Command<void, void, any>;
        };
        /**
         * This metadata controls which OnOffCluster elements matter.js activates for specific feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly lighting: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * In order to support the use case where the user gets back the last setting of a set of devices (e.g.
                     * level settings for lights), a global scene is introduced which is stored when the devices are turned off
                     * and recalled when the devices are turned on. The global scene is defined as the scene that is stored with
                     * group identifier 0 and scene identifier 0.
                     *
                     * This attribute is defined in order to prevent a second Off command storing the all-devices-off situation
                     * as a global scene, and to prevent a second On command destroying the current settings by going back to
                     * the global scene.
                     *
                     * This attribute shall be set to TRUE after the reception of a command which causes the OnOff attribute to
                     * be set to TRUE, such as a standard On command, a MoveToLevel(WithOnOff) command, a RecallScene command or
                     * a OnWithRecallGlobalScene command.
                     *
                     * This attribute is set to FALSE after reception of a OffWithEffect command.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.3
                     */
                    readonly globalSceneControl: Attribute<boolean, any>;
                    /**
                     * This attribute specifies the length of time (in 1/10ths second) that the On state shall be maintained
                     * before automatically transitioning to the Off state when using the OnWithTimedOff command. This attribute
                     * can be written at any time, but writing a value only has effect when in the Timed On state. See
                     * OnWithTimedOff for more details.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.4
                     */
                    readonly onTime: WritableAttribute<number, any>;
                    /**
                     * This attribute specifies the length of time (in 1/10ths second) that the Off state shall be guarded to
                     * prevent another OnWithTimedOff command turning the server back to its On state (e.g., when leaving a
                     * room, the lights are turned off but an occupancy sensor detects the leaving person and attempts to turn
                     * the lights back on). This attribute can be written at any time, but writing a value only has an effect
                     * when in the Timed On state followed by a transition to the Delayed Off state, or in the Delayed Off
                     * state. See OnWithTimedOff for more details.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.5
                     */
                    readonly offWaitTime: WritableAttribute<number, any>;
                    /**
                     * This attribute shall define the desired startup behavior of a device when it is supplied with power and
                     * this state shall be reflected in the OnOff attribute. If the value is null, the OnOff attribute is set to
                     * its previous value. Otherwise, the behavior is defined in the table defining StartUpOnOffEnum.
                     *
                     * This behavior does not apply to reboots associated with OTA. After an OTA restart, the OnOff attribute
                     * shall return to its value prior to the restart.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.6.6
                     */
                    readonly startUpOnOff: WritableAttribute<StartUpOnOff | null, any>;
                };
                readonly commands: {
                    /**
                     * The OffWithEffect command allows devices to be turned off using enhanced ways of fading.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4
                     */
                    readonly offWithEffect: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field specifies the fading effect to use when turning the device off. This field shall contain one of
                         * the non-reserved values listed in EffectIdentifierEnum.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.1
                         */
                        effectIdentifier: import("../tlv/TlvObject.js").FieldType<EffectIdentifier>;
                        /**
                         * This field is used to indicate which variant of the effect, indicated in the EffectIdentifier field, SHOULD
                         * be triggered. If the server does not support the given variant, it shall use the default variant. This field
                         * is dependent on the value of the EffectIdentifier field and shall contain one of the non-reserved values
                         * listed in either DelayedAllOffEffectVariantEnum or DyingLightEffectVariantEnum.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.2
                         */
                        effectVariant: import("../tlv/TlvObject.js").FieldType<number>;
                    }>, void, any>;
                    /**
                     * This command allows the recall of the settings when the device was turned off.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.5
                     */
                    readonly onWithRecallGlobalScene: Command<void, void, any>;
                    /**
                     * This command allows devices to be turned on for a specific duration with a guarded off duration so that
                     * SHOULD the device be subsequently turned off, further OnWithTimedOff commands, received during this time,
                     * are prevented from turning the devices back on. Further OnWithTimedOff commands received while the server
                     * is turned on, will update the period that the device is turned on.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6
                     */
                    readonly onWithTimedOff: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field contains information on how the server is to be operated.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.1
                         */
                        onOffControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                            /**
                             * Indicates a command is only accepted when in On state.
                             */
                            acceptOnlyWhenOn: BitFlag;
                        }>>;
                        /**
                         * This field is used to adjust the value of the OnTime attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.2
                         */
                        onTime: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field is used to adjust the value of the OffWaitTime attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.3
                         */
                        offWaitTime: import("../tlv/TlvObject.js").FieldType<number>;
                    }>, void, any>;
                };
            };
        }, {
            readonly flags: {
                readonly offOnly: false;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.2
                     */
                    readonly on: Command<void, void, any>;
                    /**
                     * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.3
                     */
                    readonly toggle: Command<void, void, any>;
                };
            };
        }, {
            readonly flags: {
                readonly lighting: true;
                readonly offOnly: true;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly deadFrontBehavior: true;
                readonly offOnly: true;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly offOnly: true;
                readonly lighting: false;
                readonly deadFrontBehavior: true;
            };
            readonly component: false;
        }];
    }, [{
        readonly commands: {
            /**
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.2
             */
            readonly on: Command<void, void, any>;
            /**
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.3
             */
            readonly toggle: Command<void, void, any>;
        };
    }]>;
    /**
     * Attributes and commands for turning devices on and off.
     *
     * OnOffCluster supports optional features that you can enable with the OnOffCluster.with() factory method.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.5
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    /**
     * @see {@link Complete}
     */
    const CompleteInstance: MutableCluster<{
        readonly id: import("@matter/general").Branded<6, "ClusterId">;
        readonly name: "OnOff";
        readonly revision: 6;
        readonly features: {
            /**
             * This cluster is used for a lighting application.
             *
             * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to FALSE, the
             * OnTime attribute shall be set to 0.
             *
             * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to TRUE, if the
             * value of the OnTime attribute is equal to 0, the server shall set the OffWaitTime attribute to 0.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.1
             */
            readonly lighting: BitFlag;
            /**
             * When this feature is supported, the device exposing this server cluster exhibits "dead front" behavior
             * when the "OnOff" attribute is FALSE (Off). This "dead front" behavior includes:
             *
             *   - clusters other than this cluster that are also exposed may respond with failures to Invoke and Write
             *     interactions. Such failure responses when in a "dead front" shall be with an INVALID_IN_STATE status
             *     code.
             *
             *   - clusters other than this cluster may change the values of their attributes to best-effort values, due
             *     to the actual values not being defined or available in this state. Device type specifications that
             *     require support for the DF feature SHOULD define what these best-effort values are.
             *
             *   - Report Transactions shall continue to be generated. Such transactions may include best-effort values
             *     as noted above.
             *
             *   - Event generation logic for clusters other than this cluster is unchanged (noting possible use of
             *     best-effort attribute values as in the preceding bullets).
             *
             * When this feature is supported and the OnOff attribute changes from TRUE to FALSE (e.g. when receiving an
             * Off Command, or due to a manual interaction on the device), it shall start executing this "dead front"
             * behavior.
             *
             * When this feature is supported and the OnOff attribute changes from FALSE to TRUE (e.g. when receiving an
             * On Command, or due to a manual interaction on the device), it shall stop executing this "dead front"
             * behavior.
             *
             * When this feature is supported, and any change of the "dead front" state leads to changes in attributes
             * of other clusters due to the "dead front" feature, these attribute changes shall NOT be skipped or
             * omitted from the usual processing associated with attribute changes. For example, if an attribute changes
             * from value 4 to null on "dead front" behavior due to an Off command being received, this change shall be
             * processed for reporting and subscriptions.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.2
             */
            readonly deadFrontBehavior: BitFlag;
            /**
             * When this feature is supported, the Off command shall be supported and the On and Toggle commands shall
             * NOT be supported.
             *
             * This feature is useful for devices which can be turned off via the Off command received by an instance of
             * this cluster but cannot be turned on via commands received by an instance of this cluster due to
             * regulatory requirements.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.3
             */
            readonly offOnly: BitFlag;
        };
        readonly attributes: {
            readonly globalSceneControl: Attribute<boolean, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    lighting: boolean;
                }];
            };
            readonly onTime: WritableAttribute<number, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    lighting: boolean;
                }];
            };
            readonly offWaitTime: WritableAttribute<number, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    lighting: boolean;
                }];
            };
            readonly startUpOnOff: WritableAttribute<StartUpOnOff | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    lighting: boolean;
                }];
            };
            readonly clusterRevision: Attribute<number, never>;
            readonly featureMap: Attribute<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                /**
                 * This cluster is used for a lighting application.
                 *
                 * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to FALSE, the
                 * OnTime attribute shall be set to 0.
                 *
                 * On receipt of a Level Control cluster command that causes the OnOff attribute to be set to TRUE, if the
                 * value of the OnTime attribute is equal to 0, the server shall set the OffWaitTime attribute to 0.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.1
                 */
                readonly lighting: BitFlag;
                /**
                 * When this feature is supported, the device exposing this server cluster exhibits "dead front" behavior
                 * when the "OnOff" attribute is FALSE (Off). This "dead front" behavior includes:
                 *
                 *   - clusters other than this cluster that are also exposed may respond with failures to Invoke and Write
                 *     interactions. Such failure responses when in a "dead front" shall be with an INVALID_IN_STATE status
                 *     code.
                 *
                 *   - clusters other than this cluster may change the values of their attributes to best-effort values, due
                 *     to the actual values not being defined or available in this state. Device type specifications that
                 *     require support for the DF feature SHOULD define what these best-effort values are.
                 *
                 *   - Report Transactions shall continue to be generated. Such transactions may include best-effort values
                 *     as noted above.
                 *
                 *   - Event generation logic for clusters other than this cluster is unchanged (noting possible use of
                 *     best-effort attribute values as in the preceding bullets).
                 *
                 * When this feature is supported and the OnOff attribute changes from TRUE to FALSE (e.g. when receiving an
                 * Off Command, or due to a manual interaction on the device), it shall start executing this "dead front"
                 * behavior.
                 *
                 * When this feature is supported and the OnOff attribute changes from FALSE to TRUE (e.g. when receiving an
                 * On Command, or due to a manual interaction on the device), it shall stop executing this "dead front"
                 * behavior.
                 *
                 * When this feature is supported, and any change of the "dead front" state leads to changes in attributes
                 * of other clusters due to the "dead front" feature, these attribute changes shall NOT be skipped or
                 * omitted from the usual processing associated with attribute changes. For example, if an attribute changes
                 * from value 4 to null on "dead front" behavior due to an Off command being received, this change shall be
                 * processed for reporting and subscriptions.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.2
                 */
                readonly deadFrontBehavior: BitFlag;
                /**
                 * When this feature is supported, the Off command shall be supported and the On and Toggle commands shall
                 * NOT be supported.
                 *
                 * This feature is useful for devices which can be turned off via the Off command received by an instance of
                 * this cluster but cannot be turned on via commands received by an instance of this cluster due to
                 * regulatory requirements.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.4.3
                 */
                readonly offOnly: BitFlag;
            }>, never>;
            readonly attributeList: Attribute<import("../index.js").AttributeId[], never>;
            readonly acceptedCommandList: Attribute<import("../index.js").CommandId[], never>;
            readonly generatedCommandList: Attribute<import("../index.js").CommandId[], never>;
            readonly onOff: Attribute<boolean, any>;
        };
        readonly commands: {
            readonly on: Command<void, void, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [];
            };
            readonly toggle: Command<void, void, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [];
            };
            readonly offWithEffect: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field specifies the fading effect to use when turning the device off. This field shall contain one of
                 * the non-reserved values listed in EffectIdentifierEnum.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.1
                 */
                effectIdentifier: import("../tlv/TlvObject.js").FieldType<EffectIdentifier>;
                /**
                 * This field is used to indicate which variant of the effect, indicated in the EffectIdentifier field, SHOULD
                 * be triggered. If the server does not support the given variant, it shall use the default variant. This field
                 * is dependent on the value of the EffectIdentifier field and shall contain one of the non-reserved values
                 * listed in either DelayedAllOffEffectVariantEnum or DyingLightEffectVariantEnum.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.4.2
                 */
                effectVariant: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    lighting: boolean;
                }];
            };
            readonly onWithRecallGlobalScene: Command<void, void, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    lighting: boolean;
                }];
            };
            readonly onWithTimedOff: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field contains information on how the server is to be operated.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.1
                 */
                onOffControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                    /**
                     * Indicates a command is only accepted when in On state.
                     */
                    acceptOnlyWhenOn: BitFlag;
                }>>;
                /**
                 * This field is used to adjust the value of the OnTime attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.2
                 */
                onTime: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field is used to adjust the value of the OffWaitTime attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.5.7.6.3
                 */
                offWaitTime: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    lighting: boolean;
                }];
            };
            readonly off: Command<void, void, any>;
        };
    }, []>;
    /**
     * This cluster supports all OnOff features. It may support illegal feature combinations.
     *
     * If you use this cluster you must manually specify which features are active and ensure the set of active features
     * is legal per the Matter specification.
     */
    interface Complete extends Identity<typeof CompleteInstance> {
    }
    const Complete: Complete;
}
export type OnOffCluster = OnOff.Cluster;
export declare const OnOffCluster: OnOff.Cluster;
//# sourceMappingURL=on-off.d.ts.map