/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
import { Attribute, OptionalAttribute } from "../cluster/Cluster.js";
import { BitFlag } from "../schema/BitmapSchema.js";
import { Identity } from "#general";
export declare namespace PressureMeasurement {
    /**
     * These are optional features supported by PressureMeasurementCluster.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.4.4
     */
    enum Feature {
        /**
         * Extended (EXT)
         *
         * Extended range and resolution
         */
        Extended = "Extended"
    }
    /**
     * A PressureMeasurementCluster supports these elements if it supports feature Extended.
     */
    const ExtendedComponent: {
        readonly attributes: {
            /**
             * Indicates the pressure in Pascals as follows:
             *
             * ScaledValue = 10Scale x Pressure [Pa]
             *
             * The null value indicates that the value is not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.5
             */
            readonly scaledValue: Attribute<number | null, any>;
            /**
             * Indicates the minimum value of ScaledValue that can be measured.
             *
             * The null value indicates that the value is not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.6
             */
            readonly minScaledValue: Attribute<number | null, any>;
            /**
             * Indicates the maximum value of ScaledValue that can be measured.
             *
             * The null value indicates that the value is not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.7
             */
            readonly maxScaledValue: Attribute<number | null, any>;
            /**
             * Indicates the magnitude of the possible error that is associated with ScaledValue. The true value is
             * located in the range
             *
             * (ScaledValue – ScaledTolerance) to (ScaledValue + ScaledTolerance).
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.8
             */
            readonly scaledTolerance: OptionalAttribute<number, any>;
            /**
             * Indicates the base 10 exponent used to obtain ScaledValue (see ScaledValue).
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.9
             */
            readonly scale: Attribute<number, any>;
        };
    };
    /**
     * These elements and properties are present in all PressureMeasurement clusters.
     */
    const Base: {
        readonly id: 1027;
        readonly name: "PressureMeasurement";
        readonly revision: 3;
        readonly features: {
            /**
             * Extended range and resolution
             */
            readonly extended: BitFlag;
        };
        readonly attributes: {
            /**
             * Indicates the pressure in kPa as follows:
             *
             * MeasuredValue = 10 x Pressure [kPa]
             *
             * The null value indicates that the value is not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.1
             */
            readonly measuredValue: Attribute<number | null, any>;
            /**
             * Indicates the minimum value of MeasuredValue that can be measured. See Measured Value for more details.
             *
             * The null value indicates that the value is not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.2
             */
            readonly minMeasuredValue: Attribute<number | null, any>;
            /**
             * Indicates the maximum value of MeasuredValue that can be measured. See Measured Value for more details.
             *
             * The null value indicates that the value is not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.3
             */
            readonly maxMeasuredValue: Attribute<number | null, any>;
            /**
             * See Measured Value.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.4
             */
            readonly tolerance: OptionalAttribute<number, any>;
        };
        /**
         * This metadata controls which PressureMeasurementCluster elements matter.js activates for specific feature
         * combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly extended: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * Indicates the pressure in Pascals as follows:
                     *
                     * ScaledValue = 10Scale x Pressure [Pa]
                     *
                     * The null value indicates that the value is not available.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.5
                     */
                    readonly scaledValue: Attribute<number | null, any>;
                    /**
                     * Indicates the minimum value of ScaledValue that can be measured.
                     *
                     * The null value indicates that the value is not available.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.6
                     */
                    readonly minScaledValue: Attribute<number | null, any>;
                    /**
                     * Indicates the maximum value of ScaledValue that can be measured.
                     *
                     * The null value indicates that the value is not available.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.7
                     */
                    readonly maxScaledValue: Attribute<number | null, any>;
                    /**
                     * Indicates the magnitude of the possible error that is associated with ScaledValue. The true value is
                     * located in the range
                     *
                     * (ScaledValue – ScaledTolerance) to (ScaledValue + ScaledTolerance).
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.8
                     */
                    readonly scaledTolerance: OptionalAttribute<number, any>;
                    /**
                     * Indicates the base 10 exponent used to obtain ScaledValue (see ScaledValue).
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.9
                     */
                    readonly scale: Attribute<number, any>;
                };
            };
        }];
    };
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster<{
        readonly id: 1027;
        readonly name: "PressureMeasurement";
        readonly revision: 3;
        readonly features: {
            /**
             * Extended range and resolution
             */
            readonly extended: BitFlag;
        };
        readonly attributes: {
            /**
             * Indicates the pressure in kPa as follows:
             *
             * MeasuredValue = 10 x Pressure [kPa]
             *
             * The null value indicates that the value is not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.1
             */
            readonly measuredValue: Attribute<number | null, any>;
            /**
             * Indicates the minimum value of MeasuredValue that can be measured. See Measured Value for more details.
             *
             * The null value indicates that the value is not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.2
             */
            readonly minMeasuredValue: Attribute<number | null, any>;
            /**
             * Indicates the maximum value of MeasuredValue that can be measured. See Measured Value for more details.
             *
             * The null value indicates that the value is not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.3
             */
            readonly maxMeasuredValue: Attribute<number | null, any>;
            /**
             * See Measured Value.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.4
             */
            readonly tolerance: OptionalAttribute<number, any>;
        };
        /**
         * This metadata controls which PressureMeasurementCluster elements matter.js activates for specific feature
         * combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly extended: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * Indicates the pressure in Pascals as follows:
                     *
                     * ScaledValue = 10Scale x Pressure [Pa]
                     *
                     * The null value indicates that the value is not available.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.5
                     */
                    readonly scaledValue: Attribute<number | null, any>;
                    /**
                     * Indicates the minimum value of ScaledValue that can be measured.
                     *
                     * The null value indicates that the value is not available.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.6
                     */
                    readonly minScaledValue: Attribute<number | null, any>;
                    /**
                     * Indicates the maximum value of ScaledValue that can be measured.
                     *
                     * The null value indicates that the value is not available.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.7
                     */
                    readonly maxScaledValue: Attribute<number | null, any>;
                    /**
                     * Indicates the magnitude of the possible error that is associated with ScaledValue. The true value is
                     * located in the range
                     *
                     * (ScaledValue – ScaledTolerance) to (ScaledValue + ScaledTolerance).
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.8
                     */
                    readonly scaledTolerance: OptionalAttribute<number, any>;
                    /**
                     * Indicates the base 10 exponent used to obtain ScaledValue (see ScaledValue).
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 2.4.5.9
                     */
                    readonly scale: Attribute<number, any>;
                };
            };
        }];
    }, []>;
    /**
     * This cluster provides an interface to pressure measurement functionality, including configuration and provision
     * of notifications of pressure measurements.
     *
     * PressureMeasurementCluster supports optional features that you can enable with the
     * PressureMeasurementCluster.with() factory method.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.4
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    /**
     * @see {@link Complete}
     */
    const CompleteInstance: MutableCluster<{
        readonly id: import("#general").Branded<1027, "ClusterId">;
        readonly name: "PressureMeasurement";
        readonly revision: 3;
        readonly features: {
            /**
             * Extended range and resolution
             */
            readonly extended: BitFlag;
        };
        readonly attributes: {
            readonly scaledValue: Attribute<number | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    extended: boolean;
                }];
            };
            readonly minScaledValue: Attribute<number | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    extended: boolean;
                }];
            };
            readonly maxScaledValue: Attribute<number | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    extended: boolean;
                }];
            };
            readonly scaledTolerance: OptionalAttribute<number, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | [{
                    extended: boolean;
                }];
                readonly mandatoryIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
            };
            readonly scale: Attribute<number, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    extended: boolean;
                }];
            };
            readonly measuredValue: Attribute<number | null, any>;
            readonly minMeasuredValue: Attribute<number | null, any>;
            readonly maxMeasuredValue: Attribute<number | null, any>;
            readonly tolerance: OptionalAttribute<number, any>;
            readonly clusterRevision: Attribute<number, never>;
            readonly featureMap: Attribute<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                /**
                 * Extended range and resolution
                 */
                readonly extended: BitFlag;
            }>, never>;
            readonly attributeList: Attribute<import("../index.js").AttributeId[], never>;
            readonly acceptedCommandList: Attribute<import("../index.js").CommandId[], never>;
            readonly generatedCommandList: Attribute<import("../index.js").CommandId[], never>;
        };
    }, []>;
    /**
     * This cluster supports all PressureMeasurement 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 PressureMeasurementCluster = PressureMeasurement.Cluster;
export declare const PressureMeasurementCluster: PressureMeasurement.Cluster;
//# sourceMappingURL=pressure-measurement.d.ts.map