/**
 * @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, OptionalWritableAttribute, Event, OptionalEvent, OptionalFixedAttribute, OptionalCommand } from "../cluster/Cluster.js";
import { TypeFromSchema } from "../tlv/TlvSchema.js";
import { BitFlag } from "../schema/BitmapSchema.js";
import { Identity } from "#general";
export declare namespace SmokeCoAlarm {
    /**
     * These are optional features supported by SmokeCoAlarmCluster.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.4
     */
    enum Feature {
        /**
         * SmokeAlarm (SMOKE)
         *
         * Supports Smoke alarm
         */
        SmokeAlarm = "SmokeAlarm",
        /**
         * CoAlarm (CO)
         *
         * Supports CO alarm
         */
        CoAlarm = "CoAlarm"
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.1
     */
    enum AlarmState {
        /**
         * Nominal state, the device is not alarming
         *
         * This value shall indicate that this alarm is not alarming.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.1.1
         */
        Normal = 0,
        /**
         * Warning state
         *
         * This value shall indicate that this alarm is in a warning state. Alarms in this state SHOULD be subject to
         * being muted via physical interaction.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.1.2
         */
        Warning = 1,
        /**
         * Critical state
         *
         * This value shall indicate that this alarm is in a critical state. Alarms in this state shall NOT be subject
         * to being muted via physical interaction.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.1.3
         */
        Critical = 2
    }
    /**
     * This value shall indicate that the smoke sensor has nominal contamination levels, no customer action is required.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.6
     */
    enum ContaminationState {
        /**
         * Nominal state, the sensor is not contaminated
         */
        Normal = 0,
        /**
         * Low contamination
         *
         * This value shall indicate that the smoke sensor has detectable contamination levels, but the contamination is
         * too low to cause a visible or audible alarm.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.6.2
         */
        Low = 1,
        /**
         * Warning state
         *
         * This value shall indicate that the smoke sensor has contamination levels in a warning state. At this level,
         * the contamination may cause a visible or audible alarm. User intervention is suggested.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.6.3
         */
        Warning = 2,
        /**
         * Critical state, will cause nuisance alarms
         *
         * This value shall indicate that the smoke sensor has contamination levels in a critical state. At this level,
         * the contamination should cause a visible or audible alarm. User intervention is required. Critical
         * contamination of the sensor shall also be reflected as a HardwareFault.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.6.4
         */
        Critical = 3
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.2
     */
    enum Sensitivity {
        /**
         * High sensitivity
         */
        High = 0,
        /**
         * Standard Sensitivity
         */
        Standard = 1,
        /**
         * Low sensitivity
         */
        Low = 2
    }
    /**
     * Body of the SmokeCoAlarm smokeAlarm event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.1
     */
    const TlvSmokeAlarmEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the current value of the SmokeState attribute.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.1.1
         */
        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
    }>;
    /**
     * Body of the SmokeCoAlarm smokeAlarm event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.1
     */
    interface SmokeAlarmEvent extends TypeFromSchema<typeof TlvSmokeAlarmEvent> {
    }
    /**
     * Body of the SmokeCoAlarm interconnectSmokeAlarm event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.9
     */
    const TlvInterconnectSmokeAlarmEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the current value of the InterconnectSmokeAlarm attribute.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.9.1
         */
        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
    }>;
    /**
     * Body of the SmokeCoAlarm interconnectSmokeAlarm event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.9
     */
    interface InterconnectSmokeAlarmEvent extends TypeFromSchema<typeof TlvInterconnectSmokeAlarmEvent> {
    }
    /**
     * Body of the SmokeCoAlarm coAlarm event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.2
     */
    const TlvCoAlarmEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the current value of the COState attribute.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.2.1
         */
        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
    }>;
    /**
     * Body of the SmokeCoAlarm coAlarm event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.2
     */
    interface CoAlarmEvent extends TypeFromSchema<typeof TlvCoAlarmEvent> {
    }
    /**
     * Body of the SmokeCoAlarm interconnectCoAlarm event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.10
     */
    const TlvInterconnectCoAlarmEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the current value of the InterconnectCOAlarm attribute.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.10.1
         */
        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
    }>;
    /**
     * Body of the SmokeCoAlarm interconnectCoAlarm event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.10
     */
    interface InterconnectCoAlarmEvent extends TypeFromSchema<typeof TlvInterconnectCoAlarmEvent> {
    }
    /**
     * This value shall indicate that this alarm is not alarming.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.3
     */
    enum ExpressedState {
        /**
         * Nominal state, the device is not alarming
         */
        Normal = 0,
        /**
         * Smoke Alarm state
         *
         * This value shall indicate that this alarm is currently expressing visual indication of Smoke Alarm. This
         * value shall indicate that the alarm is currently expressing audible indication of Smoke Alarm unless the
         * DeviceMuted attribute is supported and set to Muted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.3.2
         */
        SmokeAlarm = 1,
        /**
         * CO Alarm state
         *
         * This value shall indicate that this alarm is currently expressing visual indication of CO Alarm. This value
         * shall indicate that the alarm is currently expressing audible indication of CO Alarm unless the DeviceMuted
         * attribute is supported and set to Muted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.3.3
         */
        CoAlarm = 2,
        /**
         * Battery Alert State
         *
         * This value shall indicate that this alarm is currently expressing visual indication of Critical Low Battery.
         * This value shall indicate that the alarm is currently expressing audible indication of Critical Low Battery
         * unless the DeviceMuted attribute is supported and set to Muted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.3.4
         */
        BatteryAlert = 3,
        /**
         * Test in Progress
         *
         * This value shall indicate that this alarm is currently expressing visual and audible indication of SelfTest.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.3.5
         */
        Testing = 4,
        /**
         * Hardware Fault Alert State
         *
         * This value shall indicate that this alarm is currently expressing visual indication of Hardware Fault. This
         * value shall indicate that the alarm is currently expressing audible indication of Hardware Fault unless the
         * DeviceMuted attribute is supported and set to Muted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.3.6
         */
        HardwareFault = 5,
        /**
         * End of Service Alert State
         *
         * This value shall indicate that this alarm is currently expressing visual indication of End Of Service. This
         * value shall indicate that the alarm is currently expressing audible indication of End of Service unless the
         * DeviceMuted attribute is supported and set to Muted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.3.7
         */
        EndOfService = 6,
        /**
         * Interconnected Smoke Alarm State
         *
         * This value shall indicate that this alarm is currently expressing visual indication of Smoke Alarm caused by
         * Interconnect. This value shall indicate that the alarm is currently expressing audible indication of Smoke
         * Alarm caused by Interconnect unless the DeviceMuted attribute is supported and set to Muted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.3.8
         */
        InterconnectSmoke = 7,
        /**
         * Interconnected CO Alarm State
         *
         * This value shall indicate that this alarm is currently expressing visual indication of CO Alarm caused by
         * Interconnect. This value shall indicate that the alarm is currently expressing audible indication of CO Alarm
         * caused by Interconnect unless the DeviceMuted attribute is supported and set to Muted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.3.9
         */
        InterconnectCo = 8
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.4
     */
    enum MuteState {
        /**
         * Not Muted
         *
         * This value shall indicate that the device is not muted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.4.1
         */
        NotMuted = 0,
        /**
         * Muted
         *
         * This value shall indicate that the device is muted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.4.2
         */
        Muted = 1
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.5
     */
    enum EndOfService {
        /**
         * Device has not expired
         *
         * This value shall indicate that the device has not yet reached its end of service, and does not need to be
         * imminently replaced.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.5.2
         */
        Normal = 0,
        /**
         * Device has reached its end of service
         *
         * This value shall indicate that the device has reached its end of service, and needs to be replaced.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.5.5.1
         */
        Expired = 1
    }
    /**
     * Body of the SmokeCoAlarm lowBattery event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.3
     */
    const TlvLowBatteryEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the current value of the BatteryAlert attribute.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.3.1
         */
        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
    }>;
    /**
     * Body of the SmokeCoAlarm lowBattery event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.3
     */
    interface LowBatteryEvent extends TypeFromSchema<typeof TlvLowBatteryEvent> {
    }
    /**
     * A SmokeCoAlarmCluster supports these elements if it supports feature SmokeAlarm.
     */
    const SmokeAlarmComponent: {
        readonly attributes: {
            /**
             * Indicates whether the device’s smoke sensor is currently triggering a smoke alarm.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.2
             */
            readonly smokeState: Attribute<AlarmState, any>;
            /**
             * Indicates the contamination level of the smoke sensor.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.11
             */
            readonly contaminationState: OptionalAttribute<ContaminationState, any>;
            /**
             * Indicates the sensitivity level of the smoke sensor configured on the device.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.12
             */
            readonly smokeSensitivityLevel: OptionalWritableAttribute<Sensitivity, any>;
        };
        readonly events: {
            /**
             * This event shall be generated when SmokeState attribute changes to either Warning or Critical state.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.1
             */
            readonly smokeAlarm: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the SmokeState attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.1.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any>;
            /**
             * This event shall be generated when the device hosting the server receives a smoke alarm from an
             * interconnected sensor.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.9
             */
            readonly interconnectSmokeAlarm: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the InterconnectSmokeAlarm attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.9.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any>;
        };
    };
    /**
     * A SmokeCoAlarmCluster supports these elements if it supports feature CoAlarm.
     */
    const CoAlarmComponent: {
        readonly attributes: {
            /**
             * Indicates whether the device’s CO sensor is currently triggering a CO alarm.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.3
             */
            readonly coState: Attribute<AlarmState, any>;
        };
        readonly events: {
            /**
             * This event shall be generated when COState attribute changes to either Warning or Critical state.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.2
             */
            readonly coAlarm: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the COState attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.2.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any>;
            /**
             * This event shall be generated when the device hosting the server receives a CO alarm from an
             * interconnected sensor.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.10
             */
            readonly interconnectCoAlarm: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the InterconnectCOAlarm attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.10.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any>;
        };
    };
    /**
     * These elements and properties are present in all SmokeCoAlarm clusters.
     */
    const Base: {
        readonly id: 92;
        readonly name: "SmokeCoAlarm";
        readonly revision: 1;
        readonly features: {
            /**
             * Supports Smoke alarm
             */
            readonly smokeAlarm: BitFlag;
            /**
             * Supports CO alarm
             */
            readonly coAlarm: BitFlag;
        };
        readonly attributes: {
            /**
             * Indicates the visibly- and audibly-expressed state of the alarm. When multiple alarm conditions are being
             * reflected in the server, this attribute shall indicate the condition with the highest priority. Priority
             * order of conditions is determined by the manufacturer and shall be supplied as a part of certification
             * procedure. If the value of ExpressedState is not Normal, the attribute corresponding to the value shall
             * NOT be Normal. For example, if the ExpressedState is set to SmokeAlarm, the value of the SmokeState will
             * indicate the severity of the alarm (Warning or Critical). Clients SHOULD also read the other attributes
             * to be aware of further alarm conditions beyond the one indicated in ExpressedState.
             *
             * Visible expression is typically a LED light pattern. Audible expression is a horn or speaker pattern.
             * Audible expression shall BE suppressed if the DeviceMuted attribute is supported and set to Muted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.1
             */
            readonly expressedState: Attribute<ExpressedState, any>;
            /**
             * Indicates whether the power resource fault detection mechanism is currently triggered at the device. If
             * the detection mechanism is triggered, this attribute shall be set to Warning or Critical, otherwise it
             * shall be set to Normal. The battery state shall also be reflected in the Power Source cluster
             * representing the device’s battery using the appropriate supported attributes and events.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.4
             */
            readonly batteryAlert: Attribute<AlarmState, any>;
            /**
             * Indicates the whether the audible expression of the device is currently muted. Audible expression is
             * typically a horn or speaker pattern.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.5
             */
            readonly deviceMuted: OptionalAttribute<MuteState, any>;
            /**
             * Indicates whether the device self-test is currently activated. If the device self-test is activated, this
             * attribute shall be set to True, otherwise it shall be set to False.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.6
             */
            readonly testInProgress: Attribute<boolean, any>;
            /**
             * Indicates whether the hardware fault detection mechanism is currently triggered. If the detection
             * mechanism is triggered, this attribute shall be set to True, otherwise it shall be set to False.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.7
             */
            readonly hardwareFaultAlert: Attribute<boolean, any>;
            /**
             * Indicates whether the end-of-service has been triggered at the device. This attribute shall be set to
             * Expired when the device reaches the end-of-service.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.8
             */
            readonly endOfServiceAlert: Attribute<EndOfService, any>;
            /**
             * Indicates whether the interconnected smoke alarm is currently triggering by branching devices. When the
             * interconnected smoke alarm is being triggered, this attribute shall be set to Warning or Critical,
             * otherwise it shall be set to Normal.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.9
             */
            readonly interconnectSmokeAlarm: OptionalAttribute<AlarmState, any>;
            /**
             * Indicates whether the interconnected CO alarm is currently triggering by branching devices. When the
             * interconnected CO alarm is being triggered, this attribute shall be set to Warning or Critical, otherwise
             * it shall be set to Normal.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.10
             */
            readonly interconnectCoAlarm: OptionalAttribute<AlarmState, any>;
            /**
             * Indicates the date when the device reaches its stated expiry date. After the ExpiryDate has been reached,
             * the EndOfServiceAlert shall start to be triggered. To account for better customer experience across time
             * zones, the EndOfServiceAlert may be delayed by up to 24 hours after the ExpiryDate. Similarly, clients
             * may delay any actions based on the ExpiryDate by up to 24 hours to best align with the local time zone.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.13
             */
            readonly expiryDate: OptionalFixedAttribute<number, any>;
        };
        readonly commands: {
            /**
             * This command shall initiate a device self-test. The return status shall indicate whether the test was
             * successfully initiated. Only one SelfTestRequest may be processed at a time. When the value of the
             * ExpressedState attribute is any of SmokeAlarm, COAlarm, Testing, InterconnectSmoke, InterconnectCO, the
             * device shall NOT execute the self-test, and shall return status code BUSY.
             *
             * Upon successful acceptance of SelfTestRequest, the TestInProgress attribute shall be set to True and
             * ExpressedState attribute shall be set to Testing. Any faults identified during the test shall be
             * reflected in the appropriate attributes and events. Upon completion of the self test procedure, the
             * SelfTestComplete event shall be generated, the TestInProgress attribute shall be set to False and
             * ExpressedState attribute shall be updated to reflect the current state of the server.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.7.1
             */
            readonly selfTestRequest: OptionalCommand<void, void, any>;
        };
        readonly events: {
            /**
             * This event shall be generated when BatteryAlert attribute changes to either Warning or Critical state.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.3
             */
            readonly lowBattery: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the BatteryAlert attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.3.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any>;
            /**
             * This event shall be generated when the device detects a hardware fault that leads to setting
             * HardwareFaultAlert to True.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.4
             */
            readonly hardwareFault: Event<void, any>;
            /**
             * This event shall be generated when the EndOfServiceAlert is set to Expired.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.5
             */
            readonly endOfService: Event<void, any>;
            /**
             * This event shall be generated when the SelfTest completes, and the attribute TestInProgress changes to
             * False.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.6
             */
            readonly selfTestComplete: Event<void, any>;
            /**
             * This event shall be generated when the DeviceMuted attribute changes to Muted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.7
             */
            readonly alarmMuted: OptionalEvent<void, any>;
            /**
             * This event shall be generated when DeviceMuted attribute changes to NotMuted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.8
             */
            readonly muteEnded: OptionalEvent<void, any>;
            /**
             * This event shall be generated when ExpressedState attribute returns to Normal state.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.11
             */
            readonly allClear: Event<void, any>;
        };
        /**
         * This metadata controls which SmokeCoAlarmCluster elements matter.js activates for specific feature
         * combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly smokeAlarm: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * Indicates whether the device’s smoke sensor is currently triggering a smoke alarm.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.2
                     */
                    readonly smokeState: Attribute<AlarmState, any>;
                    /**
                     * Indicates the contamination level of the smoke sensor.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.11
                     */
                    readonly contaminationState: OptionalAttribute<ContaminationState, any>;
                    /**
                     * Indicates the sensitivity level of the smoke sensor configured on the device.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.12
                     */
                    readonly smokeSensitivityLevel: OptionalWritableAttribute<Sensitivity, any>;
                };
                readonly events: {
                    /**
                     * This event shall be generated when SmokeState attribute changes to either Warning or Critical state.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.1
                     */
                    readonly smokeAlarm: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the current value of the SmokeState attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.1.1
                         */
                        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
                    }>, any>;
                    /**
                     * This event shall be generated when the device hosting the server receives a smoke alarm from an
                     * interconnected sensor.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.9
                     */
                    readonly interconnectSmokeAlarm: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the current value of the InterconnectSmokeAlarm attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.9.1
                         */
                        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
                    }>, any>;
                };
            };
        }, {
            readonly flags: {
                readonly coAlarm: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * Indicates whether the device’s CO sensor is currently triggering a CO alarm.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.3
                     */
                    readonly coState: Attribute<AlarmState, any>;
                };
                readonly events: {
                    /**
                     * This event shall be generated when COState attribute changes to either Warning or Critical state.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.2
                     */
                    readonly coAlarm: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the current value of the COState attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.2.1
                         */
                        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
                    }>, any>;
                    /**
                     * This event shall be generated when the device hosting the server receives a CO alarm from an
                     * interconnected sensor.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.10
                     */
                    readonly interconnectCoAlarm: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the current value of the InterconnectCOAlarm attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.10.1
                         */
                        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
                    }>, any>;
                };
            };
        }, {
            readonly flags: {
                readonly smokeAlarm: false;
                readonly coAlarm: false;
            };
            readonly component: false;
        }];
    };
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster.ExtensibleOnly<{
        readonly id: 92;
        readonly name: "SmokeCoAlarm";
        readonly revision: 1;
        readonly features: {
            /**
             * Supports Smoke alarm
             */
            readonly smokeAlarm: BitFlag;
            /**
             * Supports CO alarm
             */
            readonly coAlarm: BitFlag;
        };
        readonly attributes: {
            /**
             * Indicates the visibly- and audibly-expressed state of the alarm. When multiple alarm conditions are being
             * reflected in the server, this attribute shall indicate the condition with the highest priority. Priority
             * order of conditions is determined by the manufacturer and shall be supplied as a part of certification
             * procedure. If the value of ExpressedState is not Normal, the attribute corresponding to the value shall
             * NOT be Normal. For example, if the ExpressedState is set to SmokeAlarm, the value of the SmokeState will
             * indicate the severity of the alarm (Warning or Critical). Clients SHOULD also read the other attributes
             * to be aware of further alarm conditions beyond the one indicated in ExpressedState.
             *
             * Visible expression is typically a LED light pattern. Audible expression is a horn or speaker pattern.
             * Audible expression shall BE suppressed if the DeviceMuted attribute is supported and set to Muted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.1
             */
            readonly expressedState: Attribute<ExpressedState, any>;
            /**
             * Indicates whether the power resource fault detection mechanism is currently triggered at the device. If
             * the detection mechanism is triggered, this attribute shall be set to Warning or Critical, otherwise it
             * shall be set to Normal. The battery state shall also be reflected in the Power Source cluster
             * representing the device’s battery using the appropriate supported attributes and events.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.4
             */
            readonly batteryAlert: Attribute<AlarmState, any>;
            /**
             * Indicates the whether the audible expression of the device is currently muted. Audible expression is
             * typically a horn or speaker pattern.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.5
             */
            readonly deviceMuted: OptionalAttribute<MuteState, any>;
            /**
             * Indicates whether the device self-test is currently activated. If the device self-test is activated, this
             * attribute shall be set to True, otherwise it shall be set to False.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.6
             */
            readonly testInProgress: Attribute<boolean, any>;
            /**
             * Indicates whether the hardware fault detection mechanism is currently triggered. If the detection
             * mechanism is triggered, this attribute shall be set to True, otherwise it shall be set to False.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.7
             */
            readonly hardwareFaultAlert: Attribute<boolean, any>;
            /**
             * Indicates whether the end-of-service has been triggered at the device. This attribute shall be set to
             * Expired when the device reaches the end-of-service.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.8
             */
            readonly endOfServiceAlert: Attribute<EndOfService, any>;
            /**
             * Indicates whether the interconnected smoke alarm is currently triggering by branching devices. When the
             * interconnected smoke alarm is being triggered, this attribute shall be set to Warning or Critical,
             * otherwise it shall be set to Normal.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.9
             */
            readonly interconnectSmokeAlarm: OptionalAttribute<AlarmState, any>;
            /**
             * Indicates whether the interconnected CO alarm is currently triggering by branching devices. When the
             * interconnected CO alarm is being triggered, this attribute shall be set to Warning or Critical, otherwise
             * it shall be set to Normal.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.10
             */
            readonly interconnectCoAlarm: OptionalAttribute<AlarmState, any>;
            /**
             * Indicates the date when the device reaches its stated expiry date. After the ExpiryDate has been reached,
             * the EndOfServiceAlert shall start to be triggered. To account for better customer experience across time
             * zones, the EndOfServiceAlert may be delayed by up to 24 hours after the ExpiryDate. Similarly, clients
             * may delay any actions based on the ExpiryDate by up to 24 hours to best align with the local time zone.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.13
             */
            readonly expiryDate: OptionalFixedAttribute<number, any>;
        };
        readonly commands: {
            /**
             * This command shall initiate a device self-test. The return status shall indicate whether the test was
             * successfully initiated. Only one SelfTestRequest may be processed at a time. When the value of the
             * ExpressedState attribute is any of SmokeAlarm, COAlarm, Testing, InterconnectSmoke, InterconnectCO, the
             * device shall NOT execute the self-test, and shall return status code BUSY.
             *
             * Upon successful acceptance of SelfTestRequest, the TestInProgress attribute shall be set to True and
             * ExpressedState attribute shall be set to Testing. Any faults identified during the test shall be
             * reflected in the appropriate attributes and events. Upon completion of the self test procedure, the
             * SelfTestComplete event shall be generated, the TestInProgress attribute shall be set to False and
             * ExpressedState attribute shall be updated to reflect the current state of the server.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.7.1
             */
            readonly selfTestRequest: OptionalCommand<void, void, any>;
        };
        readonly events: {
            /**
             * This event shall be generated when BatteryAlert attribute changes to either Warning or Critical state.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.3
             */
            readonly lowBattery: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the BatteryAlert attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.3.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any>;
            /**
             * This event shall be generated when the device detects a hardware fault that leads to setting
             * HardwareFaultAlert to True.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.4
             */
            readonly hardwareFault: Event<void, any>;
            /**
             * This event shall be generated when the EndOfServiceAlert is set to Expired.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.5
             */
            readonly endOfService: Event<void, any>;
            /**
             * This event shall be generated when the SelfTest completes, and the attribute TestInProgress changes to
             * False.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.6
             */
            readonly selfTestComplete: Event<void, any>;
            /**
             * This event shall be generated when the DeviceMuted attribute changes to Muted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.7
             */
            readonly alarmMuted: OptionalEvent<void, any>;
            /**
             * This event shall be generated when DeviceMuted attribute changes to NotMuted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.8
             */
            readonly muteEnded: OptionalEvent<void, any>;
            /**
             * This event shall be generated when ExpressedState attribute returns to Normal state.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.11
             */
            readonly allClear: Event<void, any>;
        };
        /**
         * This metadata controls which SmokeCoAlarmCluster elements matter.js activates for specific feature
         * combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly smokeAlarm: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * Indicates whether the device’s smoke sensor is currently triggering a smoke alarm.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.2
                     */
                    readonly smokeState: Attribute<AlarmState, any>;
                    /**
                     * Indicates the contamination level of the smoke sensor.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.11
                     */
                    readonly contaminationState: OptionalAttribute<ContaminationState, any>;
                    /**
                     * Indicates the sensitivity level of the smoke sensor configured on the device.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.12
                     */
                    readonly smokeSensitivityLevel: OptionalWritableAttribute<Sensitivity, any>;
                };
                readonly events: {
                    /**
                     * This event shall be generated when SmokeState attribute changes to either Warning or Critical state.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.1
                     */
                    readonly smokeAlarm: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the current value of the SmokeState attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.1.1
                         */
                        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
                    }>, any>;
                    /**
                     * This event shall be generated when the device hosting the server receives a smoke alarm from an
                     * interconnected sensor.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.9
                     */
                    readonly interconnectSmokeAlarm: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the current value of the InterconnectSmokeAlarm attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.9.1
                         */
                        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
                    }>, any>;
                };
            };
        }, {
            readonly flags: {
                readonly coAlarm: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * Indicates whether the device’s CO sensor is currently triggering a CO alarm.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.3
                     */
                    readonly coState: Attribute<AlarmState, any>;
                };
                readonly events: {
                    /**
                     * This event shall be generated when COState attribute changes to either Warning or Critical state.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.2
                     */
                    readonly coAlarm: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the current value of the COState attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.2.1
                         */
                        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
                    }>, any>;
                    /**
                     * This event shall be generated when the device hosting the server receives a CO alarm from an
                     * interconnected sensor.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.10
                     */
                    readonly interconnectCoAlarm: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the current value of the InterconnectCOAlarm attribute.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.10.1
                         */
                        alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
                    }>, any>;
                };
            };
        }, {
            readonly flags: {
                readonly smokeAlarm: false;
                readonly coAlarm: false;
            };
            readonly component: false;
        }];
    }>;
    /**
     * This cluster provides an interface for observing and managing the state of smoke and CO alarms.
     *
     * Per the Matter specification you cannot use {@link SmokeCoAlarmCluster} without enabling certain feature
     * combinations. You must use the {@link with} factory method to obtain a working cluster.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.11
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    /**
     * @see {@link Complete}
     */
    const CompleteInstance: MutableCluster<{
        readonly id: 92;
        readonly name: "SmokeCoAlarm";
        readonly revision: 1;
        readonly features: {
            /**
             * Supports Smoke alarm
             */
            readonly smokeAlarm: BitFlag;
            /**
             * Supports CO alarm
             */
            readonly coAlarm: BitFlag;
        };
        readonly attributes: {
            readonly smokeState: Attribute<AlarmState, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    smokeAlarm: boolean;
                }];
            };
            readonly coState: Attribute<AlarmState, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    coAlarm: boolean;
                }];
            };
            readonly contaminationState: OptionalAttribute<ContaminationState, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    smokeAlarm: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly smokeSensitivityLevel: OptionalWritableAttribute<Sensitivity, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    smokeAlarm: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            /**
             * Indicates the visibly- and audibly-expressed state of the alarm. When multiple alarm conditions are being
             * reflected in the server, this attribute shall indicate the condition with the highest priority. Priority
             * order of conditions is determined by the manufacturer and shall be supplied as a part of certification
             * procedure. If the value of ExpressedState is not Normal, the attribute corresponding to the value shall
             * NOT be Normal. For example, if the ExpressedState is set to SmokeAlarm, the value of the SmokeState will
             * indicate the severity of the alarm (Warning or Critical). Clients SHOULD also read the other attributes
             * to be aware of further alarm conditions beyond the one indicated in ExpressedState.
             *
             * Visible expression is typically a LED light pattern. Audible expression is a horn or speaker pattern.
             * Audible expression shall BE suppressed if the DeviceMuted attribute is supported and set to Muted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.1
             */
            readonly expressedState: Attribute<ExpressedState, any>;
            /**
             * Indicates whether the power resource fault detection mechanism is currently triggered at the device. If
             * the detection mechanism is triggered, this attribute shall be set to Warning or Critical, otherwise it
             * shall be set to Normal. The battery state shall also be reflected in the Power Source cluster
             * representing the device’s battery using the appropriate supported attributes and events.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.4
             */
            readonly batteryAlert: Attribute<AlarmState, any>;
            /**
             * Indicates the whether the audible expression of the device is currently muted. Audible expression is
             * typically a horn or speaker pattern.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.5
             */
            readonly deviceMuted: OptionalAttribute<MuteState, any>;
            /**
             * Indicates whether the device self-test is currently activated. If the device self-test is activated, this
             * attribute shall be set to True, otherwise it shall be set to False.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.6
             */
            readonly testInProgress: Attribute<boolean, any>;
            /**
             * Indicates whether the hardware fault detection mechanism is currently triggered. If the detection
             * mechanism is triggered, this attribute shall be set to True, otherwise it shall be set to False.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.7
             */
            readonly hardwareFaultAlert: Attribute<boolean, any>;
            /**
             * Indicates whether the end-of-service has been triggered at the device. This attribute shall be set to
             * Expired when the device reaches the end-of-service.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.8
             */
            readonly endOfServiceAlert: Attribute<EndOfService, any>;
            /**
             * Indicates whether the interconnected smoke alarm is currently triggering by branching devices. When the
             * interconnected smoke alarm is being triggered, this attribute shall be set to Warning or Critical,
             * otherwise it shall be set to Normal.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.9
             */
            readonly interconnectSmokeAlarm: OptionalAttribute<AlarmState, any>;
            /**
             * Indicates whether the interconnected CO alarm is currently triggering by branching devices. When the
             * interconnected CO alarm is being triggered, this attribute shall be set to Warning or Critical, otherwise
             * it shall be set to Normal.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.10
             */
            readonly interconnectCoAlarm: OptionalAttribute<AlarmState, any>;
            /**
             * Indicates the date when the device reaches its stated expiry date. After the ExpiryDate has been reached,
             * the EndOfServiceAlert shall start to be triggered. To account for better customer experience across time
             * zones, the EndOfServiceAlert may be delayed by up to 24 hours after the ExpiryDate. Similarly, clients
             * may delay any actions based on the ExpiryDate by up to 24 hours to best align with the local time zone.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.6.13
             */
            readonly expiryDate: OptionalFixedAttribute<number, any>;
        };
        readonly commands: {
            /**
             * This command shall initiate a device self-test. The return status shall indicate whether the test was
             * successfully initiated. Only one SelfTestRequest may be processed at a time. When the value of the
             * ExpressedState attribute is any of SmokeAlarm, COAlarm, Testing, InterconnectSmoke, InterconnectCO, the
             * device shall NOT execute the self-test, and shall return status code BUSY.
             *
             * Upon successful acceptance of SelfTestRequest, the TestInProgress attribute shall be set to True and
             * ExpressedState attribute shall be set to Testing. Any faults identified during the test shall be
             * reflected in the appropriate attributes and events. Upon completion of the self test procedure, the
             * SelfTestComplete event shall be generated, the TestInProgress attribute shall be set to False and
             * ExpressedState attribute shall be updated to reflect the current state of the server.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.7.1
             */
            readonly selfTestRequest: OptionalCommand<void, void, any>;
        };
        readonly events: {
            readonly smokeAlarm: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the SmokeState attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.1.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    smokeAlarm: boolean;
                }];
            };
            readonly coAlarm: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the COState attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.2.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    coAlarm: boolean;
                }];
            };
            readonly interconnectSmokeAlarm: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the InterconnectSmokeAlarm attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.9.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    smokeAlarm: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly interconnectCoAlarm: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the InterconnectCOAlarm attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.10.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    coAlarm: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            /**
             * This event shall be generated when BatteryAlert attribute changes to either Warning or Critical state.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.3
             */
            readonly lowBattery: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the current value of the BatteryAlert attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.3.1
                 */
                alarmSeverityLevel: import("../tlv/TlvObject.js").FieldType<AlarmState>;
            }>, any>;
            /**
             * This event shall be generated when the device detects a hardware fault that leads to setting
             * HardwareFaultAlert to True.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.4
             */
            readonly hardwareFault: Event<void, any>;
            /**
             * This event shall be generated when the EndOfServiceAlert is set to Expired.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.5
             */
            readonly endOfService: Event<void, any>;
            /**
             * This event shall be generated when the SelfTest completes, and the attribute TestInProgress changes to
             * False.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.6
             */
            readonly selfTestComplete: Event<void, any>;
            /**
             * This event shall be generated when the DeviceMuted attribute changes to Muted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.7
             */
            readonly alarmMuted: OptionalEvent<void, any>;
            /**
             * This event shall be generated when DeviceMuted attribute changes to NotMuted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.8
             */
            readonly muteEnded: OptionalEvent<void, any>;
            /**
             * This event shall be generated when ExpressedState attribute returns to Normal state.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.11.8.11
             */
            readonly allClear: Event<void, any>;
        };
    }, []>;
    /**
     * This cluster supports all SmokeCoAlarm 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 SmokeCoAlarmCluster = SmokeCoAlarm.Cluster;
export declare const SmokeCoAlarmCluster: SmokeCoAlarm.Cluster;
//# sourceMappingURL=smoke-co-alarm.d.ts.map