/**
 * @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 { Command, Attribute, OptionalAttribute, OptionalEvent, Event } from "../cluster/Cluster.js";
import { TypeFromSchema } from "../tlv/TlvSchema.js";
import { BitFlag } from "../schema/BitmapSchema.js";
import { Identity } from "#general";
export declare namespace GeneralDiagnostics {
    /**
     * These are optional features supported by GeneralDiagnosticsCluster.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.4
     */
    enum Feature {
        /**
         * DataModelTest (DMTEST)
         *
         * This feature indicates support for extended Data Model testing commands, which are required in some
         * situations.
         *
         * This feature shall be supported if the MaxPathsPerInvoke attribute of the Basic Information Cluster has a
         * value > 1.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.4.1
         */
        DataModelTest = "DataModelTest"
    }
    /**
     * Input to the GeneralDiagnostics payloadTestRequest command
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.7.4
     */
    const TlvPayloadTestRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall have the same meaning and usage as the TestEventTrigger EnableKey field.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.1
         */
        enableKey: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
        /**
         * This field shall indicate the value to use in every byte of the PayloadTestResponse’s Payload field.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.2
         */
        value: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall indicate the number of times to repeat the Value in the PayloadTestResponse’s Payload field.
         *
         * ### Effect upon receipt
         *
         * This command shall respond with a response status of CONSTRAINT_ERROR if either:
         *
         *   - The EnableKey field does not match the a-priori value configured on the device.
         *
         *   - The TestEventTriggersEnabled field is currently false.
         *
         * Otherwise, the server shall respond with a PayloadTestResponse command with a Payload field value containing
         * Count instances of the Value byte. If the response is too large to send, the server shall fail the command
         * and respond with a response status of RESOURCE_EXHAUSTED.
         *
         * For example:
         *
         *   - If Value is 0x55 and the Count is zero, then the PayloadTestResponse would have the Payload field set to
         *     an empty octet string.
         *
         *   - If Value is 0xA5 and the Count is 10, the PayloadTestResponse would have the Payload field set to a
         *     content whose hexadecimal representation would be A5A5A5A5A5A5A5A5A5A5, and base64 representation would
         *     be paWlpaWlpaWlpQ==.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.3
         */
        count: import("../tlv/TlvObject.js").FieldType<number>;
    }>;
    /**
     * Input to the GeneralDiagnostics payloadTestRequest command
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.7.4
     */
    interface PayloadTestRequest extends TypeFromSchema<typeof TlvPayloadTestRequest> {
    }
    /**
     * This command is sent by the server on receipt of the PayloadTestRequest command.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.7.5
     */
    const TlvPayloadTestResponse: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall contain the computed response of the PayloadTestRequest command.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.7.5.1
         */
        payload: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
    }>;
    /**
     * This command is sent by the server on receipt of the PayloadTestRequest command.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.7.5
     */
    interface PayloadTestResponse extends TypeFromSchema<typeof TlvPayloadTestResponse> {
    }
    /**
     * @see {@link MatterSpecification.v142.Core} § 11.12.5.4
     */
    enum InterfaceType {
        /**
         * Indicates an interface of an unspecified type.
         */
        Unspecified = 0,
        /**
         * Indicates a Wi-Fi interface.
         */
        WiFi = 1,
        /**
         * Indicates a Ethernet interface.
         */
        Ethernet = 2,
        /**
         * Indicates a Cellular interface.
         */
        Cellular = 3,
        /**
         * Indicates a Thread interface.
         */
        Thread = 4
    }
    /**
     * This structure describes a network interface supported by the Node, as provided in the NetworkInterfaces
     * attribute.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.5.6
     */
    const TlvNetworkInterface: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate a human-readable (displayable) name for the network interface, that is different
         * from all other interfaces.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.1
         */
        name: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall indicate if the Node is currently advertising itself operationally on this network interface
         * and is capable of successfully receiving incoming traffic from other Nodes.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.2
         */
        isOperational: import("../tlv/TlvObject.js").FieldType<boolean>;
        /**
         * This field shall indicate whether the Node is currently able to reach off-premise services it uses by
         * utilizing IPv4. The value shall be null if the Node does not use such services or does not know whether it
         * can reach them.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.3
         */
        offPremiseServicesReachableIPv4: import("../tlv/TlvObject.js").FieldType<boolean | null>;
        /**
         * This field shall indicate whether the Node is currently able to reach off-premise services it uses by
         * utilizing IPv6. The value shall be null if the Node does not use such services or does not know whether it
         * can reach them.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.4
         */
        offPremiseServicesReachableIPv6: import("../tlv/TlvObject.js").FieldType<boolean | null>;
        /**
         * This field shall contain the current link-layer address for a 802.3 or IEEE 802.11-2020 network interface and
         * contain the current extended MAC address for a 802.15.4 interface. The byte order of the octstr shall be in
         * wire byte order. For addresses values less than 64 bits, the first two bytes shall be zero.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.5
         */
        hardwareAddress: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
        /**
         * This field shall provide a list of the IPv4 addresses that are currently assigned to the network interface.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.6
         */
        iPv4Addresses: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
        /**
         * This field shall provide a list of the unicast IPv6 addresses that are currently assigned to the network
         * interface. This list shall include the Node’s link-local address and SHOULD include any assigned GUA and ULA
         * addresses. This list shall NOT include any multicast group addresses to which the Node is subscribed.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.7
         */
        iPv6Addresses: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
        /**
         * This field shall indicate the type of the interface using the InterfaceTypeEnum.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.8
         */
        type: import("../tlv/TlvObject.js").FieldType<InterfaceType>;
    }>;
    /**
     * This structure describes a network interface supported by the Node, as provided in the NetworkInterfaces
     * attribute.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.5.6
     */
    interface NetworkInterface extends TypeFromSchema<typeof TlvNetworkInterface> {
    }
    /**
     * @see {@link MatterSpecification.v142.Core} § 11.12.5.5
     */
    enum BootReason {
        /**
         * The Node is unable to identify the Power-On reason as one of the other provided enumeration values.
         */
        Unspecified = 0,
        /**
         * The Node has booted as the result of physical interaction with the device resulting in a reboot.
         */
        PowerOnReboot = 1,
        /**
         * The Node has rebooted as the result of a brown-out of the Node’s power supply.
         */
        BrownOutReset = 2,
        /**
         * The Node has rebooted as the result of a software watchdog timer.
         */
        SoftwareWatchdogReset = 3,
        /**
         * The Node has rebooted as the result of a hardware watchdog timer.
         */
        HardwareWatchdogReset = 4,
        /**
         * The Node has rebooted as the result of a completed software update.
         */
        SoftwareUpdateCompleted = 5,
        /**
         * The Node has rebooted as the result of a software initiated reboot.
         */
        SoftwareReset = 6
    }
    /**
     * @see {@link MatterSpecification.v142.Core} § 11.12.5.1
     */
    enum HardwareFault {
        /**
         * The Node has encountered an unspecified fault.
         */
        Unspecified = 0,
        /**
         * The Node has encountered a fault with at least one of its radios.
         */
        Radio = 1,
        /**
         * The Node has encountered a fault with at least one of its sensors.
         */
        Sensor = 2,
        /**
         * The Node has encountered an over-temperature fault that is resettable.
         */
        ResettableOverTemp = 3,
        /**
         * The Node has encountered an over-temperature fault that is not resettable.
         */
        NonResettableOverTemp = 4,
        /**
         * The Node has encountered a fault with at least one of its power sources.
         */
        PowerSource = 5,
        /**
         * The Node has encountered a fault with at least one of its visual displays.
         */
        VisualDisplayFault = 6,
        /**
         * The Node has encountered a fault with at least one of its audio outputs.
         */
        AudioOutputFault = 7,
        /**
         * The Node has encountered a fault with at least one of its user interfaces.
         */
        UserInterfaceFault = 8,
        /**
         * The Node has encountered a fault with its non-volatile memory.
         */
        NonVolatileMemoryError = 9,
        /**
         * The Node has encountered disallowed physical tampering.
         */
        TamperDetected = 10
    }
    /**
     * @see {@link MatterSpecification.v142.Core} § 11.12.5.2
     */
    enum RadioFault {
        /**
         * The Node has encountered an unspecified radio fault.
         */
        Unspecified = 0,
        /**
         * The Node has encountered a fault with its Wi-Fi radio.
         */
        WiFiFault = 1,
        /**
         * The Node has encountered a fault with its cellular radio.
         */
        CellularFault = 2,
        /**
         * The Node has encountered a fault with its 802.15.4 radio.
         */
        ThreadFault = 3,
        /**
         * The Node has encountered a fault with its NFC radio.
         */
        NfcFault = 4,
        /**
         * The Node has encountered a fault with its BLE radio.
         */
        BleFault = 5,
        /**
         * The Node has encountered a fault with its Ethernet controller.
         */
        EthernetFault = 6
    }
    /**
     * @see {@link MatterSpecification.v142.Core} § 11.12.5.3
     */
    enum NetworkFault {
        /**
         * The Node has encountered an unspecified fault.
         */
        Unspecified = 0,
        /**
         * The Node has encountered a network fault as a result of a hardware failure.
         */
        HardwareFailure = 1,
        /**
         * The Node has encountered a network fault as a result of a jammed network.
         */
        NetworkJammed = 2,
        /**
         * The Node has encountered a network fault as a result of a failure to establish a connection.
         */
        ConnectionFailed = 3
    }
    /**
     * Input to the GeneralDiagnostics testEventTrigger command
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.7.1
     */
    const TlvTestEventTriggerRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * The EnableKey is a 128 bit value provided by the client in this command, which needs to match a value chosen
         * by the manufacturer and configured on the server using manufacturer-specific means, such as pre-provisioning.
         * The value of all zeroes is reserved to indicate that no EnableKey is set. Therefore, if the EnableKey field
         * is received with all zeroes, this command shall FAIL with a response status of CONSTRAINT_ERROR.
         *
         * The EnableKey SHOULD be unique per exact set of devices going to a certification test.
         *
         * Devices not targeted towards going to a certification test event shall NOT have a non-zero EnableKey value
         * configured, so that only devices in test environments are responsive to this command.
         *
         * In order to prevent unwittingly actuating a particular trigger, this command shall respond with a response
         * status of CONSTRAINT_ERROR if the EnableKey field does not match the a-priori value configured on the device.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.7.1.1
         */
        enableKey: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
        /**
         * This field shall indicate the test or test mode which the client wants to trigger.
         *
         * The expected side-effects of EventTrigger values are out of scope of this specification and will be described
         * within appropriate certification test literature provided to manufacturers by the Connectivity Standards
         * Alliance, in conjunction with certification test cases documentation.
         *
         * Values of EventTrigger in the range 0xFFFF_FFFF_0000_0000 through 0xFFFF_FFFF_FFFF_FFFF are reserved for
         * testing use by manufacturers and will not appear in the Connectivity Standards Alliance certification test
         * literature.
         *
         * If the value of EventTrigger received is not supported by the receiving Node, this command shall fail with a
         * status code of INVALID_COMMAND.
         *
         * Otherwise, if the EnableKey value matches the configured internal value for a particular Node, and the
         * EventTrigger value matches a supported test event trigger value, the command shall succeed and execute the
         * expected trigger action.
         *
         * If no specific test event triggers are required to be supported by certification test requirements for the
         * features that a given product will be certified against, this command may always fail with the
         * INVALID_COMMAND status, equivalent to the situation of receiving an unknown EventTrigger, for all possible
         * EventTrigger values.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.7.1.2
         */
        eventTrigger: import("../tlv/TlvObject.js").FieldType<number | bigint>;
    }>;
    /**
     * Input to the GeneralDiagnostics testEventTrigger command
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.7.1
     */
    interface TestEventTriggerRequest extends TypeFromSchema<typeof TlvTestEventTriggerRequest> {
    }
    /**
     * This command shall be generated in response to a TimeSnapshot command.
     *
     * When generating this response, all fields shall be gathered as close together in time as possible, so that the
     * time jitter between the values is minimized.
     *
     * If the Time Synchronization cluster is supported by the node, the PosixTimeMs field shall NOT be null unless the
     * UTCTime attribute in the Time Synchronization cluster is also null.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.7.3
     */
    const TlvTimeSnapshotResponse: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This shall indicate the current System Time in milliseconds (type systime-ms), with the value taken at the
         * time of processing of the TimeSnapshot command that generated this response.
         *
         * The value shall be taken from the same clock which populates the Timestamp field in events when using System
         * Time for the field.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.7.3.1
         */
        systemTimeMs: import("../tlv/TlvObject.js").FieldType<number | bigint>;
        /**
         * This shall indicate the current time in POSIX Time in milliseconds, with the value taken from the same source
         * that could populate the Timestamp field of events. This value shall only be null when any the following are
         * true:
         *
         *   - The node doesn’t support the Time Synchronization cluster.
         *
         *   - The node’s Time Synchronization cluster instance’s UTCTime attribute is null.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.7.3.2
         */
        posixTimeMs: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
    }>;
    /**
     * This command shall be generated in response to a TimeSnapshot command.
     *
     * When generating this response, all fields shall be gathered as close together in time as possible, so that the
     * time jitter between the values is minimized.
     *
     * If the Time Synchronization cluster is supported by the node, the PosixTimeMs field shall NOT be null unless the
     * UTCTime attribute in the Time Synchronization cluster is also null.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.7.3
     */
    interface TimeSnapshotResponse extends TypeFromSchema<typeof TlvTimeSnapshotResponse> {
    }
    /**
     * Body of the GeneralDiagnostics hardwareFaultChange event
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.8.1
     */
    const TlvHardwareFaultChangeEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall represent the set of faults currently detected, as per HardwareFaultEnum.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.8.1.1
         */
        current: import("../tlv/TlvObject.js").FieldType<HardwareFault[]>;
        /**
         * This field shall represent the set of faults detected prior to this change event, as per HardwareFaultEnum.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.8.1.2
         */
        previous: import("../tlv/TlvObject.js").FieldType<HardwareFault[]>;
    }>;
    /**
     * Body of the GeneralDiagnostics hardwareFaultChange event
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.8.1
     */
    interface HardwareFaultChangeEvent extends TypeFromSchema<typeof TlvHardwareFaultChangeEvent> {
    }
    /**
     * Body of the GeneralDiagnostics radioFaultChange event
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.8.2
     */
    const TlvRadioFaultChangeEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall represent the set of faults currently detected, as per RadioFaultEnum.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.8.2.1
         */
        current: import("../tlv/TlvObject.js").FieldType<RadioFault[]>;
        /**
         * This field shall represent the set of faults detected prior to this change event, as per RadioFaultEnum.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.8.2.2
         */
        previous: import("../tlv/TlvObject.js").FieldType<RadioFault[]>;
    }>;
    /**
     * Body of the GeneralDiagnostics radioFaultChange event
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.8.2
     */
    interface RadioFaultChangeEvent extends TypeFromSchema<typeof TlvRadioFaultChangeEvent> {
    }
    /**
     * Body of the GeneralDiagnostics networkFaultChange event
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.8.3
     */
    const TlvNetworkFaultChangeEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall represent the set of faults currently detected, as per NetworkFaultEnum.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.8.3.1
         */
        current: import("../tlv/TlvObject.js").FieldType<NetworkFault[]>;
        /**
         * This field shall represent the set of faults detected prior to this change event, as per NetworkFaultEnum.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.8.3.2
         */
        previous: import("../tlv/TlvObject.js").FieldType<NetworkFault[]>;
    }>;
    /**
     * Body of the GeneralDiagnostics networkFaultChange event
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.8.3
     */
    interface NetworkFaultChangeEvent extends TypeFromSchema<typeof TlvNetworkFaultChangeEvent> {
    }
    /**
     * Body of the GeneralDiagnostics bootReason event
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.8.4
     */
    const TlvBootReasonEvent: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall contain the reason for this BootReason event.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.12.8.4.1
         */
        bootReason: import("../tlv/TlvObject.js").FieldType<BootReason>;
    }>;
    /**
     * Body of the GeneralDiagnostics bootReason event
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12.8.4
     */
    interface BootReasonEvent extends TypeFromSchema<typeof TlvBootReasonEvent> {
    }
    /**
     * A GeneralDiagnosticsCluster supports these elements if it supports feature DataModelTest.
     */
    const DataModelTestComponent: {
        readonly commands: {
            /**
             * This command provides a means for certification tests or manufacturer’s internal tests to validate
             * particular command handling and encoding constraints by generating a response of a given size.
             *
             * This command shall use the same EnableKey behavior as the TestEventTrigger command, whereby processing of
             * the command is only enabled when the TestEventTriggersEnabled field is true, which shall NOT be true
             * outside of certification testing or manufacturer’s internal tests.
             *
             * The fields for the PayloadTestRequest command are as follows:
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.7.4
             */
            readonly payloadTestRequest: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall have the same meaning and usage as the TestEventTrigger EnableKey field.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.1
                 */
                enableKey: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the value to use in every byte of the PayloadTestResponse’s Payload field.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.2
                 */
                value: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the number of times to repeat the Value in the PayloadTestResponse’s Payload field.
                 *
                 * ### Effect upon receipt
                 *
                 * This command shall respond with a response status of CONSTRAINT_ERROR if either:
                 *
                 *   - The EnableKey field does not match the a-priori value configured on the device.
                 *
                 *   - The TestEventTriggersEnabled field is currently false.
                 *
                 * Otherwise, the server shall respond with a PayloadTestResponse command with a Payload field value containing
                 * Count instances of the Value byte. If the response is too large to send, the server shall fail the command
                 * and respond with a response status of RESOURCE_EXHAUSTED.
                 *
                 * For example:
                 *
                 *   - If Value is 0x55 and the Count is zero, then the PayloadTestResponse would have the Payload field set to
                 *     an empty octet string.
                 *
                 *   - If Value is 0xA5 and the Count is 10, the PayloadTestResponse would have the Payload field set to a
                 *     content whose hexadecimal representation would be A5A5A5A5A5A5A5A5A5A5, and base64 representation would
                 *     be paWlpaWlpaWlpQ==.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.3
                 */
                count: import("../tlv/TlvObject.js").FieldType<number>;
            }>, import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall contain the computed response of the PayloadTestRequest command.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.5.1
                 */
                payload: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
            }>, any>;
        };
    };
    /**
     * These elements and properties are present in all GeneralDiagnostics clusters.
     */
    const Base: {
        readonly id: 51;
        readonly name: "GeneralDiagnostics";
        readonly revision: 2;
        readonly features: {
            /**
             * This feature indicates support for extended Data Model testing commands, which are required in some
             * situations.
             *
             * This feature shall be supported if the MaxPathsPerInvoke attribute of the Basic Information Cluster has a
             * value > 1.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.4.1
             */
            readonly dataModelTest: BitFlag;
        };
        readonly attributes: {
            /**
             * The NetworkInterfaces attribute shall be a list of NetworkInterface structs. Each logical network
             * interface on the Node shall be represented by a single entry within the NetworkInterfaces attribute.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.1
             */
            readonly networkInterfaces: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate a human-readable (displayable) name for the network interface, that is different
                 * from all other interfaces.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.1
                 */
                name: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate if the Node is currently advertising itself operationally on this network interface
                 * and is capable of successfully receiving incoming traffic from other Nodes.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.2
                 */
                isOperational: import("../tlv/TlvObject.js").FieldType<boolean>;
                /**
                 * This field shall indicate whether the Node is currently able to reach off-premise services it uses by
                 * utilizing IPv4. The value shall be null if the Node does not use such services or does not know whether it
                 * can reach them.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.3
                 */
                offPremiseServicesReachableIPv4: import("../tlv/TlvObject.js").FieldType<boolean | null>;
                /**
                 * This field shall indicate whether the Node is currently able to reach off-premise services it uses by
                 * utilizing IPv6. The value shall be null if the Node does not use such services or does not know whether it
                 * can reach them.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.4
                 */
                offPremiseServicesReachableIPv6: import("../tlv/TlvObject.js").FieldType<boolean | null>;
                /**
                 * This field shall contain the current link-layer address for a 802.3 or IEEE 802.11-2020 network interface and
                 * contain the current extended MAC address for a 802.15.4 interface. The byte order of the octstr shall be in
                 * wire byte order. For addresses values less than 64 bits, the first two bytes shall be zero.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.5
                 */
                hardwareAddress: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall provide a list of the IPv4 addresses that are currently assigned to the network interface.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.6
                 */
                iPv4Addresses: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
                /**
                 * This field shall provide a list of the unicast IPv6 addresses that are currently assigned to the network
                 * interface. This list shall include the Node’s link-local address and SHOULD include any assigned GUA and ULA
                 * addresses. This list shall NOT include any multicast group addresses to which the Node is subscribed.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.7
                 */
                iPv6Addresses: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
                /**
                 * This field shall indicate the type of the interface using the InterfaceTypeEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.8
                 */
                type: import("../tlv/TlvObject.js").FieldType<InterfaceType>;
            }>[], any>;
            /**
             * The RebootCount attribute shall indicate a best-effort count of the number of times the Nodehasrebooted.
             * The RebootCount attribute SHOULD be incremented each time the Node reboots. The RebootCount attribute
             * shall NOT be incremented when a Node wakes from a low-power or sleep state. The RebootCount attribute
             * shall only be reset to 0 upon a factory reset of the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.2
             */
            readonly rebootCount: Attribute<number, any>;
            /**
             * The UpTime attribute shall indicate a best-effort assessment of the length of time, in seconds, since the
             * Node’s last reboot. This attribute SHOULD be incremented to account for the periods of time that a Node
             * is in a low-power or sleep state. This attribute shall only be reset upon adevicereboot. This attribute
             * shall be based on the same System Time source as those used to fulfill any usage of the systime-us and
             * systime-ms data types within the server.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.3
             */
            readonly upTime: Attribute<number | bigint, any>;
            /**
             * The TotalOperationalHours attribute shall indicate a best-effort attempt at tracking the length of time,
             * in hours, that the Node has been operational. The TotalOperationalHours attribute SHOULD be incremented
             * to account for the periods of time that a Node is in a low-power or sleep state. The
             * TotalOperationalHours attribute shall only be reset upon a factory reset of the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.4
             */
            readonly totalOperationalHours: OptionalAttribute<number, any>;
            /**
             * The BootReason attribute shall indicate the reason for the Node’s most recent boot.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.5
             */
            readonly bootReason: OptionalAttribute<BootReason, any>;
            /**
             * The ActiveHardwareFaults attribute shall indicate the set of faults currently detected by the Node. When
             * the Node detects a fault has been raised, the appropriate HardwareFaultEnum value shall be added to this
             * list. This list shall NOT contain more than one instance of a specific HardwareFaultEnum value. When the
             * Node detects that all conditions contributing to a fault has been cleared, the corresponding
             * HardwareFaultEnum value shall be removed from this list. An empty list shall indicate there are currently
             * no active faults. The order of this list SHOULD havenosignificance. Clients interested in monitoring
             * changes in active faults may subscribe to this attribute, or they may subscribe to HardwareFaultChange.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.6
             */
            readonly activeHardwareFaults: OptionalAttribute<HardwareFault[], any>;
            /**
             * The ActiveRadioFaults attribute shall indicate the set of faults currently detected by the Node. When the
             * Node detects a fault has been raised, the appropriate RadioFaultEnum value shall be added to this list.
             * This list shall NOT contain more than one instance of a specific RadioFaultEnum value. When the Node
             * detects that all conditions contributing to a fault has been cleared, the corresponding RadioFaultEnum
             * value shall be removed from this list. An empty list shall indicate there are currently no active faults.
             * The order of this list SHOULD have no significance. Clients interested in monitoring changes in active
             * faults may subscribe to this attribute, or they may subscribe to RadioFaultChange.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.7
             */
            readonly activeRadioFaults: OptionalAttribute<RadioFault[], any>;
            /**
             * The ActiveNetworkFaults attribute shall indicate the set of faults currently detected by the Node. When
             * the Node detects a fault has been raised, the appropriate NetworkFaultEnum value shall be added to this
             * list. This list shall NOT contain more than one instance of a specificNetworkFaultEnumvalue. When the
             * Node detects that all conditions contributing to a fault has been cleared, the corresponding
             * NetworkFaultEnum value shall be removed from this list. An empty list shall indicate there are currently
             * no active faults. The order of this list SHOULD have nosignificance. Clients interested in monitoring
             * changes in active faults may subscribe to this attribute, or they may subscribe to NetworkFaultChange.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.8
             */
            readonly activeNetworkFaults: OptionalAttribute<NetworkFault[], any>;
            /**
             * The TestEventTriggersEnabled attribute shall indicate whether the Node has anyTestEventTriggerconfigured.
             * When this attribute is true, the Node has been configured with one or more test event triggers by virtue
             * of the internally programmed EnableKey value (see Section 11.12.7.1, “TestEventTrigger Command”) being
             * set to a non-zero value. This attribute can be used by Administrators to detect if a device was
             * inadvertently commissioned with test event trigger mode enabled, and take appropriate action (e.g. warn
             * the user and/or offer to remove all fabrics on the Node).
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.9
             */
            readonly testEventTriggersEnabled: Attribute<boolean, any>;
        };
        readonly commands: {
            /**
             * This command shall be supported to provide a means for certification tests to trigger some
             * test-plan-specific events, necessary to assist in automation of device interactions for some
             * certification test cases. This command shall NOT cause any changes to the state of the device that
             * persist after the last fabric is removed.
             *
             * The fields for the TestEventTrigger command are as follows:
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.7.1
             */
            readonly testEventTrigger: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * The EnableKey is a 128 bit value provided by the client in this command, which needs to match a value chosen
                 * by the manufacturer and configured on the server using manufacturer-specific means, such as pre-provisioning.
                 * The value of all zeroes is reserved to indicate that no EnableKey is set. Therefore, if the EnableKey field
                 * is received with all zeroes, this command shall FAIL with a response status of CONSTRAINT_ERROR.
                 *
                 * The EnableKey SHOULD be unique per exact set of devices going to a certification test.
                 *
                 * Devices not targeted towards going to a certification test event shall NOT have a non-zero EnableKey value
                 * configured, so that only devices in test environments are responsive to this command.
                 *
                 * In order to prevent unwittingly actuating a particular trigger, this command shall respond with a response
                 * status of CONSTRAINT_ERROR if the EnableKey field does not match the a-priori value configured on the device.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.1.1
                 */
                enableKey: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the test or test mode which the client wants to trigger.
                 *
                 * The expected side-effects of EventTrigger values are out of scope of this specification and will be described
                 * within appropriate certification test literature provided to manufacturers by the Connectivity Standards
                 * Alliance, in conjunction with certification test cases documentation.
                 *
                 * Values of EventTrigger in the range 0xFFFF_FFFF_0000_0000 through 0xFFFF_FFFF_FFFF_FFFF are reserved for
                 * testing use by manufacturers and will not appear in the Connectivity Standards Alliance certification test
                 * literature.
                 *
                 * If the value of EventTrigger received is not supported by the receiving Node, this command shall fail with a
                 * status code of INVALID_COMMAND.
                 *
                 * Otherwise, if the EnableKey value matches the configured internal value for a particular Node, and the
                 * EventTrigger value matches a supported test event trigger value, the command shall succeed and execute the
                 * expected trigger action.
                 *
                 * If no specific test event triggers are required to be supported by certification test requirements for the
                 * features that a given product will be certified against, this command may always fail with the
                 * INVALID_COMMAND status, equivalent to the situation of receiving an unknown EventTrigger, for all possible
                 * EventTrigger values.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.1.2
                 */
                eventTrigger: import("../tlv/TlvObject.js").FieldType<number | bigint>;
            }>, void, any>;
            /**
             * This command may be used by a client to obtain a correlated view of both System Time, and, if currently
             * synchronized and supported, "wall clock time" of the server. This can help clients establish time
             * correlation between their concept of time and the server’s concept of time. This is especially useful
             * when processing event histories where some events only contain System Time.
             *
             * Upon command invocation, the server shall respond with a TimeSnapshotResponse.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.7.2
             */
            readonly timeSnapshot: Command<void, import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This shall indicate the current System Time in milliseconds (type systime-ms), with the value taken at the
                 * time of processing of the TimeSnapshot command that generated this response.
                 *
                 * The value shall be taken from the same clock which populates the Timestamp field in events when using System
                 * Time for the field.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.3.1
                 */
                systemTimeMs: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                /**
                 * This shall indicate the current time in POSIX Time in milliseconds, with the value taken from the same source
                 * that could populate the Timestamp field of events. This value shall only be null when any the following are
                 * true:
                 *
                 *   - The node doesn’t support the Time Synchronization cluster.
                 *
                 *   - The node’s Time Synchronization cluster instance’s UTCTime attribute is null.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.3.2
                 */
                posixTimeMs: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
            }>, any>;
        };
        readonly events: {
            /**
             * The HardwareFaultChange Event shall indicate a change in the set of hardware faults currently detected by
             * the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.1
             */
            readonly hardwareFaultChange: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the set of faults currently detected, as per HardwareFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.1.1
                 */
                current: import("../tlv/TlvObject.js").FieldType<HardwareFault[]>;
                /**
                 * This field shall represent the set of faults detected prior to this change event, as per HardwareFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.1.2
                 */
                previous: import("../tlv/TlvObject.js").FieldType<HardwareFault[]>;
            }>, any>;
            /**
             * The RadioFaultChange Event shall indicate a change in the set of radio faults currently detected by the
             * Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.2
             */
            readonly radioFaultChange: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the set of faults currently detected, as per RadioFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.2.1
                 */
                current: import("../tlv/TlvObject.js").FieldType<RadioFault[]>;
                /**
                 * This field shall represent the set of faults detected prior to this change event, as per RadioFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.2.2
                 */
                previous: import("../tlv/TlvObject.js").FieldType<RadioFault[]>;
            }>, any>;
            /**
             * The NetworkFaultChange Event shall indicate a change in the set of network faults currently detected by
             * the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.3
             */
            readonly networkFaultChange: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the set of faults currently detected, as per NetworkFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.3.1
                 */
                current: import("../tlv/TlvObject.js").FieldType<NetworkFault[]>;
                /**
                 * This field shall represent the set of faults detected prior to this change event, as per NetworkFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.3.2
                 */
                previous: import("../tlv/TlvObject.js").FieldType<NetworkFault[]>;
            }>, any>;
            /**
             * The BootReason Event shall indicate the reason that caused the device to start-up.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.4
             */
            readonly bootReason: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall contain the reason for this BootReason event.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.4.1
                 */
                bootReason: import("../tlv/TlvObject.js").FieldType<BootReason>;
            }>, any>;
        };
        /**
         * This metadata controls which GeneralDiagnosticsCluster elements matter.js activates for specific feature
         * combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly dataModelTest: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * This command provides a means for certification tests or manufacturer’s internal tests to validate
                     * particular command handling and encoding constraints by generating a response of a given size.
                     *
                     * This command shall use the same EnableKey behavior as the TestEventTrigger command, whereby processing of
                     * the command is only enabled when the TestEventTriggersEnabled field is true, which shall NOT be true
                     * outside of certification testing or manufacturer’s internal tests.
                     *
                     * The fields for the PayloadTestRequest command are as follows:
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.12.7.4
                     */
                    readonly payloadTestRequest: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall have the same meaning and usage as the TestEventTrigger EnableKey field.
                         *
                         * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.1
                         */
                        enableKey: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                        /**
                         * This field shall indicate the value to use in every byte of the PayloadTestResponse’s Payload field.
                         *
                         * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.2
                         */
                        value: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the number of times to repeat the Value in the PayloadTestResponse’s Payload field.
                         *
                         * ### Effect upon receipt
                         *
                         * This command shall respond with a response status of CONSTRAINT_ERROR if either:
                         *
                         *   - The EnableKey field does not match the a-priori value configured on the device.
                         *
                         *   - The TestEventTriggersEnabled field is currently false.
                         *
                         * Otherwise, the server shall respond with a PayloadTestResponse command with a Payload field value containing
                         * Count instances of the Value byte. If the response is too large to send, the server shall fail the command
                         * and respond with a response status of RESOURCE_EXHAUSTED.
                         *
                         * For example:
                         *
                         *   - If Value is 0x55 and the Count is zero, then the PayloadTestResponse would have the Payload field set to
                         *     an empty octet string.
                         *
                         *   - If Value is 0xA5 and the Count is 10, the PayloadTestResponse would have the Payload field set to a
                         *     content whose hexadecimal representation would be A5A5A5A5A5A5A5A5A5A5, and base64 representation would
                         *     be paWlpaWlpaWlpQ==.
                         *
                         * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.3
                         */
                        count: import("../tlv/TlvObject.js").FieldType<number>;
                    }>, import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall contain the computed response of the PayloadTestRequest command.
                         *
                         * @see {@link MatterSpecification.v142.Core} § 11.12.7.5.1
                         */
                        payload: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                    }>, any>;
                };
            };
        }];
    };
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster<{
        readonly id: 51;
        readonly name: "GeneralDiagnostics";
        readonly revision: 2;
        readonly features: {
            /**
             * This feature indicates support for extended Data Model testing commands, which are required in some
             * situations.
             *
             * This feature shall be supported if the MaxPathsPerInvoke attribute of the Basic Information Cluster has a
             * value > 1.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.4.1
             */
            readonly dataModelTest: BitFlag;
        };
        readonly attributes: {
            /**
             * The NetworkInterfaces attribute shall be a list of NetworkInterface structs. Each logical network
             * interface on the Node shall be represented by a single entry within the NetworkInterfaces attribute.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.1
             */
            readonly networkInterfaces: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate a human-readable (displayable) name for the network interface, that is different
                 * from all other interfaces.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.1
                 */
                name: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate if the Node is currently advertising itself operationally on this network interface
                 * and is capable of successfully receiving incoming traffic from other Nodes.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.2
                 */
                isOperational: import("../tlv/TlvObject.js").FieldType<boolean>;
                /**
                 * This field shall indicate whether the Node is currently able to reach off-premise services it uses by
                 * utilizing IPv4. The value shall be null if the Node does not use such services or does not know whether it
                 * can reach them.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.3
                 */
                offPremiseServicesReachableIPv4: import("../tlv/TlvObject.js").FieldType<boolean | null>;
                /**
                 * This field shall indicate whether the Node is currently able to reach off-premise services it uses by
                 * utilizing IPv6. The value shall be null if the Node does not use such services or does not know whether it
                 * can reach them.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.4
                 */
                offPremiseServicesReachableIPv6: import("../tlv/TlvObject.js").FieldType<boolean | null>;
                /**
                 * This field shall contain the current link-layer address for a 802.3 or IEEE 802.11-2020 network interface and
                 * contain the current extended MAC address for a 802.15.4 interface. The byte order of the octstr shall be in
                 * wire byte order. For addresses values less than 64 bits, the first two bytes shall be zero.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.5
                 */
                hardwareAddress: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall provide a list of the IPv4 addresses that are currently assigned to the network interface.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.6
                 */
                iPv4Addresses: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
                /**
                 * This field shall provide a list of the unicast IPv6 addresses that are currently assigned to the network
                 * interface. This list shall include the Node’s link-local address and SHOULD include any assigned GUA and ULA
                 * addresses. This list shall NOT include any multicast group addresses to which the Node is subscribed.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.7
                 */
                iPv6Addresses: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
                /**
                 * This field shall indicate the type of the interface using the InterfaceTypeEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.8
                 */
                type: import("../tlv/TlvObject.js").FieldType<InterfaceType>;
            }>[], any>;
            /**
             * The RebootCount attribute shall indicate a best-effort count of the number of times the Nodehasrebooted.
             * The RebootCount attribute SHOULD be incremented each time the Node reboots. The RebootCount attribute
             * shall NOT be incremented when a Node wakes from a low-power or sleep state. The RebootCount attribute
             * shall only be reset to 0 upon a factory reset of the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.2
             */
            readonly rebootCount: Attribute<number, any>;
            /**
             * The UpTime attribute shall indicate a best-effort assessment of the length of time, in seconds, since the
             * Node’s last reboot. This attribute SHOULD be incremented to account for the periods of time that a Node
             * is in a low-power or sleep state. This attribute shall only be reset upon adevicereboot. This attribute
             * shall be based on the same System Time source as those used to fulfill any usage of the systime-us and
             * systime-ms data types within the server.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.3
             */
            readonly upTime: Attribute<number | bigint, any>;
            /**
             * The TotalOperationalHours attribute shall indicate a best-effort attempt at tracking the length of time,
             * in hours, that the Node has been operational. The TotalOperationalHours attribute SHOULD be incremented
             * to account for the periods of time that a Node is in a low-power or sleep state. The
             * TotalOperationalHours attribute shall only be reset upon a factory reset of the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.4
             */
            readonly totalOperationalHours: OptionalAttribute<number, any>;
            /**
             * The BootReason attribute shall indicate the reason for the Node’s most recent boot.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.5
             */
            readonly bootReason: OptionalAttribute<BootReason, any>;
            /**
             * The ActiveHardwareFaults attribute shall indicate the set of faults currently detected by the Node. When
             * the Node detects a fault has been raised, the appropriate HardwareFaultEnum value shall be added to this
             * list. This list shall NOT contain more than one instance of a specific HardwareFaultEnum value. When the
             * Node detects that all conditions contributing to a fault has been cleared, the corresponding
             * HardwareFaultEnum value shall be removed from this list. An empty list shall indicate there are currently
             * no active faults. The order of this list SHOULD havenosignificance. Clients interested in monitoring
             * changes in active faults may subscribe to this attribute, or they may subscribe to HardwareFaultChange.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.6
             */
            readonly activeHardwareFaults: OptionalAttribute<HardwareFault[], any>;
            /**
             * The ActiveRadioFaults attribute shall indicate the set of faults currently detected by the Node. When the
             * Node detects a fault has been raised, the appropriate RadioFaultEnum value shall be added to this list.
             * This list shall NOT contain more than one instance of a specific RadioFaultEnum value. When the Node
             * detects that all conditions contributing to a fault has been cleared, the corresponding RadioFaultEnum
             * value shall be removed from this list. An empty list shall indicate there are currently no active faults.
             * The order of this list SHOULD have no significance. Clients interested in monitoring changes in active
             * faults may subscribe to this attribute, or they may subscribe to RadioFaultChange.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.7
             */
            readonly activeRadioFaults: OptionalAttribute<RadioFault[], any>;
            /**
             * The ActiveNetworkFaults attribute shall indicate the set of faults currently detected by the Node. When
             * the Node detects a fault has been raised, the appropriate NetworkFaultEnum value shall be added to this
             * list. This list shall NOT contain more than one instance of a specificNetworkFaultEnumvalue. When the
             * Node detects that all conditions contributing to a fault has been cleared, the corresponding
             * NetworkFaultEnum value shall be removed from this list. An empty list shall indicate there are currently
             * no active faults. The order of this list SHOULD have nosignificance. Clients interested in monitoring
             * changes in active faults may subscribe to this attribute, or they may subscribe to NetworkFaultChange.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.8
             */
            readonly activeNetworkFaults: OptionalAttribute<NetworkFault[], any>;
            /**
             * The TestEventTriggersEnabled attribute shall indicate whether the Node has anyTestEventTriggerconfigured.
             * When this attribute is true, the Node has been configured with one or more test event triggers by virtue
             * of the internally programmed EnableKey value (see Section 11.12.7.1, “TestEventTrigger Command”) being
             * set to a non-zero value. This attribute can be used by Administrators to detect if a device was
             * inadvertently commissioned with test event trigger mode enabled, and take appropriate action (e.g. warn
             * the user and/or offer to remove all fabrics on the Node).
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.9
             */
            readonly testEventTriggersEnabled: Attribute<boolean, any>;
        };
        readonly commands: {
            /**
             * This command shall be supported to provide a means for certification tests to trigger some
             * test-plan-specific events, necessary to assist in automation of device interactions for some
             * certification test cases. This command shall NOT cause any changes to the state of the device that
             * persist after the last fabric is removed.
             *
             * The fields for the TestEventTrigger command are as follows:
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.7.1
             */
            readonly testEventTrigger: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * The EnableKey is a 128 bit value provided by the client in this command, which needs to match a value chosen
                 * by the manufacturer and configured on the server using manufacturer-specific means, such as pre-provisioning.
                 * The value of all zeroes is reserved to indicate that no EnableKey is set. Therefore, if the EnableKey field
                 * is received with all zeroes, this command shall FAIL with a response status of CONSTRAINT_ERROR.
                 *
                 * The EnableKey SHOULD be unique per exact set of devices going to a certification test.
                 *
                 * Devices not targeted towards going to a certification test event shall NOT have a non-zero EnableKey value
                 * configured, so that only devices in test environments are responsive to this command.
                 *
                 * In order to prevent unwittingly actuating a particular trigger, this command shall respond with a response
                 * status of CONSTRAINT_ERROR if the EnableKey field does not match the a-priori value configured on the device.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.1.1
                 */
                enableKey: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the test or test mode which the client wants to trigger.
                 *
                 * The expected side-effects of EventTrigger values are out of scope of this specification and will be described
                 * within appropriate certification test literature provided to manufacturers by the Connectivity Standards
                 * Alliance, in conjunction with certification test cases documentation.
                 *
                 * Values of EventTrigger in the range 0xFFFF_FFFF_0000_0000 through 0xFFFF_FFFF_FFFF_FFFF are reserved for
                 * testing use by manufacturers and will not appear in the Connectivity Standards Alliance certification test
                 * literature.
                 *
                 * If the value of EventTrigger received is not supported by the receiving Node, this command shall fail with a
                 * status code of INVALID_COMMAND.
                 *
                 * Otherwise, if the EnableKey value matches the configured internal value for a particular Node, and the
                 * EventTrigger value matches a supported test event trigger value, the command shall succeed and execute the
                 * expected trigger action.
                 *
                 * If no specific test event triggers are required to be supported by certification test requirements for the
                 * features that a given product will be certified against, this command may always fail with the
                 * INVALID_COMMAND status, equivalent to the situation of receiving an unknown EventTrigger, for all possible
                 * EventTrigger values.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.1.2
                 */
                eventTrigger: import("../tlv/TlvObject.js").FieldType<number | bigint>;
            }>, void, any>;
            /**
             * This command may be used by a client to obtain a correlated view of both System Time, and, if currently
             * synchronized and supported, "wall clock time" of the server. This can help clients establish time
             * correlation between their concept of time and the server’s concept of time. This is especially useful
             * when processing event histories where some events only contain System Time.
             *
             * Upon command invocation, the server shall respond with a TimeSnapshotResponse.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.7.2
             */
            readonly timeSnapshot: Command<void, import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This shall indicate the current System Time in milliseconds (type systime-ms), with the value taken at the
                 * time of processing of the TimeSnapshot command that generated this response.
                 *
                 * The value shall be taken from the same clock which populates the Timestamp field in events when using System
                 * Time for the field.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.3.1
                 */
                systemTimeMs: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                /**
                 * This shall indicate the current time in POSIX Time in milliseconds, with the value taken from the same source
                 * that could populate the Timestamp field of events. This value shall only be null when any the following are
                 * true:
                 *
                 *   - The node doesn’t support the Time Synchronization cluster.
                 *
                 *   - The node’s Time Synchronization cluster instance’s UTCTime attribute is null.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.3.2
                 */
                posixTimeMs: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
            }>, any>;
        };
        readonly events: {
            /**
             * The HardwareFaultChange Event shall indicate a change in the set of hardware faults currently detected by
             * the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.1
             */
            readonly hardwareFaultChange: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the set of faults currently detected, as per HardwareFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.1.1
                 */
                current: import("../tlv/TlvObject.js").FieldType<HardwareFault[]>;
                /**
                 * This field shall represent the set of faults detected prior to this change event, as per HardwareFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.1.2
                 */
                previous: import("../tlv/TlvObject.js").FieldType<HardwareFault[]>;
            }>, any>;
            /**
             * The RadioFaultChange Event shall indicate a change in the set of radio faults currently detected by the
             * Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.2
             */
            readonly radioFaultChange: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the set of faults currently detected, as per RadioFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.2.1
                 */
                current: import("../tlv/TlvObject.js").FieldType<RadioFault[]>;
                /**
                 * This field shall represent the set of faults detected prior to this change event, as per RadioFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.2.2
                 */
                previous: import("../tlv/TlvObject.js").FieldType<RadioFault[]>;
            }>, any>;
            /**
             * The NetworkFaultChange Event shall indicate a change in the set of network faults currently detected by
             * the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.3
             */
            readonly networkFaultChange: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the set of faults currently detected, as per NetworkFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.3.1
                 */
                current: import("../tlv/TlvObject.js").FieldType<NetworkFault[]>;
                /**
                 * This field shall represent the set of faults detected prior to this change event, as per NetworkFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.3.2
                 */
                previous: import("../tlv/TlvObject.js").FieldType<NetworkFault[]>;
            }>, any>;
            /**
             * The BootReason Event shall indicate the reason that caused the device to start-up.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.4
             */
            readonly bootReason: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall contain the reason for this BootReason event.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.4.1
                 */
                bootReason: import("../tlv/TlvObject.js").FieldType<BootReason>;
            }>, any>;
        };
        /**
         * This metadata controls which GeneralDiagnosticsCluster elements matter.js activates for specific feature
         * combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly dataModelTest: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * This command provides a means for certification tests or manufacturer’s internal tests to validate
                     * particular command handling and encoding constraints by generating a response of a given size.
                     *
                     * This command shall use the same EnableKey behavior as the TestEventTrigger command, whereby processing of
                     * the command is only enabled when the TestEventTriggersEnabled field is true, which shall NOT be true
                     * outside of certification testing or manufacturer’s internal tests.
                     *
                     * The fields for the PayloadTestRequest command are as follows:
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.12.7.4
                     */
                    readonly payloadTestRequest: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall have the same meaning and usage as the TestEventTrigger EnableKey field.
                         *
                         * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.1
                         */
                        enableKey: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                        /**
                         * This field shall indicate the value to use in every byte of the PayloadTestResponse’s Payload field.
                         *
                         * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.2
                         */
                        value: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the number of times to repeat the Value in the PayloadTestResponse’s Payload field.
                         *
                         * ### Effect upon receipt
                         *
                         * This command shall respond with a response status of CONSTRAINT_ERROR if either:
                         *
                         *   - The EnableKey field does not match the a-priori value configured on the device.
                         *
                         *   - The TestEventTriggersEnabled field is currently false.
                         *
                         * Otherwise, the server shall respond with a PayloadTestResponse command with a Payload field value containing
                         * Count instances of the Value byte. If the response is too large to send, the server shall fail the command
                         * and respond with a response status of RESOURCE_EXHAUSTED.
                         *
                         * For example:
                         *
                         *   - If Value is 0x55 and the Count is zero, then the PayloadTestResponse would have the Payload field set to
                         *     an empty octet string.
                         *
                         *   - If Value is 0xA5 and the Count is 10, the PayloadTestResponse would have the Payload field set to a
                         *     content whose hexadecimal representation would be A5A5A5A5A5A5A5A5A5A5, and base64 representation would
                         *     be paWlpaWlpaWlpQ==.
                         *
                         * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.3
                         */
                        count: import("../tlv/TlvObject.js").FieldType<number>;
                    }>, import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall contain the computed response of the PayloadTestRequest command.
                         *
                         * @see {@link MatterSpecification.v142.Core} § 11.12.7.5.1
                         */
                        payload: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                    }>, any>;
                };
            };
        }];
    }, []>;
    /**
     * The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized
     * diagnostics metrics that may be used by a Node to assist a user or Administrator in diagnosing potential
     * problems. The General Diagnostics Cluster attempts to centralize all metrics that are broadly relevant to the
     * majority of Nodes.
     *
     * GeneralDiagnosticsCluster supports optional features that you can enable with the
     * GeneralDiagnosticsCluster.with() factory method.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.12
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    /**
     * @see {@link Complete}
     */
    const CompleteInstance: MutableCluster<{
        readonly id: import("#general").Branded<51, "ClusterId">;
        readonly name: "GeneralDiagnostics";
        readonly revision: 2;
        readonly features: {
            /**
             * This feature indicates support for extended Data Model testing commands, which are required in some
             * situations.
             *
             * This feature shall be supported if the MaxPathsPerInvoke attribute of the Basic Information Cluster has a
             * value > 1.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.4.1
             */
            readonly dataModelTest: BitFlag;
        };
        readonly attributes: import("#general").Merge<{
            /**
             * The NetworkInterfaces attribute shall be a list of NetworkInterface structs. Each logical network
             * interface on the Node shall be represented by a single entry within the NetworkInterfaces attribute.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.1
             */
            readonly networkInterfaces: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate a human-readable (displayable) name for the network interface, that is different
                 * from all other interfaces.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.1
                 */
                name: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate if the Node is currently advertising itself operationally on this network interface
                 * and is capable of successfully receiving incoming traffic from other Nodes.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.2
                 */
                isOperational: import("../tlv/TlvObject.js").FieldType<boolean>;
                /**
                 * This field shall indicate whether the Node is currently able to reach off-premise services it uses by
                 * utilizing IPv4. The value shall be null if the Node does not use such services or does not know whether it
                 * can reach them.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.3
                 */
                offPremiseServicesReachableIPv4: import("../tlv/TlvObject.js").FieldType<boolean | null>;
                /**
                 * This field shall indicate whether the Node is currently able to reach off-premise services it uses by
                 * utilizing IPv6. The value shall be null if the Node does not use such services or does not know whether it
                 * can reach them.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.4
                 */
                offPremiseServicesReachableIPv6: import("../tlv/TlvObject.js").FieldType<boolean | null>;
                /**
                 * This field shall contain the current link-layer address for a 802.3 or IEEE 802.11-2020 network interface and
                 * contain the current extended MAC address for a 802.15.4 interface. The byte order of the octstr shall be in
                 * wire byte order. For addresses values less than 64 bits, the first two bytes shall be zero.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.5
                 */
                hardwareAddress: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall provide a list of the IPv4 addresses that are currently assigned to the network interface.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.6
                 */
                iPv4Addresses: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
                /**
                 * This field shall provide a list of the unicast IPv6 addresses that are currently assigned to the network
                 * interface. This list shall include the Node’s link-local address and SHOULD include any assigned GUA and ULA
                 * addresses. This list shall NOT include any multicast group addresses to which the Node is subscribed.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.7
                 */
                iPv6Addresses: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource[]>;
                /**
                 * This field shall indicate the type of the interface using the InterfaceTypeEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.5.6.8
                 */
                type: import("../tlv/TlvObject.js").FieldType<InterfaceType>;
            }>[], any>;
            /**
             * The RebootCount attribute shall indicate a best-effort count of the number of times the Nodehasrebooted.
             * The RebootCount attribute SHOULD be incremented each time the Node reboots. The RebootCount attribute
             * shall NOT be incremented when a Node wakes from a low-power or sleep state. The RebootCount attribute
             * shall only be reset to 0 upon a factory reset of the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.2
             */
            readonly rebootCount: Attribute<number, any>;
            /**
             * The UpTime attribute shall indicate a best-effort assessment of the length of time, in seconds, since the
             * Node’s last reboot. This attribute SHOULD be incremented to account for the periods of time that a Node
             * is in a low-power or sleep state. This attribute shall only be reset upon adevicereboot. This attribute
             * shall be based on the same System Time source as those used to fulfill any usage of the systime-us and
             * systime-ms data types within the server.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.3
             */
            readonly upTime: Attribute<number | bigint, any>;
            /**
             * The TotalOperationalHours attribute shall indicate a best-effort attempt at tracking the length of time,
             * in hours, that the Node has been operational. The TotalOperationalHours attribute SHOULD be incremented
             * to account for the periods of time that a Node is in a low-power or sleep state. The
             * TotalOperationalHours attribute shall only be reset upon a factory reset of the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.4
             */
            readonly totalOperationalHours: OptionalAttribute<number, any>;
            /**
             * The BootReason attribute shall indicate the reason for the Node’s most recent boot.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.5
             */
            readonly bootReason: OptionalAttribute<BootReason, any>;
            /**
             * The ActiveHardwareFaults attribute shall indicate the set of faults currently detected by the Node. When
             * the Node detects a fault has been raised, the appropriate HardwareFaultEnum value shall be added to this
             * list. This list shall NOT contain more than one instance of a specific HardwareFaultEnum value. When the
             * Node detects that all conditions contributing to a fault has been cleared, the corresponding
             * HardwareFaultEnum value shall be removed from this list. An empty list shall indicate there are currently
             * no active faults. The order of this list SHOULD havenosignificance. Clients interested in monitoring
             * changes in active faults may subscribe to this attribute, or they may subscribe to HardwareFaultChange.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.6
             */
            readonly activeHardwareFaults: OptionalAttribute<HardwareFault[], any>;
            /**
             * The ActiveRadioFaults attribute shall indicate the set of faults currently detected by the Node. When the
             * Node detects a fault has been raised, the appropriate RadioFaultEnum value shall be added to this list.
             * This list shall NOT contain more than one instance of a specific RadioFaultEnum value. When the Node
             * detects that all conditions contributing to a fault has been cleared, the corresponding RadioFaultEnum
             * value shall be removed from this list. An empty list shall indicate there are currently no active faults.
             * The order of this list SHOULD have no significance. Clients interested in monitoring changes in active
             * faults may subscribe to this attribute, or they may subscribe to RadioFaultChange.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.7
             */
            readonly activeRadioFaults: OptionalAttribute<RadioFault[], any>;
            /**
             * The ActiveNetworkFaults attribute shall indicate the set of faults currently detected by the Node. When
             * the Node detects a fault has been raised, the appropriate NetworkFaultEnum value shall be added to this
             * list. This list shall NOT contain more than one instance of a specificNetworkFaultEnumvalue. When the
             * Node detects that all conditions contributing to a fault has been cleared, the corresponding
             * NetworkFaultEnum value shall be removed from this list. An empty list shall indicate there are currently
             * no active faults. The order of this list SHOULD have nosignificance. Clients interested in monitoring
             * changes in active faults may subscribe to this attribute, or they may subscribe to NetworkFaultChange.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.8
             */
            readonly activeNetworkFaults: OptionalAttribute<NetworkFault[], any>;
            /**
             * The TestEventTriggersEnabled attribute shall indicate whether the Node has anyTestEventTriggerconfigured.
             * When this attribute is true, the Node has been configured with one or more test event triggers by virtue
             * of the internally programmed EnableKey value (see Section 11.12.7.1, “TestEventTrigger Command”) being
             * set to a non-zero value. This attribute can be used by Administrators to detect if a device was
             * inadvertently commissioned with test event trigger mode enabled, and take appropriate action (e.g. warn
             * the user and/or offer to remove all fabrics on the Node).
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.6.9
             */
            readonly testEventTriggersEnabled: Attribute<boolean, any>;
        }, import("../cluster/Cluster.js").GlobalAttributes<{
            /**
             * This feature indicates support for extended Data Model testing commands, which are required in some
             * situations.
             *
             * This feature shall be supported if the MaxPathsPerInvoke attribute of the Basic Information Cluster has a
             * value > 1.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.4.1
             */
            readonly dataModelTest: BitFlag;
        }>>;
        readonly commands: {
            readonly payloadTestRequest: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall have the same meaning and usage as the TestEventTrigger EnableKey field.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.1
                 */
                enableKey: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the value to use in every byte of the PayloadTestResponse’s Payload field.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.2
                 */
                value: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the number of times to repeat the Value in the PayloadTestResponse’s Payload field.
                 *
                 * ### Effect upon receipt
                 *
                 * This command shall respond with a response status of CONSTRAINT_ERROR if either:
                 *
                 *   - The EnableKey field does not match the a-priori value configured on the device.
                 *
                 *   - The TestEventTriggersEnabled field is currently false.
                 *
                 * Otherwise, the server shall respond with a PayloadTestResponse command with a Payload field value containing
                 * Count instances of the Value byte. If the response is too large to send, the server shall fail the command
                 * and respond with a response status of RESOURCE_EXHAUSTED.
                 *
                 * For example:
                 *
                 *   - If Value is 0x55 and the Count is zero, then the PayloadTestResponse would have the Payload field set to
                 *     an empty octet string.
                 *
                 *   - If Value is 0xA5 and the Count is 10, the PayloadTestResponse would have the Payload field set to a
                 *     content whose hexadecimal representation would be A5A5A5A5A5A5A5A5A5A5, and base64 representation would
                 *     be paWlpaWlpaWlpQ==.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.4.3
                 */
                count: import("../tlv/TlvObject.js").FieldType<number>;
            }>, import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall contain the computed response of the PayloadTestRequest command.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.5.1
                 */
                payload: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
            }>, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    dataModelTest: boolean;
                }];
            };
            /**
             * This command shall be supported to provide a means for certification tests to trigger some
             * test-plan-specific events, necessary to assist in automation of device interactions for some
             * certification test cases. This command shall NOT cause any changes to the state of the device that
             * persist after the last fabric is removed.
             *
             * The fields for the TestEventTrigger command are as follows:
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.7.1
             */
            readonly testEventTrigger: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * The EnableKey is a 128 bit value provided by the client in this command, which needs to match a value chosen
                 * by the manufacturer and configured on the server using manufacturer-specific means, such as pre-provisioning.
                 * The value of all zeroes is reserved to indicate that no EnableKey is set. Therefore, if the EnableKey field
                 * is received with all zeroes, this command shall FAIL with a response status of CONSTRAINT_ERROR.
                 *
                 * The EnableKey SHOULD be unique per exact set of devices going to a certification test.
                 *
                 * Devices not targeted towards going to a certification test event shall NOT have a non-zero EnableKey value
                 * configured, so that only devices in test environments are responsive to this command.
                 *
                 * In order to prevent unwittingly actuating a particular trigger, this command shall respond with a response
                 * status of CONSTRAINT_ERROR if the EnableKey field does not match the a-priori value configured on the device.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.1.1
                 */
                enableKey: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall indicate the test or test mode which the client wants to trigger.
                 *
                 * The expected side-effects of EventTrigger values are out of scope of this specification and will be described
                 * within appropriate certification test literature provided to manufacturers by the Connectivity Standards
                 * Alliance, in conjunction with certification test cases documentation.
                 *
                 * Values of EventTrigger in the range 0xFFFF_FFFF_0000_0000 through 0xFFFF_FFFF_FFFF_FFFF are reserved for
                 * testing use by manufacturers and will not appear in the Connectivity Standards Alliance certification test
                 * literature.
                 *
                 * If the value of EventTrigger received is not supported by the receiving Node, this command shall fail with a
                 * status code of INVALID_COMMAND.
                 *
                 * Otherwise, if the EnableKey value matches the configured internal value for a particular Node, and the
                 * EventTrigger value matches a supported test event trigger value, the command shall succeed and execute the
                 * expected trigger action.
                 *
                 * If no specific test event triggers are required to be supported by certification test requirements for the
                 * features that a given product will be certified against, this command may always fail with the
                 * INVALID_COMMAND status, equivalent to the situation of receiving an unknown EventTrigger, for all possible
                 * EventTrigger values.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.1.2
                 */
                eventTrigger: import("../tlv/TlvObject.js").FieldType<number | bigint>;
            }>, void, any>;
            /**
             * This command may be used by a client to obtain a correlated view of both System Time, and, if currently
             * synchronized and supported, "wall clock time" of the server. This can help clients establish time
             * correlation between their concept of time and the server’s concept of time. This is especially useful
             * when processing event histories where some events only contain System Time.
             *
             * Upon command invocation, the server shall respond with a TimeSnapshotResponse.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.7.2
             */
            readonly timeSnapshot: Command<void, import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This shall indicate the current System Time in milliseconds (type systime-ms), with the value taken at the
                 * time of processing of the TimeSnapshot command that generated this response.
                 *
                 * The value shall be taken from the same clock which populates the Timestamp field in events when using System
                 * Time for the field.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.3.1
                 */
                systemTimeMs: import("../tlv/TlvObject.js").FieldType<number | bigint>;
                /**
                 * This shall indicate the current time in POSIX Time in milliseconds, with the value taken from the same source
                 * that could populate the Timestamp field of events. This value shall only be null when any the following are
                 * true:
                 *
                 *   - The node doesn’t support the Time Synchronization cluster.
                 *
                 *   - The node’s Time Synchronization cluster instance’s UTCTime attribute is null.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.7.3.2
                 */
                posixTimeMs: import("../tlv/TlvObject.js").FieldType<number | bigint | null>;
            }>, any>;
        };
        readonly events: {
            /**
             * The HardwareFaultChange Event shall indicate a change in the set of hardware faults currently detected by
             * the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.1
             */
            readonly hardwareFaultChange: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the set of faults currently detected, as per HardwareFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.1.1
                 */
                current: import("../tlv/TlvObject.js").FieldType<HardwareFault[]>;
                /**
                 * This field shall represent the set of faults detected prior to this change event, as per HardwareFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.1.2
                 */
                previous: import("../tlv/TlvObject.js").FieldType<HardwareFault[]>;
            }>, any>;
            /**
             * The RadioFaultChange Event shall indicate a change in the set of radio faults currently detected by the
             * Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.2
             */
            readonly radioFaultChange: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the set of faults currently detected, as per RadioFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.2.1
                 */
                current: import("../tlv/TlvObject.js").FieldType<RadioFault[]>;
                /**
                 * This field shall represent the set of faults detected prior to this change event, as per RadioFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.2.2
                 */
                previous: import("../tlv/TlvObject.js").FieldType<RadioFault[]>;
            }>, any>;
            /**
             * The NetworkFaultChange Event shall indicate a change in the set of network faults currently detected by
             * the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.3
             */
            readonly networkFaultChange: OptionalEvent<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the set of faults currently detected, as per NetworkFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.3.1
                 */
                current: import("../tlv/TlvObject.js").FieldType<NetworkFault[]>;
                /**
                 * This field shall represent the set of faults detected prior to this change event, as per NetworkFaultEnum.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.3.2
                 */
                previous: import("../tlv/TlvObject.js").FieldType<NetworkFault[]>;
            }>, any>;
            /**
             * The BootReason Event shall indicate the reason that caused the device to start-up.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.12.8.4
             */
            readonly bootReason: Event<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall contain the reason for this BootReason event.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.12.8.4.1
                 */
                bootReason: import("../tlv/TlvObject.js").FieldType<BootReason>;
            }>, any>;
        };
    }, []>;
    /**
     * This cluster supports all GeneralDiagnostics 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 GeneralDiagnosticsCluster = GeneralDiagnostics.Cluster;
export declare const GeneralDiagnosticsCluster: GeneralDiagnostics.Cluster;
//# sourceMappingURL=general-diagnostics.d.ts.map