/**
 * @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 { BitFlag } from "../schema/BitmapSchema.js";
import { FabricScopedAttribute, Attribute, Command, Event } from "../cluster/Cluster.js";
import { TypeFromSchema } from "../tlv/TlvSchema.js";
import { Identity } from "#general";
export declare namespace Messages {
    /**
     * These are optional features supported by MessagesCluster.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.4
     */
    enum Feature {
        /**
         * ReceivedConfirmation (CONF)
         *
         * This feature shall indicate that the device can get confirmation from a user that the message was received.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.1
         */
        ReceivedConfirmation = "ReceivedConfirmation",
        /**
         * ConfirmationResponse (RESP)
         *
         * This feature shall indicate that the device is capable of presenting a list of responses to the user and
         * recording the user’s choice of response.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.2
         */
        ConfirmationResponse = "ConfirmationResponse",
        /**
         * ConfirmationReply (RPLY)
         *
         * This feature shall indicate that the device is capable of collecting a free-form text response to a message.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.3
         */
        ConfirmationReply = "ConfirmationReply",
        /**
         * ProtectedMessages (PROT)
         *
         * This feature shall indicate that the device is capable of requiring the user to authenticate before viewing a
         * message; e.g. entering a PIN or password before viewing a message with billing information.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.4
         */
        ProtectedMessages = "ProtectedMessages"
    }
    /**
     * Priority SHOULD be used to decide which messages to show when the number of eligible messages is larger than the
     * device’s capacity to present them.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.4
     */
    enum MessagePriority {
        /**
         * Message to be transferred with a low level of importance
         */
        Low = 0,
        /**
         * Message to be transferred with a medium level of importance
         */
        Medium = 1,
        /**
         * Message to be transferred with a high level of importance
         */
        High = 2,
        /**
         * Message to be transferred with a critical level of importance
         */
        Critical = 3
    }
    /**
     * This data type is derived from map16, and indicates control information related to a message.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2
     */
    const MessageControl: {
        /**
         * Message requires confirmation from user
         *
         * This bit shall indicate that the message originator requests a confirmation of receipt by the user. If
         * confirmation is required, the device SHOULD present the message until it is either confirmed by the user
         * selecting a confirmation option, or the message expires.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.1
         */
        confirmationRequired: BitFlag;
        /**
         * Message requires response from user
         *
         * This bit shall indicate that a MessagePresented event SHOULD be generated based on the response of the user
         * to the message.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.2
         */
        responseRequired: BitFlag;
        /**
         * Message supports reply message from user
         *
         * This bit shall indicate that a free-form user reply is to be included in the confirmation of receipt.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.3
         */
        replyMessage: BitFlag;
        /**
         * Message has already been confirmed
         *
         * This bit shall indicate the current confirmation state of a message, which is useful in the event that there
         * are multiple Messages cluster client devices on a network.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.4
         */
        messageConfirmed: BitFlag;
        /**
         * Message required PIN/password protection
         *
         * This bit shall indicate that user authentication (e.g. by password or PIN) is required before viewing a
         * message.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.5
         */
        messageProtected: BitFlag;
    };
    /**
     * This represents a possible response to a message.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6
     */
    const TlvMessageResponseOption: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate a unique unsigned 32-bit number identifier for this message response option.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.1
         */
        messageResponseId: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall indicate the text for this option; e.g. "Yes", "No", etc.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.2
         */
        label: import("../tlv/TlvObject.js").FieldType<string>;
    }>;
    /**
     * This represents a possible response to a message.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6
     */
    interface MessageResponseOption extends TypeFromSchema<typeof TlvMessageResponseOption> {
    }
    /**
     * This represents a single message.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5
     */
    const TlvMessage: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate a globally unique ID for this message.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.1
         */
        messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
        /**
         * This field shall indicate the priority level for this message.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.2
         */
        priority: import("../tlv/TlvObject.js").FieldType<MessagePriority>;
        /**
         * This field shall indicate control information related to the message.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.3
         */
        messageControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
            /**
             * Message requires confirmation from user
             *
             * This bit shall indicate that the message originator requests a confirmation of receipt by the user. If
             * confirmation is required, the device SHOULD present the message until it is either confirmed by the user
             * selecting a confirmation option, or the message expires.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.1
             */
            confirmationRequired: BitFlag;
            /**
             * Message requires response from user
             *
             * This bit shall indicate that a MessagePresented event SHOULD be generated based on the response of the user
             * to the message.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.2
             */
            responseRequired: BitFlag;
            /**
             * Message supports reply message from user
             *
             * This bit shall indicate that a free-form user reply is to be included in the confirmation of receipt.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.3
             */
            replyMessage: BitFlag;
            /**
             * Message has already been confirmed
             *
             * This bit shall indicate the current confirmation state of a message, which is useful in the event that there
             * are multiple Messages cluster client devices on a network.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.4
             */
            messageConfirmed: BitFlag;
            /**
             * Message required PIN/password protection
             *
             * This bit shall indicate that user authentication (e.g. by password or PIN) is required before viewing a
             * message.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.5
             */
            messageProtected: BitFlag;
        }>>;
        /**
         * This field shall indicate the time in UTC at which the message becomes available to be presented. A null
         * value shall indicate "now."
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.4
         */
        startTime: import("../tlv/TlvObject.js").FieldType<number | null>;
        /**
         * This field shall indicate the amount of time, in milliseconds, after the StartTime during which the message
         * is available to be presented. A null value shall indicate "until changed".
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.5
         */
        duration: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
        /**
         * This field shall indicate a string containing the message to be presented.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.6
         */
        messageText: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall indicate a list of potential responses to the message. The entries in this list shall have
         * unique values of MessageResponseID.
         *
         * If the ResponseRequired bit is set on the message but this list is empty, the device shall provide a generic
         * acknowledgement button, e.g. "OK".
         *
         * If the ResponseRequired bit is not set on the message, this list shall be ignored.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.7
         */
        responses: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall indicate a unique unsigned 32-bit number identifier for this message response option.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.1
             */
            messageResponseId: import("../tlv/TlvObject.js").FieldType<number>;
            /**
             * This field shall indicate the text for this option; e.g. "Yes", "No", etc.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.2
             */
            label: import("../tlv/TlvObject.js").FieldType<string>;
        }>[]>;
        fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
    }>;
    /**
     * This represents a single message.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5
     */
    interface Message extends TypeFromSchema<typeof TlvMessage> {
    }
    /**
     * Input to the Messages presentMessagesRequest command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1
     */
    const TlvPresentMessagesRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate a globally unique ID for this message. See MessageID.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.1
         */
        messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
        /**
         * This field shall indicate the priority level for this message. See Priority.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.2
         */
        priority: import("../tlv/TlvObject.js").FieldType<MessagePriority>;
        /**
         * This field shall indicate control information related to the message. See MessageControl.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.3
         */
        messageControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
            /**
             * Message requires confirmation from user
             *
             * This bit shall indicate that the message originator requests a confirmation of receipt by the user. If
             * confirmation is required, the device SHOULD present the message until it is either confirmed by the user
             * selecting a confirmation option, or the message expires.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.1
             */
            confirmationRequired: BitFlag;
            /**
             * Message requires response from user
             *
             * This bit shall indicate that a MessagePresented event SHOULD be generated based on the response of the user
             * to the message.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.2
             */
            responseRequired: BitFlag;
            /**
             * Message supports reply message from user
             *
             * This bit shall indicate that a free-form user reply is to be included in the confirmation of receipt.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.3
             */
            replyMessage: BitFlag;
            /**
             * Message has already been confirmed
             *
             * This bit shall indicate the current confirmation state of a message, which is useful in the event that there
             * are multiple Messages cluster client devices on a network.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.4
             */
            messageConfirmed: BitFlag;
            /**
             * Message required PIN/password protection
             *
             * This bit shall indicate that user authentication (e.g. by password or PIN) is required before viewing a
             * message.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.5
             */
            messageProtected: BitFlag;
        }>>;
        /**
         * This field shall indicate the time in UTC at which the message becomes available to be presented. A null
         * value shall indicate "now." See StartTime.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.4
         */
        startTime: import("../tlv/TlvObject.js").FieldType<number | null>;
        /**
         * This field shall indicate the amount of time, in milliseconds, after the StartTime during which the message
         * is available to be presented. A null value shall indicate "until changed". See Duration.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.5
         */
        duration: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
        /**
         * This field shall indicate a string containing the message to be presented. See MessageText.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.6
         */
        messageText: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall indicate a list of potential responses to the message. The entries in this list shall have
         * unique values of MessageResponseID.
         *
         * If the ResponseRequired bit is set on the message but this list is empty, the device shall provide a generic
         * acknowledgement button, e.g. "OK".
         *
         * If the ResponseRequired bit is not set on the message, this list shall be ignored.
         *
         * See Responses.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.7
         */
        responses: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall indicate a unique unsigned 32-bit number identifier for this message response option.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.1
             */
            messageResponseId: import("../tlv/TlvObject.js").FieldType<number>;
            /**
             * This field shall indicate the text for this option; e.g. "Yes", "No", etc.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.2
             */
            label: import("../tlv/TlvObject.js").FieldType<string>;
        }>[]>;
    }>;
    /**
     * Input to the Messages presentMessagesRequest command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1
     */
    interface PresentMessagesRequest extends TypeFromSchema<typeof TlvPresentMessagesRequest> {
    }
    /**
     * Input to the Messages cancelMessagesRequest command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.2
     */
    const TlvCancelMessagesRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the MessageIDs for the messages being cancelled.
         *
         * Cancelling a message shall cause it to be removed from Messages, cause its MessageID to be removed from
         * ActiveMessageIDs and cause any active presentation of the message to cease.
         *
         * Message IDs in this command that indicate messages that do not exist in Messages, or that are not scoped to
         * the fabric of the sender, shall be ignored.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.2.1
         */
        messageIDs: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
    }>;
    /**
     * Input to the Messages cancelMessagesRequest command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.2
     */
    interface CancelMessagesRequest extends TypeFromSchema<typeof TlvCancelMessagesRequest> {
    }
    /**
     * Body of the Messages messageQueued event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.1
     */
    const TlvMessageQueuedEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the MessageID for newly added message.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.1.1
         */
        messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
        fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
    }>;
    /**
     * Body of the Messages messageQueued event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.1
     */
    interface MessageQueuedEvent extends TypeFromSchema<typeof TlvMessageQueuedEvent> {
    }
    /**
     * Body of the Messages messagePresented event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.2
     */
    const TlvMessagePresentedEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the MessageID for the message being presented.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.2.1
         */
        messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
        fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
    }>;
    /**
     * Body of the Messages messagePresented event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.2
     */
    interface MessagePresentedEvent extends TypeFromSchema<typeof TlvMessagePresentedEvent> {
    }
    /**
     * A display device may include this preference in the MessageComplete event as a hint to clients about how to
     * handle future similar messages.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.3
     */
    enum FutureMessagePreference {
        /**
         * Similar messages are allowed
         */
        Allowed = 0,
        /**
         * Similar messages should be sent more often
         */
        Increased = 1,
        /**
         * Similar messages should be sent less often
         */
        Reduced = 2,
        /**
         * Similar messages should not be sent
         */
        Disallowed = 3,
        /**
         * No further messages should be sent
         */
        Banned = 4
    }
    /**
     * Body of the Messages messageComplete event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3
     */
    const TlvMessageCompleteEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the MessageID for the message being confirmed.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3.1
         */
        messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
        /**
         * This field shall indicate the MessageResponseID selected by the user. If there was no response before the
         * Duration field of the message has elapsed, this field shall be null.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3.2
         */
        responseId: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
        /**
         * This field shall indicate a user-provided reply to the message. If there was no reply, or the message did not
         * have the ReplyRequired bit set, this field shall be null.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3.3
         */
        reply: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
        futureMessagesPreference: import("../tlv/TlvObject.js").FieldType<FutureMessagePreference | null>;
        fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
    }>;
    /**
     * Body of the Messages messageComplete event
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3
     */
    interface MessageCompleteEvent extends TypeFromSchema<typeof TlvMessageCompleteEvent> {
    }
    /**
     * These elements and properties are present in all Messages clusters.
     */
    const Base: {
        readonly id: 151;
        readonly name: "Messages";
        readonly revision: 3;
        readonly features: {
            /**
             * This feature shall indicate that the device can get confirmation from a user that the message was
             * received.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.1
             */
            readonly receivedConfirmation: BitFlag;
            /**
             * This feature shall indicate that the device is capable of presenting a list of responses to the user and
             * recording the user’s choice of response.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.2
             */
            readonly confirmationResponse: BitFlag;
            /**
             * This feature shall indicate that the device is capable of collecting a free-form text response to a
             * message.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.3
             */
            readonly confirmationReply: BitFlag;
            /**
             * This feature shall indicate that the device is capable of requiring the user to authenticate before
             * viewing a message; e.g. entering a PIN or password before viewing a message with billing information.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.4
             */
            readonly protectedMessages: BitFlag;
        };
        readonly attributes: {
            /**
             * Indicates a list of queued messages.
             *
             * In addition to filtering based upon fabric, to preserve user privacy, the server may further limit the
             * set of messages returned in a read request. At minimum, the server shall return to a client those
             * messages that the client itself created/submitted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.6.1
             */
            readonly messages: FabricScopedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate a globally unique ID for this message.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.1
                 */
                messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the priority level for this message.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.2
                 */
                priority: import("../tlv/TlvObject.js").FieldType<MessagePriority>;
                /**
                 * This field shall indicate control information related to the message.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.3
                 */
                messageControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                    /**
                     * Message requires confirmation from user
                     *
                     * This bit shall indicate that the message originator requests a confirmation of receipt by the user. If
                     * confirmation is required, the device SHOULD present the message until it is either confirmed by the user
                     * selecting a confirmation option, or the message expires.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.1
                     */
                    confirmationRequired: BitFlag;
                    /**
                     * Message requires response from user
                     *
                     * This bit shall indicate that a MessagePresented event SHOULD be generated based on the response of the user
                     * to the message.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.2
                     */
                    responseRequired: BitFlag;
                    /**
                     * Message supports reply message from user
                     *
                     * This bit shall indicate that a free-form user reply is to be included in the confirmation of receipt.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.3
                     */
                    replyMessage: BitFlag;
                    /**
                     * Message has already been confirmed
                     *
                     * This bit shall indicate the current confirmation state of a message, which is useful in the event that there
                     * are multiple Messages cluster client devices on a network.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.4
                     */
                    messageConfirmed: BitFlag;
                    /**
                     * Message required PIN/password protection
                     *
                     * This bit shall indicate that user authentication (e.g. by password or PIN) is required before viewing a
                     * message.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.5
                     */
                    messageProtected: BitFlag;
                }>>;
                /**
                 * This field shall indicate the time in UTC at which the message becomes available to be presented. A null
                 * value shall indicate "now."
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.4
                 */
                startTime: import("../tlv/TlvObject.js").FieldType<number | null>;
                /**
                 * This field shall indicate the amount of time, in milliseconds, after the StartTime during which the message
                 * is available to be presented. A null value shall indicate "until changed".
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.5
                 */
                duration: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
                /**
                 * This field shall indicate a string containing the message to be presented.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.6
                 */
                messageText: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate a list of potential responses to the message. The entries in this list shall have
                 * unique values of MessageResponseID.
                 *
                 * If the ResponseRequired bit is set on the message but this list is empty, the device shall provide a generic
                 * acknowledgement button, e.g. "OK".
                 *
                 * If the ResponseRequired bit is not set on the message, this list shall be ignored.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.7
                 */
                responses: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate a unique unsigned 32-bit number identifier for this message response option.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.1
                     */
                    messageResponseId: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate the text for this option; e.g. "Yes", "No", etc.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.2
                     */
                    label: import("../tlv/TlvObject.js").FieldType<string>;
                }>[]>;
                fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
            }>[], any>;
            /**
             * Indicates a list of the MessageIDs of the Messages currently being presented. If this list is empty, no
             * messages are currently being presented.
             *
             * This list shall NOT be fabric-scoped; it shall contain MessageIDs for all Messages being presented, no
             * matter what fabric the client that queued them is on.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.6.2
             */
            readonly activeMessageIDs: Attribute<AllowSharedBufferSource[], any>;
        };
        readonly commands: {
            /**
             * Upon receipt, this shall cause the message in the passed fields to be appended to the Messages attribute.
             *
             * If appending the message would cause the number of messages to be greater than the capacity of the list,
             * the device shall NOT append any message to Messages, and shall return a status code of
             * RESOURCE_EXHAUSTED.
             *
             * When displaying a message in response to this command, an indication (ex. visual) of the origin node of
             * the command shall be provided. This could be in the form of a friendly name label which uniquely
             * identifies the node to the user. This friendly name label is typically assigned by the Matter Admin at
             * the time of commissioning and, when it’s a device, is often editable by the user. It might be a
             * combination of a company name and friendly name, for example, ”Acme” or “Acme Streaming Service on
             * Alice’s Phone”.
             *
             * > [!NOTE]
             *
             * > It is currently not specified where the friendly name label can be found on the node, meaning that
             *   clients SHOULD NOT rely on a certain method they happen to observe in a particular server instance,
             *   since other instances could employ a different method.
             *
             * The device SHOULD make it possible for the user to view which nodes have access to this cluster and to
             * individually remove privileges for each node.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1
             */
            readonly presentMessagesRequest: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate a globally unique ID for this message. See MessageID.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.1
                 */
                messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the priority level for this message. See Priority.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.2
                 */
                priority: import("../tlv/TlvObject.js").FieldType<MessagePriority>;
                /**
                 * This field shall indicate control information related to the message. See MessageControl.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.3
                 */
                messageControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                    /**
                     * Message requires confirmation from user
                     *
                     * This bit shall indicate that the message originator requests a confirmation of receipt by the user. If
                     * confirmation is required, the device SHOULD present the message until it is either confirmed by the user
                     * selecting a confirmation option, or the message expires.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.1
                     */
                    confirmationRequired: BitFlag;
                    /**
                     * Message requires response from user
                     *
                     * This bit shall indicate that a MessagePresented event SHOULD be generated based on the response of the user
                     * to the message.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.2
                     */
                    responseRequired: BitFlag;
                    /**
                     * Message supports reply message from user
                     *
                     * This bit shall indicate that a free-form user reply is to be included in the confirmation of receipt.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.3
                     */
                    replyMessage: BitFlag;
                    /**
                     * Message has already been confirmed
                     *
                     * This bit shall indicate the current confirmation state of a message, which is useful in the event that there
                     * are multiple Messages cluster client devices on a network.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.4
                     */
                    messageConfirmed: BitFlag;
                    /**
                     * Message required PIN/password protection
                     *
                     * This bit shall indicate that user authentication (e.g. by password or PIN) is required before viewing a
                     * message.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.5
                     */
                    messageProtected: BitFlag;
                }>>;
                /**
                 * This field shall indicate the time in UTC at which the message becomes available to be presented. A null
                 * value shall indicate "now." See StartTime.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.4
                 */
                startTime: import("../tlv/TlvObject.js").FieldType<number | null>;
                /**
                 * This field shall indicate the amount of time, in milliseconds, after the StartTime during which the message
                 * is available to be presented. A null value shall indicate "until changed". See Duration.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.5
                 */
                duration: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
                /**
                 * This field shall indicate a string containing the message to be presented. See MessageText.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.6
                 */
                messageText: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate a list of potential responses to the message. The entries in this list shall have
                 * unique values of MessageResponseID.
                 *
                 * If the ResponseRequired bit is set on the message but this list is empty, the device shall provide a generic
                 * acknowledgement button, e.g. "OK".
                 *
                 * If the ResponseRequired bit is not set on the message, this list shall be ignored.
                 *
                 * See Responses.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.7
                 */
                responses: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate a unique unsigned 32-bit number identifier for this message response option.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.1
                     */
                    messageResponseId: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate the text for this option; e.g. "Yes", "No", etc.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.2
                     */
                    label: import("../tlv/TlvObject.js").FieldType<string>;
                }>[]>;
            }>, void, any>;
            /**
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.2
             */
            readonly cancelMessagesRequest: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the MessageIDs for the messages being cancelled.
                 *
                 * Cancelling a message shall cause it to be removed from Messages, cause its MessageID to be removed from
                 * ActiveMessageIDs and cause any active presentation of the message to cease.
                 *
                 * Message IDs in this command that indicate messages that do not exist in Messages, or that are not scoped to
                 * the fabric of the sender, shall be ignored.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.2.1
                 */
                messageIDs: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
            }>, void, any>;
        };
        readonly events: {
            /**
             * This event shall be generated when a message is added to the messages attribute.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.1
             */
            readonly messageQueued: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the MessageID for newly added message.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.1.1
                 */
                messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
            }>, any>;
            /**
             * This event shall be generated when the message is presented to the user.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.2
             */
            readonly messagePresented: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the MessageID for the message being presented.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.2.1
                 */
                messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
            }>, any>;
            /**
             * This event shall be generated when the message is confirmed by the user, or when the Duration field of
             * the message has elapsed without confirmation.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3
             */
            readonly messageComplete: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the MessageID for the message being confirmed.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3.1
                 */
                messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the MessageResponseID selected by the user. If there was no response before the
                 * Duration field of the message has elapsed, this field shall be null.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3.2
                 */
                responseId: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
                /**
                 * This field shall indicate a user-provided reply to the message. If there was no reply, or the message did not
                 * have the ReplyRequired bit set, this field shall be null.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3.3
                 */
                reply: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
                futureMessagesPreference: import("../tlv/TlvObject.js").FieldType<FutureMessagePreference | null>;
                fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
            }>, any>;
        };
        /**
         * This metadata controls which MessagesCluster elements matter.js activates for specific feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly confirmationResponse: true;
                readonly receivedConfirmation: false;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly confirmationReply: true;
                readonly receivedConfirmation: false;
            };
            readonly component: false;
        }];
    };
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster<{
        readonly id: 151;
        readonly name: "Messages";
        readonly revision: 3;
        readonly features: {
            /**
             * This feature shall indicate that the device can get confirmation from a user that the message was
             * received.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.1
             */
            readonly receivedConfirmation: BitFlag;
            /**
             * This feature shall indicate that the device is capable of presenting a list of responses to the user and
             * recording the user’s choice of response.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.2
             */
            readonly confirmationResponse: BitFlag;
            /**
             * This feature shall indicate that the device is capable of collecting a free-form text response to a
             * message.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.3
             */
            readonly confirmationReply: BitFlag;
            /**
             * This feature shall indicate that the device is capable of requiring the user to authenticate before
             * viewing a message; e.g. entering a PIN or password before viewing a message with billing information.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.4.4
             */
            readonly protectedMessages: BitFlag;
        };
        readonly attributes: {
            /**
             * Indicates a list of queued messages.
             *
             * In addition to filtering based upon fabric, to preserve user privacy, the server may further limit the
             * set of messages returned in a read request. At minimum, the server shall return to a client those
             * messages that the client itself created/submitted.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.6.1
             */
            readonly messages: FabricScopedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate a globally unique ID for this message.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.1
                 */
                messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the priority level for this message.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.2
                 */
                priority: import("../tlv/TlvObject.js").FieldType<MessagePriority>;
                /**
                 * This field shall indicate control information related to the message.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.3
                 */
                messageControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                    /**
                     * Message requires confirmation from user
                     *
                     * This bit shall indicate that the message originator requests a confirmation of receipt by the user. If
                     * confirmation is required, the device SHOULD present the message until it is either confirmed by the user
                     * selecting a confirmation option, or the message expires.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.1
                     */
                    confirmationRequired: BitFlag;
                    /**
                     * Message requires response from user
                     *
                     * This bit shall indicate that a MessagePresented event SHOULD be generated based on the response of the user
                     * to the message.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.2
                     */
                    responseRequired: BitFlag;
                    /**
                     * Message supports reply message from user
                     *
                     * This bit shall indicate that a free-form user reply is to be included in the confirmation of receipt.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.3
                     */
                    replyMessage: BitFlag;
                    /**
                     * Message has already been confirmed
                     *
                     * This bit shall indicate the current confirmation state of a message, which is useful in the event that there
                     * are multiple Messages cluster client devices on a network.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.4
                     */
                    messageConfirmed: BitFlag;
                    /**
                     * Message required PIN/password protection
                     *
                     * This bit shall indicate that user authentication (e.g. by password or PIN) is required before viewing a
                     * message.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.5
                     */
                    messageProtected: BitFlag;
                }>>;
                /**
                 * This field shall indicate the time in UTC at which the message becomes available to be presented. A null
                 * value shall indicate "now."
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.4
                 */
                startTime: import("../tlv/TlvObject.js").FieldType<number | null>;
                /**
                 * This field shall indicate the amount of time, in milliseconds, after the StartTime during which the message
                 * is available to be presented. A null value shall indicate "until changed".
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.5
                 */
                duration: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
                /**
                 * This field shall indicate a string containing the message to be presented.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.6
                 */
                messageText: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate a list of potential responses to the message. The entries in this list shall have
                 * unique values of MessageResponseID.
                 *
                 * If the ResponseRequired bit is set on the message but this list is empty, the device shall provide a generic
                 * acknowledgement button, e.g. "OK".
                 *
                 * If the ResponseRequired bit is not set on the message, this list shall be ignored.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.5.7
                 */
                responses: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate a unique unsigned 32-bit number identifier for this message response option.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.1
                     */
                    messageResponseId: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate the text for this option; e.g. "Yes", "No", etc.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.2
                     */
                    label: import("../tlv/TlvObject.js").FieldType<string>;
                }>[]>;
                fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
            }>[], any>;
            /**
             * Indicates a list of the MessageIDs of the Messages currently being presented. If this list is empty, no
             * messages are currently being presented.
             *
             * This list shall NOT be fabric-scoped; it shall contain MessageIDs for all Messages being presented, no
             * matter what fabric the client that queued them is on.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.6.2
             */
            readonly activeMessageIDs: Attribute<AllowSharedBufferSource[], any>;
        };
        readonly commands: {
            /**
             * Upon receipt, this shall cause the message in the passed fields to be appended to the Messages attribute.
             *
             * If appending the message would cause the number of messages to be greater than the capacity of the list,
             * the device shall NOT append any message to Messages, and shall return a status code of
             * RESOURCE_EXHAUSTED.
             *
             * When displaying a message in response to this command, an indication (ex. visual) of the origin node of
             * the command shall be provided. This could be in the form of a friendly name label which uniquely
             * identifies the node to the user. This friendly name label is typically assigned by the Matter Admin at
             * the time of commissioning and, when it’s a device, is often editable by the user. It might be a
             * combination of a company name and friendly name, for example, ”Acme” or “Acme Streaming Service on
             * Alice’s Phone”.
             *
             * > [!NOTE]
             *
             * > It is currently not specified where the friendly name label can be found on the node, meaning that
             *   clients SHOULD NOT rely on a certain method they happen to observe in a particular server instance,
             *   since other instances could employ a different method.
             *
             * The device SHOULD make it possible for the user to view which nodes have access to this cluster and to
             * individually remove privileges for each node.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1
             */
            readonly presentMessagesRequest: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate a globally unique ID for this message. See MessageID.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.1
                 */
                messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the priority level for this message. See Priority.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.2
                 */
                priority: import("../tlv/TlvObject.js").FieldType<MessagePriority>;
                /**
                 * This field shall indicate control information related to the message. See MessageControl.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.3
                 */
                messageControl: import("../tlv/TlvObject.js").FieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                    /**
                     * Message requires confirmation from user
                     *
                     * This bit shall indicate that the message originator requests a confirmation of receipt by the user. If
                     * confirmation is required, the device SHOULD present the message until it is either confirmed by the user
                     * selecting a confirmation option, or the message expires.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.1
                     */
                    confirmationRequired: BitFlag;
                    /**
                     * Message requires response from user
                     *
                     * This bit shall indicate that a MessagePresented event SHOULD be generated based on the response of the user
                     * to the message.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.2
                     */
                    responseRequired: BitFlag;
                    /**
                     * Message supports reply message from user
                     *
                     * This bit shall indicate that a free-form user reply is to be included in the confirmation of receipt.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.3
                     */
                    replyMessage: BitFlag;
                    /**
                     * Message has already been confirmed
                     *
                     * This bit shall indicate the current confirmation state of a message, which is useful in the event that there
                     * are multiple Messages cluster client devices on a network.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.4
                     */
                    messageConfirmed: BitFlag;
                    /**
                     * Message required PIN/password protection
                     *
                     * This bit shall indicate that user authentication (e.g. by password or PIN) is required before viewing a
                     * message.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.2.5
                     */
                    messageProtected: BitFlag;
                }>>;
                /**
                 * This field shall indicate the time in UTC at which the message becomes available to be presented. A null
                 * value shall indicate "now." See StartTime.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.4
                 */
                startTime: import("../tlv/TlvObject.js").FieldType<number | null>;
                /**
                 * This field shall indicate the amount of time, in milliseconds, after the StartTime during which the message
                 * is available to be presented. A null value shall indicate "until changed". See Duration.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.5
                 */
                duration: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
                /**
                 * This field shall indicate a string containing the message to be presented. See MessageText.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.6
                 */
                messageText: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate a list of potential responses to the message. The entries in this list shall have
                 * unique values of MessageResponseID.
                 *
                 * If the ResponseRequired bit is set on the message but this list is empty, the device shall provide a generic
                 * acknowledgement button, e.g. "OK".
                 *
                 * If the ResponseRequired bit is not set on the message, this list shall be ignored.
                 *
                 * See Responses.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.1.7
                 */
                responses: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate a unique unsigned 32-bit number identifier for this message response option.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.1
                     */
                    messageResponseId: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate the text for this option; e.g. "Yes", "No", etc.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 1.16.5.6.2
                     */
                    label: import("../tlv/TlvObject.js").FieldType<string>;
                }>[]>;
            }>, void, any>;
            /**
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.2
             */
            readonly cancelMessagesRequest: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the MessageIDs for the messages being cancelled.
                 *
                 * Cancelling a message shall cause it to be removed from Messages, cause its MessageID to be removed from
                 * ActiveMessageIDs and cause any active presentation of the message to cease.
                 *
                 * Message IDs in this command that indicate messages that do not exist in Messages, or that are not scoped to
                 * the fabric of the sender, shall be ignored.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.7.2.1
                 */
                messageIDs: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
            }>, void, any>;
        };
        readonly events: {
            /**
             * This event shall be generated when a message is added to the messages attribute.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.1
             */
            readonly messageQueued: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the MessageID for newly added message.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.1.1
                 */
                messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
            }>, any>;
            /**
             * This event shall be generated when the message is presented to the user.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.2
             */
            readonly messagePresented: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the MessageID for the message being presented.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.2.1
                 */
                messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
            }>, any>;
            /**
             * This event shall be generated when the message is confirmed by the user, or when the Duration field of
             * the message has elapsed without confirmation.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3
             */
            readonly messageComplete: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the MessageID for the message being confirmed.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3.1
                 */
                messageId: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the MessageResponseID selected by the user. If there was no response before the
                 * Duration field of the message has elapsed, this field shall be null.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3.2
                 */
                responseId: import("../tlv/TlvObject.js").OptionalFieldType<number | null>;
                /**
                 * This field shall indicate a user-provided reply to the message. If there was no reply, or the message did not
                 * have the ReplyRequired bit set, this field shall be null.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 1.16.8.3.3
                 */
                reply: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
                futureMessagesPreference: import("../tlv/TlvObject.js").FieldType<FutureMessagePreference | null>;
                fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
            }>, any>;
        };
        /**
         * This metadata controls which MessagesCluster elements matter.js activates for specific feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly confirmationResponse: true;
                readonly receivedConfirmation: false;
            };
            readonly component: false;
        }, {
            readonly flags: {
                readonly confirmationReply: true;
                readonly receivedConfirmation: false;
            };
            readonly component: false;
        }];
    }, []>;
    /**
     * This cluster provides an interface for passing messages to be presented by a device.
     *
     * MessagesCluster supports optional features that you can enable with the MessagesCluster.with() factory method.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 1.16
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    const Complete: Cluster;
}
export type MessagesCluster = Messages.Cluster;
export declare const MessagesCluster: Messages.Cluster;
//# sourceMappingURL=messages.d.ts.map