/**
 * @license
 * Copyright 2022-2025 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, OptionalAttribute, WritableAttribute, OptionalWritableAttribute } from "../cluster/Cluster.js";
import { BitFlag } from "../schema/BitmapSchema.js";
import { Identity } from "#general";
export declare namespace BallastConfiguration {
    /**
     * @see {@link MatterSpecification.v13.Cluster} § 3.3.5.1
     */
    const BallastStatus: {
        /**
         * Operational state of the ballast.
         *
         * This bit shall indicate whether the ballast is operational.
         *
         *   • 0 = The ballast is fully operational
         *
         *   • 1 = The ballast is not fully operational
         *
         * @see {@link MatterSpecification.v13.Cluster} § 3.3.5.1.1
         */
        ballastNonOperational: BitFlag;
        /**
         * Operational state of the lamps.
         *
         * This bit shall indicate whether all lamps is operational.
         *
         *   • 0 = All lamps are operational
         *
         *   • 1 = One or more lamp is not in its socket or is faulty
         *
         * @see {@link MatterSpecification.v13.Cluster} § 3.3.5.1.2
         */
        lampFailure: BitFlag;
    };
    /**
     * @see {@link MatterSpecification.v13.Cluster} § 3.3.5.2
     */
    const LampAlarmMode: {
        /**
         * State of LampBurnHours alarm generation
         *
         * This bit shall indicate that the LampBurnHours attribute may generate an alarm.
         *
         * @see {@link MatterSpecification.v13.Cluster} § 3.3.5.2.1
         */
        lampBurnHours: BitFlag;
    };
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster<{
        readonly id: 769;
        readonly name: "BallastConfiguration";
        readonly revision: 4;
        readonly attributes: {
            /**
             * This attribute shall specify the minimum light output the ballast can achieve according to the dimming
             * light curve (see Dimming Curve).
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.1
             */
            readonly physicalMinLevel: Attribute<number, any>;
            /**
             * This attribute shall specify the maximum light output the ballast can achieve according to the dimming
             * light curve (see Dimming Curve).
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.2
             */
            readonly physicalMaxLevel: Attribute<number, any>;
            /**
             * This attribute shall specify the status of various aspects of the ballast or the connected lights, see
             * BallastStatusBitmap.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.3
             */
            readonly ballastStatus: OptionalAttribute<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                /**
                 * Operational state of the ballast.
                 *
                 * This bit shall indicate whether the ballast is operational.
                 *
                 *   • 0 = The ballast is fully operational
                 *
                 *   • 1 = The ballast is not fully operational
                 *
                 * @see {@link MatterSpecification.v13.Cluster} § 3.3.5.1.1
                 */
                ballastNonOperational: BitFlag;
                /**
                 * Operational state of the lamps.
                 *
                 * This bit shall indicate whether all lamps is operational.
                 *
                 *   • 0 = All lamps are operational
                 *
                 *   • 1 = One or more lamp is not in its socket or is faulty
                 *
                 * @see {@link MatterSpecification.v13.Cluster} § 3.3.5.1.2
                 */
                lampFailure: BitFlag;
            }>, any>;
            /**
             * This attribute shall specify the light output of the ballast according to the dimming light curve (see
             * Dimming Curve) when the Level Control Cluster’s CurrentLevel attribute equals to 1 (and the On/Off
             * Cluster’s OnOff attribute equals to TRUE).
             *
             * The value of this attribute shall be both greater than or equal to PhysicalMinLevel and less than or
             * equal to MaxLevel. If an attempt is made to set this attribute to a level where these conditions are not
             * met, a response shall be returned with status code set to CONSTRAINT_ERROR, and the level shall NOT be
             * set.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.4
             */
            readonly minLevel: WritableAttribute<number, any>;
            /**
             * This attribute shall specify the light output of the ballast according to the dimming light curve
             *
             * (see Dimming Curve) when the Level Control Cluster’s CurrentLevel attribute equals to 254 (and the
             * On/Off Cluster’s OnOff attribute equals to TRUE).
             *
             * The value of this attribute shall be both less than or equal to PhysicalMaxLevel and greater than or
             * equal to MinLevel. If an attempt is made to set this attribute to a level where these conditions are not
             * met, a response shall be returned with status code set to CONSTRAINT_ERROR, and the level shall NOT be
             * set.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.5
             */
            readonly maxLevel: WritableAttribute<number, any>;
            /**
             * This attribute shall specify the ballast factor, as a percentage, of the ballast/lamp combination, prior
             * to any adjustment.
             *
             * A value of null indicates in invalid value.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.6
             */
            readonly intrinsicBallastFactor: OptionalWritableAttribute<number | null, any>;
            /**
             * This attribute shall specify the multiplication factor, as a percentage, to be applied to the configured
             * light output of the lamps. A typical use for this attribute is to compensate for reduction in efficiency
             * over the lifetime of a lamp.
             *
             * The light output is given by
             *
             * actual light output = configured light output x BallastFactorAdjustment / 100%
             *
             * The range for this attribute is manufacturer dependent. If an attempt is made to set this attribute to a
             * level that cannot be supported, a response shall be returned with status code set to CONSTRAINT_ERROR,
             * and the level shall NOT be changed. The value of null indicates that ballast factor scaling is not in
             * use.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.7
             */
            readonly ballastFactorAdjustment: OptionalWritableAttribute<number | null, any>;
            /**
             * This attribute shall specify the number of lamps connected to this ballast. (Note 1: this number does
             * not take into account whether lamps are actually in their sockets or not).
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.8
             */
            readonly lampQuantity: Attribute<number, any>;
            /**
             * This attribute shall specify the type of lamps (including their wattage) connected to the ballast.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.9
             */
            readonly lampType: OptionalWritableAttribute<string, any>;
            /**
             * This attribute shall specify the name of the manufacturer of the currently connected lamps.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.10
             */
            readonly lampManufacturer: OptionalWritableAttribute<string, any>;
            /**
             * This attribute shall specify the number of hours of use the lamps are rated for by the manufacturer.
             *
             * A value of null indicates an invalid or unknown time.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.11
             */
            readonly lampRatedHours: OptionalWritableAttribute<number | null, any>;
            /**
             * This attribute shall specify the length of time, in hours, the currently connected lamps have been
             * operated, cumulative since the last re-lamping. Burn hours shall NOT be accumulated if the lamps are off.
             *
             * This attribute SHOULD be reset to zero (e.g., remotely) when the lamps are changed. If partially used
             * lamps are connected, LampBurnHours SHOULD be updated to reflect the burn hours of the lamps.
             *
             * A value of null indicates an invalid or unknown time.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.12
             */
            readonly lampBurnHours: OptionalWritableAttribute<number | null, any>;
            /**
             * This attribute shall specify which attributes may cause an alarm notification to be generated. Ain each
             * bit position means that its associated attribute is able to generate an alarm.
             *
             * NOTE All alarms are also logged in the alarm table – see Alarms cluster.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.13
             */
            readonly lampAlarmMode: OptionalWritableAttribute<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                /**
                 * State of LampBurnHours alarm generation
                 *
                 * This bit shall indicate that the LampBurnHours attribute may generate an alarm.
                 *
                 * @see {@link MatterSpecification.v13.Cluster} § 3.3.5.2.1
                 */
                lampBurnHours: BitFlag;
            }>, any>;
            /**
             * This attribute shall specify the number of hours the LampBurnHours attribute may reach before an alarm
             * is generated.
             *
             * If the Alarms cluster is not present on the same device this attribute is not used and thus may be
             * omitted (see Dependencies).
             *
             * The Alarm Code field included in the generated alarm shall be 0x01.
             *
             * If this attribute has the value of null, then this alarm shall NOT be generated.
             *
             * @see {@link MatterSpecification.v13.Cluster} § 3.3.6.14
             */
            readonly lampBurnHoursTripPoint: OptionalWritableAttribute<number | null, any>;
        };
    }, []>;
    /**
     * This cluster is used for configuring a lighting ballast.
     *
     * NOTE Support for Ballast Configuration cluster is provisional.
     *
     * @see {@link MatterSpecification.v13.Cluster} § 3.3
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    const Complete: Cluster;
}
export type BallastConfigurationCluster = BallastConfiguration.Cluster;
export declare const BallastConfigurationCluster: BallastConfiguration.Cluster;
//# sourceMappingURL=ballast-configuration.d.ts.map