/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
import { Attribute, OptionalEvent } from "../cluster/Cluster.js";
import { TypeFromSchema } from "../tlv/TlvSchema.js";
import { Identity } from "#general";
export declare namespace BooleanState {
    /**
     * Body of the BooleanState stateChange event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.7.5.1
     */
    const TlvStateChangeEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the new value of the StateValue attribute.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.7.5.1.1
         */
        stateValue: import("../tlv/TlvObject.js").FieldType<boolean>;
    }>;
    /**
     * Body of the BooleanState stateChange event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.7.5.1
     */
    interface StateChangeEvent extends TypeFromSchema<typeof TlvStateChangeEvent> {
    }
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster<{
        readonly id: 69;
        readonly name: "BooleanState";
        readonly revision: 1;
        readonly attributes: {
            /**
             * This represents a boolean state.
             *
             * The semantics of this boolean state are defined by the device type using this cluster.
             *
             * For example, in a Contact Sensor device type, FALSE=open or no contact, TRUE=closed or contact.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.7.4.1
             */
            readonly stateValue: Attribute<boolean, any>;
        };
        readonly events: {
            /**
             * If this event is supported, it shall be generated when the StateValue attribute changes.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.7.5.1
             */
            readonly stateChange: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the new value of the StateValue attribute.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.7.5.1.1
                 */
                stateValue: import("../tlv/TlvObject.js").FieldType<boolean>;
            }>, any>;
        };
    }, []>;
    /**
     * This cluster provides an interface to a boolean state.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.7
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    const Complete: Cluster;
}
export type BooleanStateCluster = BooleanState.Cluster;
export declare const BooleanStateCluster: BooleanState.Cluster;
//# sourceMappingURL=boolean-state.d.ts.map