/**
 * @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 { OptionalAttribute, Attribute, FixedAttribute, OptionalEvent } from "../cluster/Cluster.js";
import { TypeFromSchema } from "../tlv/TlvSchema.js";
import { BitFlag } from "../schema/BitmapSchema.js";
import { Identity } from "#general";
export declare namespace ElectricalPowerMeasurement {
    /**
     * These are optional features supported by ElectricalPowerMeasurementCluster.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.13.4
     */
    enum Feature {
        /**
         * DirectCurrent (DIRC)
         *
         * This feature indicates the cluster can measure a direct current.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.1
         */
        DirectCurrent = "DirectCurrent",
        /**
         * AlternatingCurrent (ALTC)
         *
         * This feature indicates the cluster can measure an alternating current.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.2
         */
        AlternatingCurrent = "AlternatingCurrent",
        /**
         * PolyphasePower (POLY)
         *
         * This feature indicates the cluster represents the collective measurements for a Polyphase power supply.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.3
         */
        PolyphasePower = "PolyphasePower",
        /**
         * Harmonics (HARM)
         *
         * This feature indicates the cluster can measure the harmonics of an alternating current.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.4
         */
        Harmonics = "Harmonics",
        /**
         * PowerQuality (PWRQ)
         *
         * This feature indicates the cluster can measure the harmonic phases of an alternating current.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.5
         */
        PowerQuality = "PowerQuality"
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4
     */
    const TlvHarmonicMeasurement: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall be the order of the harmonic being measured. Typically this is an odd number, but servers
         * may choose to report even harmonics.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.1
         */
        order: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall be the measured value for the given harmonic order.
         *
         * For the Harmonic Currents attribute, this value is the most recently measured harmonic current reading in
         * milliamps (mA). A positive value indicates that the measured harmonic current is positive, and a negative
         * value indicates that the measured harmonic current is negative.
         *
         * For the Harmonic Phases attribute, this value is the most recent phase of the given harmonic order in
         * millidegrees (mDeg). A positive value indicates that the measured phase is leading, and a negative value
         * indicates that the measured phase is lagging.
         *
         * If this measurement is not currently available, a value of null shall be returned.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.2
         */
        measurement: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
    }>;
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4
     */
    interface HarmonicMeasurement extends TypeFromSchema<typeof TlvHarmonicMeasurement> {
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.1
     */
    enum PowerMode {
        Unknown = 0,
        /**
         * Direct current
         */
        Dc = 1,
        /**
         * Alternating current, either single-phase or polyphase
         */
        Ac = 2
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.2
     */
    enum MeasurementType {
        Unspecified = 0,
        /**
         * Voltage in millivolts (mV)
         */
        Voltage = 1,
        /**
         * Active current in milliamps (mA)
         */
        ActiveCurrent = 2,
        /**
         * Reactive current in milliamps (mA)
         */
        ReactiveCurrent = 3,
        /**
         * Apparent current in milliamps (mA)
         */
        ApparentCurrent = 4,
        /**
         * Active power in milliwatts (mW)
         */
        ActivePower = 5,
        /**
         * Reactive power in millivolt-amps reactive (mVAR)
         */
        ReactivePower = 6,
        /**
         * Apparent power in millivolt-amps (mVA)
         */
        ApparentPower = 7,
        /**
         * Root mean squared voltage in millivolts (mV)
         */
        RmsVoltage = 8,
        /**
         * Root mean squared current in milliamps (mA)
         */
        RmsCurrent = 9,
        /**
         * Root mean squared power in milliwatts (mW)
         */
        RmsPower = 10,
        /**
         * AC frequency in millihertz (mHz)
         */
        Frequency = 11,
        /**
         * Power Factor ratio in +/- 1/100ths of a percent.
         */
        PowerFactor = 12,
        /**
         * AC neutral current in milliamps (mA)
         */
        NeutralCurrent = 13,
        /**
         * Electrical energy in milliwatt-hours (mWh)
         */
        ElectricalEnergy = 14,
        /**
         * Reactive power in millivolt-amp-hours reactive (mVARh)
         */
        ReactiveEnergy = 15,
        /**
         * Apparent power in millivolt-amp-hours (mVAh)
         */
        ApparentEnergy = 16
    }
    /**
     * This struct shall indicate the maximum and minimum values of a given measurement type during a measurement
     * period, along with the observation times of these values.
     *
     * A server which does not have the ability to determine the time in UTC, or has not yet done so, shall use the
     * system time fields to specify the measurement period and observation times.
     *
     * A server which has determined the time in UTC shall use the timestamp fields to specify the measurement period
     * and observation times. Such a server may also include the systime fields to indicate how many seconds had passed
     * since boot for a given timestamp; this allows for client-side resolution of UTC time for previous reports that
     * only included systime.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3
     */
    const TlvMeasurementRange: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall be the type of measurement for the range provided.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.1
         */
        measurementType: import("../tlv/TlvObject.js").FieldType<MeasurementType>;
        /**
         * This field shall be the smallest measured value for the associated measurement over either the period between
         * StartTimestamp and EndTimestamp, or the period between StartSystime and EndSystime, or both.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.2
         */
        min: import("../tlv/TlvObject.js").FieldType<number | bigint>;
        /**
         * This field shall be the largest measured value for the associated measurement over the period between either
         * StartTimestamp and EndTimestamp or the period between StartSystime and EndSystime, or both.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.3
         */
        max: import("../tlv/TlvObject.js").FieldType<number | bigint>;
        /**
         * This field shall be the timestamp in UTC of the beginning of the measurement period.
         *
         * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
         * does not have the capability of determining the time in UTC, this field shall be omitted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.4
         */
        startTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
        /**
         * This field shall be the timestamp in UTC of the end of the measurement period.
         *
         * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
         * does not have the capability of determining the time in UTC, this field shall be omitted.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.5
         */
        endTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
        /**
         * This field shall be the most recent timestamp in UTC that the value in the Min field was measured.
         *
         * This field shall be greater than or equal to the value of the StartTimestamp field.
         *
         * This field shall be less than or equal to the value of the EndTimestamp field.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.6
         */
        minTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
        /**
         * This field shall be the most recent timestamp in UTC of the value in the Max field.
         *
         * This field shall be greater than or equal to the value of the StartTimestamp field.
         *
         * This field shall be less than or equal to the value of the EndTimestamp field.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.7
         */
        maxTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
        /**
         * This field shall be the time since boot of the beginning of the measurement period.
         *
         * If the server had determined the time in UTC at or before the start of the measurement period, this field may
         * be omitted along with the EndSystime, MinSystime, and MaxSystime fields.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.8
         */
        startSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
        /**
         * This field shall be the time since boot of the end of the measurement period.
         *
         * If the server had determined the time in UTC at the end of the measurement period, this field may be omitted
         * along with the StartSystime field, MinSystime, and MaxSystime fields.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.9
         */
        endSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
        /**
         * This field shall be the measurement time since boot of the value in the Min field was measured.
         *
         * This field shall be greater than or equal to the value of the StartSystime field.
         *
         * This field shall be less than or equal to the value of the EndSystime field.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.10
         */
        minSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
        /**
         * This field shall be the measurement time since boot of the value in the Max field.
         *
         * This field shall be greater than or equal to the value of the StartSystime field.
         *
         * This field shall be less than or equal to the value of the EndSystime field.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.11
         */
        maxSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
    }>;
    /**
     * This struct shall indicate the maximum and minimum values of a given measurement type during a measurement
     * period, along with the observation times of these values.
     *
     * A server which does not have the ability to determine the time in UTC, or has not yet done so, shall use the
     * system time fields to specify the measurement period and observation times.
     *
     * A server which has determined the time in UTC shall use the timestamp fields to specify the measurement period
     * and observation times. Such a server may also include the systime fields to indicate how many seconds had passed
     * since boot for a given timestamp; this allows for client-side resolution of UTC time for previous reports that
     * only included systime.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3
     */
    interface MeasurementRange extends TypeFromSchema<typeof TlvMeasurementRange> {
    }
    /**
     * Body of the ElectricalPowerMeasurement measurementPeriodRanges event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.13.7.1
     */
    const TlvMeasurementPeriodRangesEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This shall indicate the value of the Ranges attribute at the time of event generation.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 2.13.7.1.1
         */
        ranges: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall be the type of measurement for the range provided.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.1
             */
            measurementType: import("../tlv/TlvObject.js").FieldType<MeasurementType>;
            /**
             * This field shall be the smallest measured value for the associated measurement over either the period between
             * StartTimestamp and EndTimestamp, or the period between StartSystime and EndSystime, or both.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.2
             */
            min: import("../tlv/TlvObject.js").FieldType<number | bigint>;
            /**
             * This field shall be the largest measured value for the associated measurement over the period between either
             * StartTimestamp and EndTimestamp or the period between StartSystime and EndSystime, or both.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.3
             */
            max: import("../tlv/TlvObject.js").FieldType<number | bigint>;
            /**
             * This field shall be the timestamp in UTC of the beginning of the measurement period.
             *
             * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
             * does not have the capability of determining the time in UTC, this field shall be omitted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.4
             */
            startTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
            /**
             * This field shall be the timestamp in UTC of the end of the measurement period.
             *
             * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
             * does not have the capability of determining the time in UTC, this field shall be omitted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.5
             */
            endTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
            /**
             * This field shall be the most recent timestamp in UTC that the value in the Min field was measured.
             *
             * This field shall be greater than or equal to the value of the StartTimestamp field.
             *
             * This field shall be less than or equal to the value of the EndTimestamp field.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.6
             */
            minTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
            /**
             * This field shall be the most recent timestamp in UTC of the value in the Max field.
             *
             * This field shall be greater than or equal to the value of the StartTimestamp field.
             *
             * This field shall be less than or equal to the value of the EndTimestamp field.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.7
             */
            maxTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
            /**
             * This field shall be the time since boot of the beginning of the measurement period.
             *
             * If the server had determined the time in UTC at or before the start of the measurement period, this field may
             * be omitted along with the EndSystime, MinSystime, and MaxSystime fields.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.8
             */
            startSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
            /**
             * This field shall be the time since boot of the end of the measurement period.
             *
             * If the server had determined the time in UTC at the end of the measurement period, this field may be omitted
             * along with the StartSystime field, MinSystime, and MaxSystime fields.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.9
             */
            endSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
            /**
             * This field shall be the measurement time since boot of the value in the Min field was measured.
             *
             * This field shall be greater than or equal to the value of the StartSystime field.
             *
             * This field shall be less than or equal to the value of the EndSystime field.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.10
             */
            minSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
            /**
             * This field shall be the measurement time since boot of the value in the Max field.
             *
             * This field shall be greater than or equal to the value of the StartSystime field.
             *
             * This field shall be less than or equal to the value of the EndSystime field.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.11
             */
            maxSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
        }>[]>;
    }>;
    /**
     * Body of the ElectricalPowerMeasurement measurementPeriodRanges event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.13.7.1
     */
    interface MeasurementPeriodRangesEvent extends TypeFromSchema<typeof TlvMeasurementPeriodRangesEvent> {
    }
    /**
     * A ElectricalPowerMeasurementCluster supports these elements if it supports feature AlternatingCurrent.
     */
    const AlternatingCurrentComponent: {
        readonly attributes: {
            /**
             * This shall indicate the most recent ReactiveCurrent reading in milliamps (mA).
             *
             * A positive value represents current flowing into the server, while a negative value represents current
             * flowing out of the server.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the current cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.7
             */
            readonly reactiveCurrent: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent ApparentCurrent (square root sum of the squares of active and
             * reactive currents) reading in milliamps (mA).
             *
             * A positive value represents current flowing into the server, while a negative value represents current
             * flowing out of the server.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the active or reactive currents cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.8
             */
            readonly apparentCurrent: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent ReactivePower reading in millivolt-amps reactive (mVAR).
             *
             * A positive value represents power imported, while a negative value represents power exported.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the reactive power cannot be measured, a value of null shall be returned.
             *
             * If the Polyphase Power feature is supported, this value represents the combined reactive power imported
             * or exported.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.10
             */
            readonly reactivePower: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent ApparentPower reading in millivolt-amps (mVA).
             *
             * A positive value represents power imported, while a negative value represents power exported.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the apparent power cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.11
             */
            readonly apparentPower: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent RMSVoltage reading in millivolts (mV).
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the RMS voltage cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.12
             */
            readonly rmsVoltage: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent RMSCurrent reading in milliamps (mA).
             *
             * A positive value represents current flowing into the server, while a negative value represents current
             * flowing out of the server.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the RMS current cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.13
             */
            readonly rmsCurrent: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent RMSPower reading in milliwatts (mW).
             *
             * A positive value represents power imported, while a negative value represents power exported.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the RMS power cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.14
             */
            readonly rmsPower: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent Frequency reading in millihertz (mHz).
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the frequency cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.15
             */
            readonly frequency: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the Power Factor ratio in +/- 1/100ths of a percent.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.18
             */
            readonly powerFactor: OptionalAttribute<number | bigint | null, any>;
        };
    };
    /**
     * A ElectricalPowerMeasurementCluster supports these elements if it supports feature Harmonics.
     */
    const HarmonicsComponent: {
        readonly attributes: {
            /**
             * This shall indicate a list of HarmonicMeasurementStruct values, with each HarmonicMeasurementStruct
             * representing the harmonic current reading for the harmonic order specified by Order.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.16
             */
            readonly harmonicCurrents: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall be the order of the harmonic being measured. Typically this is an odd number, but servers
                 * may choose to report even harmonics.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.1
                 */
                order: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall be the measured value for the given harmonic order.
                 *
                 * For the Harmonic Currents attribute, this value is the most recently measured harmonic current reading in
                 * milliamps (mA). A positive value indicates that the measured harmonic current is positive, and a negative
                 * value indicates that the measured harmonic current is negative.
                 *
                 * For the Harmonic Phases attribute, this value is the most recent phase of the given harmonic order in
                 * millidegrees (mDeg). A positive value indicates that the measured phase is leading, and a negative value
                 * indicates that the measured phase is lagging.
                 *
                 * If this measurement is not currently available, a value of null shall be returned.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.2
                 */
                measurement: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
            }>[] | null, any>;
        };
    };
    /**
     * A ElectricalPowerMeasurementCluster supports these elements if it supports feature PowerQuality.
     */
    const PowerQualityComponent: {
        readonly attributes: {
            /**
             * This shall indicate a list of HarmonicMeasurementStruct values, with each HarmonicMeasurementStruct
             * representing the most recent phase of the harmonic current reading for the harmonic order specified by
             * Order.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.17
             */
            readonly harmonicPhases: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall be the order of the harmonic being measured. Typically this is an odd number, but servers
                 * may choose to report even harmonics.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.1
                 */
                order: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall be the measured value for the given harmonic order.
                 *
                 * For the Harmonic Currents attribute, this value is the most recently measured harmonic current reading in
                 * milliamps (mA). A positive value indicates that the measured harmonic current is positive, and a negative
                 * value indicates that the measured harmonic current is negative.
                 *
                 * For the Harmonic Phases attribute, this value is the most recent phase of the given harmonic order in
                 * millidegrees (mDeg). A positive value indicates that the measured phase is leading, and a negative value
                 * indicates that the measured phase is lagging.
                 *
                 * If this measurement is not currently available, a value of null shall be returned.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.2
                 */
                measurement: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
            }>[] | null, any>;
        };
    };
    /**
     * A ElectricalPowerMeasurementCluster supports these elements if it supports feature PolyphasePower.
     */
    const PolyphasePowerComponent: {
        readonly attributes: {
            /**
             * This shall indicate the most recent NeutralCurrent reading in milliamps (mA). Typically this is a derived
             * value, taking the magnitude of the vector sum of phase currents.
             *
             * If the neutral current cannot be measured or derived, a value of null shall be returned.
             *
             * A positive value represents an imbalance between the phase currents when power is imported.
             *
             * A negative value represents an imbalance between the phase currents when power is exported.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.19
             */
            readonly neutralCurrent: OptionalAttribute<number | bigint | null, any>;
        };
    };
    /**
     * These elements and properties are present in all ElectricalPowerMeasurement clusters.
     */
    const Base: {
        readonly id: 144;
        readonly name: "ElectricalPowerMeasurement";
        readonly revision: 3;
        readonly features: {
            /**
             * This feature indicates the cluster can measure a direct current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.1
             */
            readonly directCurrent: BitFlag;
            /**
             * This feature indicates the cluster can measure an alternating current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.2
             */
            readonly alternatingCurrent: BitFlag;
            /**
             * This feature indicates the cluster represents the collective measurements for a Polyphase power supply.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.3
             */
            readonly polyphasePower: BitFlag;
            /**
             * This feature indicates the cluster can measure the harmonics of an alternating current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.4
             */
            readonly harmonics: BitFlag;
            /**
             * This feature indicates the cluster can measure the harmonic phases of an alternating current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.5
             */
            readonly powerQuality: BitFlag;
        };
        readonly attributes: {
            /**
             * This shall indicate the current mode of the server. For some servers, such as an EV, this may change
             * depending on the mode of charging or discharging.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.1
             */
            readonly powerMode: Attribute<PowerMode, any>;
            /**
             * This shall indicate the maximum number of measurement types the server is capable of reporting.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.2
             */
            readonly numberOfMeasurementTypes: FixedAttribute<number, any>;
            /**
             * This shall indicate a list of accuracy specifications for the measurement types supported bytheserver.
             * There shall be an entry for ActivePower, as well as any other measurement types implemented by this
             * server.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.3
             */
            readonly accuracy: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                measurementType: import("../tlv/TlvObject.js").FieldType<import("../index.js").MeasurementType>;
                measured: import("../tlv/TlvObject.js").FieldType<boolean>;
                minMeasuredValue: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                maxMeasuredValue: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                accuracyRanges: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    rangeMin: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    rangeMax: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    percentMax: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    percentMin: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    percentTypical: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    fixedMax: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    fixedMin: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    fixedTypical: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                }>[]>;
            }>[], any>;
            /**
             * This shall indicate a list of measured ranges for different measurement types. Each measurement type
             * shall have at most one entry in this list, representing the range of measurements in the most recent
             * measurement period.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.4
             */
            readonly ranges: OptionalAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall be the type of measurement for the range provided.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.1
                 */
                measurementType: import("../tlv/TlvObject.js").FieldType<MeasurementType>;
                /**
                 * This field shall be the smallest measured value for the associated measurement over either the period between
                 * StartTimestamp and EndTimestamp, or the period between StartSystime and EndSystime, or both.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.2
                 */
                min: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                /**
                 * This field shall be the largest measured value for the associated measurement over the period between either
                 * StartTimestamp and EndTimestamp or the period between StartSystime and EndSystime, or both.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.3
                 */
                max: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                /**
                 * This field shall be the timestamp in UTC of the beginning of the measurement period.
                 *
                 * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                 * does not have the capability of determining the time in UTC, this field shall be omitted.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.4
                 */
                startTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the timestamp in UTC of the end of the measurement period.
                 *
                 * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                 * does not have the capability of determining the time in UTC, this field shall be omitted.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.5
                 */
                endTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the most recent timestamp in UTC that the value in the Min field was measured.
                 *
                 * This field shall be greater than or equal to the value of the StartTimestamp field.
                 *
                 * This field shall be less than or equal to the value of the EndTimestamp field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.6
                 */
                minTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the most recent timestamp in UTC of the value in the Max field.
                 *
                 * This field shall be greater than or equal to the value of the StartTimestamp field.
                 *
                 * This field shall be less than or equal to the value of the EndTimestamp field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.7
                 */
                maxTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the time since boot of the beginning of the measurement period.
                 *
                 * If the server had determined the time in UTC at or before the start of the measurement period, this field may
                 * be omitted along with the EndSystime, MinSystime, and MaxSystime fields.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.8
                 */
                startSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                /**
                 * This field shall be the time since boot of the end of the measurement period.
                 *
                 * If the server had determined the time in UTC at the end of the measurement period, this field may be omitted
                 * along with the StartSystime field, MinSystime, and MaxSystime fields.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.9
                 */
                endSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                /**
                 * This field shall be the measurement time since boot of the value in the Min field was measured.
                 *
                 * This field shall be greater than or equal to the value of the StartSystime field.
                 *
                 * This field shall be less than or equal to the value of the EndSystime field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.10
                 */
                minSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                /**
                 * This field shall be the measurement time since boot of the value in the Max field.
                 *
                 * This field shall be greater than or equal to the value of the StartSystime field.
                 *
                 * This field shall be less than or equal to the value of the EndSystime field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.11
                 */
                maxSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
            }>[], any>;
            /**
             * This shall indicate the most recent Voltage reading in millivolts (mV).
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the voltage cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.5
             */
            readonly voltage: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent ActiveCurrent reading in milliamps (mA).
             *
             * A positive value represents current flowing into the server, while a negative value represents current
             * flowing out of the server.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the current cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.6
             */
            readonly activeCurrent: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent ActivePower reading in milliwatts (mW). If the power cannot be
             * measured, a value of null shall be returned.
             *
             * A positive value represents power imported, while a negative value represents power exported.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the Polyphase Power feature is set, this value represents the combined active power imported or
             * exported.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.9
             */
            readonly activePower: Attribute<number | bigint | null, any>;
        };
        readonly events: {
            /**
             * If supported, this event shall be generated at the end of a measurement period. The start and end times
             * for measurement periods shall be determined by the server, and may represent overlapping periods.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.7.1
             */
            readonly measurementPeriodRanges: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This shall indicate the value of the Ranges attribute at the time of event generation.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.7.1.1
                 */
                ranges: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall be the type of measurement for the range provided.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.1
                     */
                    measurementType: import("../tlv/TlvObject.js").FieldType<MeasurementType>;
                    /**
                     * This field shall be the smallest measured value for the associated measurement over either the period between
                     * StartTimestamp and EndTimestamp, or the period between StartSystime and EndSystime, or both.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.2
                     */
                    min: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    /**
                     * This field shall be the largest measured value for the associated measurement over the period between either
                     * StartTimestamp and EndTimestamp or the period between StartSystime and EndSystime, or both.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.3
                     */
                    max: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    /**
                     * This field shall be the timestamp in UTC of the beginning of the measurement period.
                     *
                     * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                     * does not have the capability of determining the time in UTC, this field shall be omitted.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.4
                     */
                    startTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the timestamp in UTC of the end of the measurement period.
                     *
                     * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                     * does not have the capability of determining the time in UTC, this field shall be omitted.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.5
                     */
                    endTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the most recent timestamp in UTC that the value in the Min field was measured.
                     *
                     * This field shall be greater than or equal to the value of the StartTimestamp field.
                     *
                     * This field shall be less than or equal to the value of the EndTimestamp field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.6
                     */
                    minTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the most recent timestamp in UTC of the value in the Max field.
                     *
                     * This field shall be greater than or equal to the value of the StartTimestamp field.
                     *
                     * This field shall be less than or equal to the value of the EndTimestamp field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.7
                     */
                    maxTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the time since boot of the beginning of the measurement period.
                     *
                     * If the server had determined the time in UTC at or before the start of the measurement period, this field may
                     * be omitted along with the EndSystime, MinSystime, and MaxSystime fields.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.8
                     */
                    startSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    /**
                     * This field shall be the time since boot of the end of the measurement period.
                     *
                     * If the server had determined the time in UTC at the end of the measurement period, this field may be omitted
                     * along with the StartSystime field, MinSystime, and MaxSystime fields.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.9
                     */
                    endSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    /**
                     * This field shall be the measurement time since boot of the value in the Min field was measured.
                     *
                     * This field shall be greater than or equal to the value of the StartSystime field.
                     *
                     * This field shall be less than or equal to the value of the EndSystime field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.10
                     */
                    minSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    /**
                     * This field shall be the measurement time since boot of the value in the Max field.
                     *
                     * This field shall be greater than or equal to the value of the StartSystime field.
                     *
                     * This field shall be less than or equal to the value of the EndSystime field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.11
                     */
                    maxSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                }>[]>;
            }>, any>;
        };
        /**
         * This metadata controls which ElectricalPowerMeasurementCluster elements matter.js activates for specific
         * feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly alternatingCurrent: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This shall indicate the most recent ReactiveCurrent reading in milliamps (mA).
                     *
                     * A positive value represents current flowing into the server, while a negative value represents current
                     * flowing out of the server.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the current cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.7
                     */
                    readonly reactiveCurrent: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent ApparentCurrent (square root sum of the squares of active and
                     * reactive currents) reading in milliamps (mA).
                     *
                     * A positive value represents current flowing into the server, while a negative value represents current
                     * flowing out of the server.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the active or reactive currents cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.8
                     */
                    readonly apparentCurrent: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent ReactivePower reading in millivolt-amps reactive (mVAR).
                     *
                     * A positive value represents power imported, while a negative value represents power exported.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the reactive power cannot be measured, a value of null shall be returned.
                     *
                     * If the Polyphase Power feature is supported, this value represents the combined reactive power imported
                     * or exported.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.10
                     */
                    readonly reactivePower: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent ApparentPower reading in millivolt-amps (mVA).
                     *
                     * A positive value represents power imported, while a negative value represents power exported.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the apparent power cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.11
                     */
                    readonly apparentPower: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent RMSVoltage reading in millivolts (mV).
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the RMS voltage cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.12
                     */
                    readonly rmsVoltage: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent RMSCurrent reading in milliamps (mA).
                     *
                     * A positive value represents current flowing into the server, while a negative value represents current
                     * flowing out of the server.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the RMS current cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.13
                     */
                    readonly rmsCurrent: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent RMSPower reading in milliwatts (mW).
                     *
                     * A positive value represents power imported, while a negative value represents power exported.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the RMS power cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.14
                     */
                    readonly rmsPower: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent Frequency reading in millihertz (mHz).
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the frequency cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.15
                     */
                    readonly frequency: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the Power Factor ratio in +/- 1/100ths of a percent.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.18
                     */
                    readonly powerFactor: OptionalAttribute<number | bigint | null, any>;
                };
            };
        }, {
            readonly flags: {
                readonly harmonics: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This shall indicate a list of HarmonicMeasurementStruct values, with each HarmonicMeasurementStruct
                     * representing the harmonic current reading for the harmonic order specified by Order.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.16
                     */
                    readonly harmonicCurrents: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall be the order of the harmonic being measured. Typically this is an odd number, but servers
                         * may choose to report even harmonics.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.1
                         */
                        order: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall be the measured value for the given harmonic order.
                         *
                         * For the Harmonic Currents attribute, this value is the most recently measured harmonic current reading in
                         * milliamps (mA). A positive value indicates that the measured harmonic current is positive, and a negative
                         * value indicates that the measured harmonic current is negative.
                         *
                         * For the Harmonic Phases attribute, this value is the most recent phase of the given harmonic order in
                         * millidegrees (mDeg). A positive value indicates that the measured phase is leading, and a negative value
                         * indicates that the measured phase is lagging.
                         *
                         * If this measurement is not currently available, a value of null shall be returned.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.2
                         */
                        measurement: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
                    }>[] | null, any>;
                };
            };
        }, {
            readonly flags: {
                readonly powerQuality: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This shall indicate a list of HarmonicMeasurementStruct values, with each HarmonicMeasurementStruct
                     * representing the most recent phase of the harmonic current reading for the harmonic order specified by
                     * Order.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.17
                     */
                    readonly harmonicPhases: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall be the order of the harmonic being measured. Typically this is an odd number, but servers
                         * may choose to report even harmonics.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.1
                         */
                        order: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall be the measured value for the given harmonic order.
                         *
                         * For the Harmonic Currents attribute, this value is the most recently measured harmonic current reading in
                         * milliamps (mA). A positive value indicates that the measured harmonic current is positive, and a negative
                         * value indicates that the measured harmonic current is negative.
                         *
                         * For the Harmonic Phases attribute, this value is the most recent phase of the given harmonic order in
                         * millidegrees (mDeg). A positive value indicates that the measured phase is leading, and a negative value
                         * indicates that the measured phase is lagging.
                         *
                         * If this measurement is not currently available, a value of null shall be returned.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.2
                         */
                        measurement: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
                    }>[] | null, any>;
                };
            };
        }, {
            readonly flags: {
                readonly polyphasePower: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This shall indicate the most recent NeutralCurrent reading in milliamps (mA). Typically this is a derived
                     * value, taking the magnitude of the vector sum of phase currents.
                     *
                     * If the neutral current cannot be measured or derived, a value of null shall be returned.
                     *
                     * A positive value represents an imbalance between the phase currents when power is imported.
                     *
                     * A negative value represents an imbalance between the phase currents when power is exported.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.19
                     */
                    readonly neutralCurrent: OptionalAttribute<number | bigint | null, any>;
                };
            };
        }, {
            readonly flags: {
                readonly polyphasePower: true;
                readonly alternatingCurrent: false;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly harmonics: true;
                readonly alternatingCurrent: false;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly powerQuality: true;
                readonly alternatingCurrent: false;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly directCurrent: false;
                readonly alternatingCurrent: false;
            };
            readonly component: false;
        }];
    };
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster.ExtensibleOnly<{
        readonly id: 144;
        readonly name: "ElectricalPowerMeasurement";
        readonly revision: 3;
        readonly features: {
            /**
             * This feature indicates the cluster can measure a direct current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.1
             */
            readonly directCurrent: BitFlag;
            /**
             * This feature indicates the cluster can measure an alternating current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.2
             */
            readonly alternatingCurrent: BitFlag;
            /**
             * This feature indicates the cluster represents the collective measurements for a Polyphase power supply.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.3
             */
            readonly polyphasePower: BitFlag;
            /**
             * This feature indicates the cluster can measure the harmonics of an alternating current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.4
             */
            readonly harmonics: BitFlag;
            /**
             * This feature indicates the cluster can measure the harmonic phases of an alternating current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.5
             */
            readonly powerQuality: BitFlag;
        };
        readonly attributes: {
            /**
             * This shall indicate the current mode of the server. For some servers, such as an EV, this may change
             * depending on the mode of charging or discharging.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.1
             */
            readonly powerMode: Attribute<PowerMode, any>;
            /**
             * This shall indicate the maximum number of measurement types the server is capable of reporting.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.2
             */
            readonly numberOfMeasurementTypes: FixedAttribute<number, any>;
            /**
             * This shall indicate a list of accuracy specifications for the measurement types supported bytheserver.
             * There shall be an entry for ActivePower, as well as any other measurement types implemented by this
             * server.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.3
             */
            readonly accuracy: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                measurementType: import("../tlv/TlvObject.js").FieldType<import("../index.js").MeasurementType>;
                measured: import("../tlv/TlvObject.js").FieldType<boolean>;
                minMeasuredValue: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                maxMeasuredValue: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                accuracyRanges: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    rangeMin: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    rangeMax: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    percentMax: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    percentMin: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    percentTypical: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    fixedMax: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    fixedMin: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    fixedTypical: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                }>[]>;
            }>[], any>;
            /**
             * This shall indicate a list of measured ranges for different measurement types. Each measurement type
             * shall have at most one entry in this list, representing the range of measurements in the most recent
             * measurement period.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.4
             */
            readonly ranges: OptionalAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall be the type of measurement for the range provided.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.1
                 */
                measurementType: import("../tlv/TlvObject.js").FieldType<MeasurementType>;
                /**
                 * This field shall be the smallest measured value for the associated measurement over either the period between
                 * StartTimestamp and EndTimestamp, or the period between StartSystime and EndSystime, or both.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.2
                 */
                min: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                /**
                 * This field shall be the largest measured value for the associated measurement over the period between either
                 * StartTimestamp and EndTimestamp or the period between StartSystime and EndSystime, or both.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.3
                 */
                max: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                /**
                 * This field shall be the timestamp in UTC of the beginning of the measurement period.
                 *
                 * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                 * does not have the capability of determining the time in UTC, this field shall be omitted.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.4
                 */
                startTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the timestamp in UTC of the end of the measurement period.
                 *
                 * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                 * does not have the capability of determining the time in UTC, this field shall be omitted.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.5
                 */
                endTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the most recent timestamp in UTC that the value in the Min field was measured.
                 *
                 * This field shall be greater than or equal to the value of the StartTimestamp field.
                 *
                 * This field shall be less than or equal to the value of the EndTimestamp field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.6
                 */
                minTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the most recent timestamp in UTC of the value in the Max field.
                 *
                 * This field shall be greater than or equal to the value of the StartTimestamp field.
                 *
                 * This field shall be less than or equal to the value of the EndTimestamp field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.7
                 */
                maxTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the time since boot of the beginning of the measurement period.
                 *
                 * If the server had determined the time in UTC at or before the start of the measurement period, this field may
                 * be omitted along with the EndSystime, MinSystime, and MaxSystime fields.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.8
                 */
                startSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                /**
                 * This field shall be the time since boot of the end of the measurement period.
                 *
                 * If the server had determined the time in UTC at the end of the measurement period, this field may be omitted
                 * along with the StartSystime field, MinSystime, and MaxSystime fields.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.9
                 */
                endSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                /**
                 * This field shall be the measurement time since boot of the value in the Min field was measured.
                 *
                 * This field shall be greater than or equal to the value of the StartSystime field.
                 *
                 * This field shall be less than or equal to the value of the EndSystime field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.10
                 */
                minSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                /**
                 * This field shall be the measurement time since boot of the value in the Max field.
                 *
                 * This field shall be greater than or equal to the value of the StartSystime field.
                 *
                 * This field shall be less than or equal to the value of the EndSystime field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.11
                 */
                maxSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
            }>[], any>;
            /**
             * This shall indicate the most recent Voltage reading in millivolts (mV).
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the voltage cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.5
             */
            readonly voltage: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent ActiveCurrent reading in milliamps (mA).
             *
             * A positive value represents current flowing into the server, while a negative value represents current
             * flowing out of the server.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the current cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.6
             */
            readonly activeCurrent: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent ActivePower reading in milliwatts (mW). If the power cannot be
             * measured, a value of null shall be returned.
             *
             * A positive value represents power imported, while a negative value represents power exported.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the Polyphase Power feature is set, this value represents the combined active power imported or
             * exported.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.9
             */
            readonly activePower: Attribute<number | bigint | null, any>;
        };
        readonly events: {
            /**
             * If supported, this event shall be generated at the end of a measurement period. The start and end times
             * for measurement periods shall be determined by the server, and may represent overlapping periods.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.7.1
             */
            readonly measurementPeriodRanges: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This shall indicate the value of the Ranges attribute at the time of event generation.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.7.1.1
                 */
                ranges: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall be the type of measurement for the range provided.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.1
                     */
                    measurementType: import("../tlv/TlvObject.js").FieldType<MeasurementType>;
                    /**
                     * This field shall be the smallest measured value for the associated measurement over either the period between
                     * StartTimestamp and EndTimestamp, or the period between StartSystime and EndSystime, or both.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.2
                     */
                    min: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    /**
                     * This field shall be the largest measured value for the associated measurement over the period between either
                     * StartTimestamp and EndTimestamp or the period between StartSystime and EndSystime, or both.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.3
                     */
                    max: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    /**
                     * This field shall be the timestamp in UTC of the beginning of the measurement period.
                     *
                     * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                     * does not have the capability of determining the time in UTC, this field shall be omitted.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.4
                     */
                    startTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the timestamp in UTC of the end of the measurement period.
                     *
                     * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                     * does not have the capability of determining the time in UTC, this field shall be omitted.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.5
                     */
                    endTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the most recent timestamp in UTC that the value in the Min field was measured.
                     *
                     * This field shall be greater than or equal to the value of the StartTimestamp field.
                     *
                     * This field shall be less than or equal to the value of the EndTimestamp field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.6
                     */
                    minTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the most recent timestamp in UTC of the value in the Max field.
                     *
                     * This field shall be greater than or equal to the value of the StartTimestamp field.
                     *
                     * This field shall be less than or equal to the value of the EndTimestamp field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.7
                     */
                    maxTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the time since boot of the beginning of the measurement period.
                     *
                     * If the server had determined the time in UTC at or before the start of the measurement period, this field may
                     * be omitted along with the EndSystime, MinSystime, and MaxSystime fields.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.8
                     */
                    startSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    /**
                     * This field shall be the time since boot of the end of the measurement period.
                     *
                     * If the server had determined the time in UTC at the end of the measurement period, this field may be omitted
                     * along with the StartSystime field, MinSystime, and MaxSystime fields.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.9
                     */
                    endSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    /**
                     * This field shall be the measurement time since boot of the value in the Min field was measured.
                     *
                     * This field shall be greater than or equal to the value of the StartSystime field.
                     *
                     * This field shall be less than or equal to the value of the EndSystime field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.10
                     */
                    minSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    /**
                     * This field shall be the measurement time since boot of the value in the Max field.
                     *
                     * This field shall be greater than or equal to the value of the StartSystime field.
                     *
                     * This field shall be less than or equal to the value of the EndSystime field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.11
                     */
                    maxSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                }>[]>;
            }>, any>;
        };
        /**
         * This metadata controls which ElectricalPowerMeasurementCluster elements matter.js activates for specific
         * feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly alternatingCurrent: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This shall indicate the most recent ReactiveCurrent reading in milliamps (mA).
                     *
                     * A positive value represents current flowing into the server, while a negative value represents current
                     * flowing out of the server.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the current cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.7
                     */
                    readonly reactiveCurrent: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent ApparentCurrent (square root sum of the squares of active and
                     * reactive currents) reading in milliamps (mA).
                     *
                     * A positive value represents current flowing into the server, while a negative value represents current
                     * flowing out of the server.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the active or reactive currents cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.8
                     */
                    readonly apparentCurrent: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent ReactivePower reading in millivolt-amps reactive (mVAR).
                     *
                     * A positive value represents power imported, while a negative value represents power exported.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the reactive power cannot be measured, a value of null shall be returned.
                     *
                     * If the Polyphase Power feature is supported, this value represents the combined reactive power imported
                     * or exported.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.10
                     */
                    readonly reactivePower: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent ApparentPower reading in millivolt-amps (mVA).
                     *
                     * A positive value represents power imported, while a negative value represents power exported.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the apparent power cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.11
                     */
                    readonly apparentPower: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent RMSVoltage reading in millivolts (mV).
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the RMS voltage cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.12
                     */
                    readonly rmsVoltage: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent RMSCurrent reading in milliamps (mA).
                     *
                     * A positive value represents current flowing into the server, while a negative value represents current
                     * flowing out of the server.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the RMS current cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.13
                     */
                    readonly rmsCurrent: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent RMSPower reading in milliwatts (mW).
                     *
                     * A positive value represents power imported, while a negative value represents power exported.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the RMS power cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.14
                     */
                    readonly rmsPower: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the most recent Frequency reading in millihertz (mHz).
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * If the frequency cannot be measured, a value of null shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.15
                     */
                    readonly frequency: OptionalAttribute<number | bigint | null, any>;
                    /**
                     * This shall indicate the Power Factor ratio in +/- 1/100ths of a percent.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.18
                     */
                    readonly powerFactor: OptionalAttribute<number | bigint | null, any>;
                };
            };
        }, {
            readonly flags: {
                readonly harmonics: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This shall indicate a list of HarmonicMeasurementStruct values, with each HarmonicMeasurementStruct
                     * representing the harmonic current reading for the harmonic order specified by Order.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.16
                     */
                    readonly harmonicCurrents: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall be the order of the harmonic being measured. Typically this is an odd number, but servers
                         * may choose to report even harmonics.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.1
                         */
                        order: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall be the measured value for the given harmonic order.
                         *
                         * For the Harmonic Currents attribute, this value is the most recently measured harmonic current reading in
                         * milliamps (mA). A positive value indicates that the measured harmonic current is positive, and a negative
                         * value indicates that the measured harmonic current is negative.
                         *
                         * For the Harmonic Phases attribute, this value is the most recent phase of the given harmonic order in
                         * millidegrees (mDeg). A positive value indicates that the measured phase is leading, and a negative value
                         * indicates that the measured phase is lagging.
                         *
                         * If this measurement is not currently available, a value of null shall be returned.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.2
                         */
                        measurement: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
                    }>[] | null, any>;
                };
            };
        }, {
            readonly flags: {
                readonly powerQuality: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This shall indicate a list of HarmonicMeasurementStruct values, with each HarmonicMeasurementStruct
                     * representing the most recent phase of the harmonic current reading for the harmonic order specified by
                     * Order.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.17
                     */
                    readonly harmonicPhases: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall be the order of the harmonic being measured. Typically this is an odd number, but servers
                         * may choose to report even harmonics.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.1
                         */
                        order: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall be the measured value for the given harmonic order.
                         *
                         * For the Harmonic Currents attribute, this value is the most recently measured harmonic current reading in
                         * milliamps (mA). A positive value indicates that the measured harmonic current is positive, and a negative
                         * value indicates that the measured harmonic current is negative.
                         *
                         * For the Harmonic Phases attribute, this value is the most recent phase of the given harmonic order in
                         * millidegrees (mDeg). A positive value indicates that the measured phase is leading, and a negative value
                         * indicates that the measured phase is lagging.
                         *
                         * If this measurement is not currently available, a value of null shall be returned.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.2
                         */
                        measurement: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
                    }>[] | null, any>;
                };
            };
        }, {
            readonly flags: {
                readonly polyphasePower: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This shall indicate the most recent NeutralCurrent reading in milliamps (mA). Typically this is a derived
                     * value, taking the magnitude of the vector sum of phase currents.
                     *
                     * If the neutral current cannot be measured or derived, a value of null shall be returned.
                     *
                     * A positive value represents an imbalance between the phase currents when power is imported.
                     *
                     * A negative value represents an imbalance between the phase currents when power is exported.
                     *
                     * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
                     * publication of deltas considered not meaningful.
                     *
                     * The server shall NOT mark this attribute ready for report if the last time this was done was more
                     * recently than 1 second ago.
                     *
                     * The server may delay marking this attribute ready for report for longer periods if needed, however the
                     * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.19
                     */
                    readonly neutralCurrent: OptionalAttribute<number | bigint | null, any>;
                };
            };
        }, {
            readonly flags: {
                readonly polyphasePower: true;
                readonly alternatingCurrent: false;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly harmonics: true;
                readonly alternatingCurrent: false;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly powerQuality: true;
                readonly alternatingCurrent: false;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly directCurrent: false;
                readonly alternatingCurrent: false;
            };
            readonly component: false;
        }];
    }>;
    /**
     * This cluster provides a mechanism for querying data about electrical power as measured by the server.
     *
     * Per the Matter specification you cannot use {@link ElectricalPowerMeasurementCluster} without enabling certain
     * feature combinations. You must use the {@link with} factory method to obtain a working cluster.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.13
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    /**
     * @see {@link Complete}
     */
    const CompleteInstance: MutableCluster<{
        readonly id: 144;
        readonly name: "ElectricalPowerMeasurement";
        readonly revision: 3;
        readonly features: {
            /**
             * This feature indicates the cluster can measure a direct current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.1
             */
            readonly directCurrent: BitFlag;
            /**
             * This feature indicates the cluster can measure an alternating current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.2
             */
            readonly alternatingCurrent: BitFlag;
            /**
             * This feature indicates the cluster represents the collective measurements for a Polyphase power supply.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.3
             */
            readonly polyphasePower: BitFlag;
            /**
             * This feature indicates the cluster can measure the harmonics of an alternating current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.4
             */
            readonly harmonics: BitFlag;
            /**
             * This feature indicates the cluster can measure the harmonic phases of an alternating current.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.4.5
             */
            readonly powerQuality: BitFlag;
        };
        readonly attributes: {
            readonly reactiveCurrent: OptionalAttribute<number | bigint | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    alternatingCurrent: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly apparentCurrent: OptionalAttribute<number | bigint | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    alternatingCurrent: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly reactivePower: OptionalAttribute<number | bigint | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    alternatingCurrent: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly apparentPower: OptionalAttribute<number | bigint | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    alternatingCurrent: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly rmsVoltage: OptionalAttribute<number | bigint | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    alternatingCurrent: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly rmsCurrent: OptionalAttribute<number | bigint | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    alternatingCurrent: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly rmsPower: OptionalAttribute<number | bigint | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    alternatingCurrent: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly frequency: OptionalAttribute<number | bigint | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    alternatingCurrent: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly harmonicCurrents: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall be the order of the harmonic being measured. Typically this is an odd number, but servers
                 * may choose to report even harmonics.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.1
                 */
                order: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall be the measured value for the given harmonic order.
                 *
                 * For the Harmonic Currents attribute, this value is the most recently measured harmonic current reading in
                 * milliamps (mA). A positive value indicates that the measured harmonic current is positive, and a negative
                 * value indicates that the measured harmonic current is negative.
                 *
                 * For the Harmonic Phases attribute, this value is the most recent phase of the given harmonic order in
                 * millidegrees (mDeg). A positive value indicates that the measured phase is leading, and a negative value
                 * indicates that the measured phase is lagging.
                 *
                 * If this measurement is not currently available, a value of null shall be returned.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.2
                 */
                measurement: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
            }>[] | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    harmonics: boolean;
                }];
            };
            readonly harmonicPhases: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall be the order of the harmonic being measured. Typically this is an odd number, but servers
                 * may choose to report even harmonics.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.1
                 */
                order: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall be the measured value for the given harmonic order.
                 *
                 * For the Harmonic Currents attribute, this value is the most recently measured harmonic current reading in
                 * milliamps (mA). A positive value indicates that the measured harmonic current is positive, and a negative
                 * value indicates that the measured harmonic current is negative.
                 *
                 * For the Harmonic Phases attribute, this value is the most recent phase of the given harmonic order in
                 * millidegrees (mDeg). A positive value indicates that the measured phase is leading, and a negative value
                 * indicates that the measured phase is lagging.
                 *
                 * If this measurement is not currently available, a value of null shall be returned.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.4.2
                 */
                measurement: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
            }>[] | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    powerQuality: boolean;
                }];
            };
            readonly powerFactor: OptionalAttribute<number | bigint | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    alternatingCurrent: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly neutralCurrent: OptionalAttribute<number | bigint | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    polyphasePower: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            /**
             * This shall indicate the current mode of the server. For some servers, such as an EV, this may change
             * depending on the mode of charging or discharging.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.1
             */
            readonly powerMode: Attribute<PowerMode, any>;
            /**
             * This shall indicate the maximum number of measurement types the server is capable of reporting.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.2
             */
            readonly numberOfMeasurementTypes: FixedAttribute<number, any>;
            /**
             * This shall indicate a list of accuracy specifications for the measurement types supported bytheserver.
             * There shall be an entry for ActivePower, as well as any other measurement types implemented by this
             * server.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.3
             */
            readonly accuracy: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                measurementType: import("../tlv/TlvObject.js").FieldType<import("../index.js").MeasurementType>;
                measured: import("../tlv/TlvObject.js").FieldType<boolean>;
                minMeasuredValue: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                maxMeasuredValue: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                accuracyRanges: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    rangeMin: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    rangeMax: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    percentMax: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    percentMin: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    percentTypical: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    fixedMax: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    fixedMin: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    fixedTypical: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                }>[]>;
            }>[], any>;
            /**
             * This shall indicate a list of measured ranges for different measurement types. Each measurement type
             * shall have at most one entry in this list, representing the range of measurements in the most recent
             * measurement period.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.4
             */
            readonly ranges: OptionalAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall be the type of measurement for the range provided.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.1
                 */
                measurementType: import("../tlv/TlvObject.js").FieldType<MeasurementType>;
                /**
                 * This field shall be the smallest measured value for the associated measurement over either the period between
                 * StartTimestamp and EndTimestamp, or the period between StartSystime and EndSystime, or both.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.2
                 */
                min: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                /**
                 * This field shall be the largest measured value for the associated measurement over the period between either
                 * StartTimestamp and EndTimestamp or the period between StartSystime and EndSystime, or both.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.3
                 */
                max: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                /**
                 * This field shall be the timestamp in UTC of the beginning of the measurement period.
                 *
                 * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                 * does not have the capability of determining the time in UTC, this field shall be omitted.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.4
                 */
                startTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the timestamp in UTC of the end of the measurement period.
                 *
                 * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                 * does not have the capability of determining the time in UTC, this field shall be omitted.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.5
                 */
                endTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the most recent timestamp in UTC that the value in the Min field was measured.
                 *
                 * This field shall be greater than or equal to the value of the StartTimestamp field.
                 *
                 * This field shall be less than or equal to the value of the EndTimestamp field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.6
                 */
                minTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the most recent timestamp in UTC of the value in the Max field.
                 *
                 * This field shall be greater than or equal to the value of the StartTimestamp field.
                 *
                 * This field shall be less than or equal to the value of the EndTimestamp field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.7
                 */
                maxTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall be the time since boot of the beginning of the measurement period.
                 *
                 * If the server had determined the time in UTC at or before the start of the measurement period, this field may
                 * be omitted along with the EndSystime, MinSystime, and MaxSystime fields.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.8
                 */
                startSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                /**
                 * This field shall be the time since boot of the end of the measurement period.
                 *
                 * If the server had determined the time in UTC at the end of the measurement period, this field may be omitted
                 * along with the StartSystime field, MinSystime, and MaxSystime fields.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.9
                 */
                endSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                /**
                 * This field shall be the measurement time since boot of the value in the Min field was measured.
                 *
                 * This field shall be greater than or equal to the value of the StartSystime field.
                 *
                 * This field shall be less than or equal to the value of the EndSystime field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.10
                 */
                minSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                /**
                 * This field shall be the measurement time since boot of the value in the Max field.
                 *
                 * This field shall be greater than or equal to the value of the StartSystime field.
                 *
                 * This field shall be less than or equal to the value of the EndSystime field.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.11
                 */
                maxSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
            }>[], any>;
            /**
             * This shall indicate the most recent Voltage reading in millivolts (mV).
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the voltage cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.5
             */
            readonly voltage: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent ActiveCurrent reading in milliamps (mA).
             *
             * A positive value represents current flowing into the server, while a negative value represents current
             * flowing out of the server.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the current cannot be measured, a value of null shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.6
             */
            readonly activeCurrent: OptionalAttribute<number | bigint | null, any>;
            /**
             * This shall indicate the most recent ActivePower reading in milliwatts (mW). If the power cannot be
             * measured, a value of null shall be returned.
             *
             * A positive value represents power imported, while a negative value represents power exported.
             *
             * The reporting interval of this attribute shall be manufacturer dependent. The server may choose to omit
             * publication of deltas considered not meaningful.
             *
             * The server shall NOT mark this attribute ready for report if the last time this was done was more
             * recently than 1 second ago.
             *
             * The server may delay marking this attribute ready for report for longer periods if needed, however the
             * server shall NOT delay marking this attribute as ready for report for longer than 60 seconds.
             *
             * If the Polyphase Power feature is set, this value represents the combined active power imported or
             * exported.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.6.9
             */
            readonly activePower: Attribute<number | bigint | null, any>;
        };
        readonly events: {
            /**
             * If supported, this event shall be generated at the end of a measurement period. The start and end times
             * for measurement periods shall be determined by the server, and may represent overlapping periods.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.13.7.1
             */
            readonly measurementPeriodRanges: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This shall indicate the value of the Ranges attribute at the time of event generation.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 2.13.7.1.1
                 */
                ranges: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall be the type of measurement for the range provided.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.1
                     */
                    measurementType: import("../tlv/TlvObject.js").FieldType<MeasurementType>;
                    /**
                     * This field shall be the smallest measured value for the associated measurement over either the period between
                     * StartTimestamp and EndTimestamp, or the period between StartSystime and EndSystime, or both.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.2
                     */
                    min: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    /**
                     * This field shall be the largest measured value for the associated measurement over the period between either
                     * StartTimestamp and EndTimestamp or the period between StartSystime and EndSystime, or both.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.3
                     */
                    max: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                    /**
                     * This field shall be the timestamp in UTC of the beginning of the measurement period.
                     *
                     * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                     * does not have the capability of determining the time in UTC, this field shall be omitted.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.4
                     */
                    startTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the timestamp in UTC of the end of the measurement period.
                     *
                     * If the server had not yet determined the time in UTC at or before the beginning of the measurement period, or
                     * does not have the capability of determining the time in UTC, this field shall be omitted.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.5
                     */
                    endTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the most recent timestamp in UTC that the value in the Min field was measured.
                     *
                     * This field shall be greater than or equal to the value of the StartTimestamp field.
                     *
                     * This field shall be less than or equal to the value of the EndTimestamp field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.6
                     */
                    minTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the most recent timestamp in UTC of the value in the Max field.
                     *
                     * This field shall be greater than or equal to the value of the StartTimestamp field.
                     *
                     * This field shall be less than or equal to the value of the EndTimestamp field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.7
                     */
                    maxTimestamp: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall be the time since boot of the beginning of the measurement period.
                     *
                     * If the server had determined the time in UTC at or before the start of the measurement period, this field may
                     * be omitted along with the EndSystime, MinSystime, and MaxSystime fields.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.8
                     */
                    startSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    /**
                     * This field shall be the time since boot of the end of the measurement period.
                     *
                     * If the server had determined the time in UTC at the end of the measurement period, this field may be omitted
                     * along with the StartSystime field, MinSystime, and MaxSystime fields.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.9
                     */
                    endSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    /**
                     * This field shall be the measurement time since boot of the value in the Min field was measured.
                     *
                     * This field shall be greater than or equal to the value of the StartSystime field.
                     *
                     * This field shall be less than or equal to the value of the EndSystime field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.10
                     */
                    minSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                    /**
                     * This field shall be the measurement time since boot of the value in the Max field.
                     *
                     * This field shall be greater than or equal to the value of the StartSystime field.
                     *
                     * This field shall be less than or equal to the value of the EndSystime field.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.13.5.3.11
                     */
                    maxSystime: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
                }>[]>;
            }>, any>;
        };
    }, []>;
    /**
     * This cluster supports all ElectricalPowerMeasurement 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 ElectricalPowerMeasurementCluster = ElectricalPowerMeasurement.Cluster;
export declare const ElectricalPowerMeasurementCluster: ElectricalPowerMeasurement.Cluster;
//# sourceMappingURL=electrical-power-measurement.d.ts.map