/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
import { Attribute, Command, OptionalAttribute } from "../cluster/Cluster.js";
import { BitFlag } from "../schema/BitmapSchema.js";
import { Identity } from "#general";
export declare namespace EthernetNetworkDiagnostics {
    /**
     * These are optional features supported by EthernetNetworkDiagnosticsCluster.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.16.4
     */
    enum Feature {
        /**
         * PacketCounts (PKTCNT)
         *
         * Node makes available the counts for the number of received and transmitted packets on the ethernet interface.
         */
        PacketCounts = "PacketCounts",
        /**
         * ErrorCounts (ERRCNT)
         *
         * Node makes available the counts for the number of errors that have occurred during the reception and
         * transmission of packets on the ethernet interface.
         */
        ErrorCounts = "ErrorCounts"
    }
    /**
     * @see {@link MatterSpecification.v142.Core} § 11.16.5.1
     */
    enum PhyRate {
        /**
         * PHY rate is 10Mbps
         */
        Rate10M = 0,
        /**
         * PHY rate is 100Mbps
         */
        Rate100M = 1,
        /**
         * PHY rate is 1Gbps
         */
        Rate1G = 2,
        /**
         * PHY rate is 2.5Gbps
         */
        Rate25G = 3,
        /**
         * PHY rate is 5Gbps
         */
        Rate5G = 4,
        /**
         * PHY rate is 10Gbps
         */
        Rate10G = 5,
        /**
         * PHY rate is 40Gbps
         */
        Rate40G = 6,
        /**
         * PHY rate is 100Gbps
         */
        Rate100G = 7,
        /**
         * PHY rate is 200Gbps
         */
        Rate200G = 8,
        /**
         * PHY rate is 400Gbps
         */
        Rate400G = 9
    }
    /**
     * A EthernetNetworkDiagnosticsCluster supports these elements if it supports feature PacketCounts.
     */
    const PacketCountsComponent: {
        readonly attributes: {
            /**
             * Indicates the number of packets that have been received on the ethernet network interface. The attribute
             * shall be reset to 0 upon a reboot of the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.3
             */
            readonly packetRxCount: Attribute<number | bigint, any>;
            /**
             * Indicates the number of packets that have been successfully transferred on the ethernet network
             * interface. The attribute shall be reset to 0 upon a reboot of the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.4
             */
            readonly packetTxCount: Attribute<number | bigint, any>;
        };
    };
    /**
     * A EthernetNetworkDiagnosticsCluster supports these elements if it supports feature ErrorCounts.
     */
    const ErrorCountsComponent: {
        readonly attributes: {
            /**
             * Indicates the number of failed packet transmissions that have occurred on the ethernet network interface.
             * The attribute shall be reset to 0 upon a reboot of the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.5
             */
            readonly txErrCount: Attribute<number | bigint, any>;
            /**
             * Indicates the number of collisions that have occurred while attempting to transmit a packet on the
             * ethernet network interface. The attribute shall be reset to 0 upon a reboot of the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.6
             */
            readonly collisionCount: Attribute<number | bigint, any>;
            /**
             * Indicates the number of packets dropped either at ingress or egress, due to lack of buffer memory to
             * retain all packets on the ethernet network interface. The attribute shall be reset to 0 upon a reboot of
             * the Node.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.7
             */
            readonly overrunCount: Attribute<number | bigint, any>;
        };
    };
    /**
     * A EthernetNetworkDiagnosticsCluster supports these elements if it supports features PacketCounts or ErrorCounts.
     */
    const PacketCountsOrErrorCountsComponent: {
        readonly commands: {
            /**
             * This command is used to reset the count attributes.
             *
             * Reception of this command shall reset the following attributes to 0:
             *
             *   • PacketRxCount
             *
             *   • PacketTxCount
             *
             *   • TxErrCount
             *
             *   • CollisionCount
             *
             *   • OverrunCount
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.7.1
             */
            readonly resetCounts: Command<void, void, any>;
        };
    };
    /**
     * These elements and properties are present in all EthernetNetworkDiagnostics clusters.
     */
    const Base: {
        readonly id: 55;
        readonly name: "EthernetNetworkDiagnostics";
        readonly revision: 1;
        readonly features: {
            /**
             * Node makes available the counts for the number of received and transmitted packets on the ethernet
             * interface.
             */
            readonly packetCounts: BitFlag;
            /**
             * Node makes available the counts for the number of errors that have occurred during the reception and
             * transmission of packets on the ethernet interface.
             */
            readonly errorCounts: BitFlag;
        };
        readonly attributes: {
            /**
             * Indicates the current nominal, usable speed at the top of the physical layer of the Node. A value of null
             * shall indicate that the interface is not currently configured or operational.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.1
             */
            readonly phyRate: OptionalAttribute<PhyRate | null, any>;
            /**
             * Indicates if the Node is currently utilizing the full-duplex operating mode. A value of null shall
             * indicate that the interface is not currently configured or operational.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.2
             */
            readonly fullDuplex: OptionalAttribute<boolean | null, any>;
            /**
             * Indicates the value of the Carrier Detect control signal present on the ethernet network interface. A
             * value of null shall indicate that the interface is not currently configured or operational.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.8
             */
            readonly carrierDetect: OptionalAttribute<boolean | null, any>;
            /**
             * Indicates the duration of time, in minutes, that it has been since the ethernet network interface has
             * reset for any reason.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.9
             */
            readonly timeSinceReset: OptionalAttribute<number | bigint, any>;
        };
        /**
         * This metadata controls which EthernetNetworkDiagnosticsCluster elements matter.js activates for specific
         * feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly packetCounts: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * Indicates the number of packets that have been received on the ethernet network interface. The attribute
                     * shall be reset to 0 upon a reboot of the Node.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.6.3
                     */
                    readonly packetRxCount: Attribute<number | bigint, any>;
                    /**
                     * Indicates the number of packets that have been successfully transferred on the ethernet network
                     * interface. The attribute shall be reset to 0 upon a reboot of the Node.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.6.4
                     */
                    readonly packetTxCount: Attribute<number | bigint, any>;
                };
            };
        }, {
            readonly flags: {
                readonly errorCounts: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * Indicates the number of failed packet transmissions that have occurred on the ethernet network interface.
                     * The attribute shall be reset to 0 upon a reboot of the Node.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.6.5
                     */
                    readonly txErrCount: Attribute<number | bigint, any>;
                    /**
                     * Indicates the number of collisions that have occurred while attempting to transmit a packet on the
                     * ethernet network interface. The attribute shall be reset to 0 upon a reboot of the Node.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.6.6
                     */
                    readonly collisionCount: Attribute<number | bigint, any>;
                    /**
                     * Indicates the number of packets dropped either at ingress or egress, due to lack of buffer memory to
                     * retain all packets on the ethernet network interface. The attribute shall be reset to 0 upon a reboot of
                     * the Node.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.6.7
                     */
                    readonly overrunCount: Attribute<number | bigint, any>;
                };
            };
        }, {
            readonly flags: {
                readonly packetCounts: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * This command is used to reset the count attributes.
                     *
                     * Reception of this command shall reset the following attributes to 0:
                     *
                     *   • PacketRxCount
                     *
                     *   • PacketTxCount
                     *
                     *   • TxErrCount
                     *
                     *   • CollisionCount
                     *
                     *   • OverrunCount
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.7.1
                     */
                    readonly resetCounts: Command<void, void, any>;
                };
            };
        }, {
            readonly flags: {
                readonly errorCounts: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * This command is used to reset the count attributes.
                     *
                     * Reception of this command shall reset the following attributes to 0:
                     *
                     *   • PacketRxCount
                     *
                     *   • PacketTxCount
                     *
                     *   • TxErrCount
                     *
                     *   • CollisionCount
                     *
                     *   • OverrunCount
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.7.1
                     */
                    readonly resetCounts: Command<void, void, any>;
                };
            };
        }];
    };
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster<{
        readonly id: 55;
        readonly name: "EthernetNetworkDiagnostics";
        readonly revision: 1;
        readonly features: {
            /**
             * Node makes available the counts for the number of received and transmitted packets on the ethernet
             * interface.
             */
            readonly packetCounts: BitFlag;
            /**
             * Node makes available the counts for the number of errors that have occurred during the reception and
             * transmission of packets on the ethernet interface.
             */
            readonly errorCounts: BitFlag;
        };
        readonly attributes: {
            /**
             * Indicates the current nominal, usable speed at the top of the physical layer of the Node. A value of null
             * shall indicate that the interface is not currently configured or operational.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.1
             */
            readonly phyRate: OptionalAttribute<PhyRate | null, any>;
            /**
             * Indicates if the Node is currently utilizing the full-duplex operating mode. A value of null shall
             * indicate that the interface is not currently configured or operational.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.2
             */
            readonly fullDuplex: OptionalAttribute<boolean | null, any>;
            /**
             * Indicates the value of the Carrier Detect control signal present on the ethernet network interface. A
             * value of null shall indicate that the interface is not currently configured or operational.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.8
             */
            readonly carrierDetect: OptionalAttribute<boolean | null, any>;
            /**
             * Indicates the duration of time, in minutes, that it has been since the ethernet network interface has
             * reset for any reason.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.16.6.9
             */
            readonly timeSinceReset: OptionalAttribute<number | bigint, any>;
        };
        /**
         * This metadata controls which EthernetNetworkDiagnosticsCluster elements matter.js activates for specific
         * feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly packetCounts: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * Indicates the number of packets that have been received on the ethernet network interface. The attribute
                     * shall be reset to 0 upon a reboot of the Node.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.6.3
                     */
                    readonly packetRxCount: Attribute<number | bigint, any>;
                    /**
                     * Indicates the number of packets that have been successfully transferred on the ethernet network
                     * interface. The attribute shall be reset to 0 upon a reboot of the Node.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.6.4
                     */
                    readonly packetTxCount: Attribute<number | bigint, any>;
                };
            };
        }, {
            readonly flags: {
                readonly errorCounts: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * Indicates the number of failed packet transmissions that have occurred on the ethernet network interface.
                     * The attribute shall be reset to 0 upon a reboot of the Node.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.6.5
                     */
                    readonly txErrCount: Attribute<number | bigint, any>;
                    /**
                     * Indicates the number of collisions that have occurred while attempting to transmit a packet on the
                     * ethernet network interface. The attribute shall be reset to 0 upon a reboot of the Node.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.6.6
                     */
                    readonly collisionCount: Attribute<number | bigint, any>;
                    /**
                     * Indicates the number of packets dropped either at ingress or egress, due to lack of buffer memory to
                     * retain all packets on the ethernet network interface. The attribute shall be reset to 0 upon a reboot of
                     * the Node.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.6.7
                     */
                    readonly overrunCount: Attribute<number | bigint, any>;
                };
            };
        }, {
            readonly flags: {
                readonly packetCounts: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * This command is used to reset the count attributes.
                     *
                     * Reception of this command shall reset the following attributes to 0:
                     *
                     *   • PacketRxCount
                     *
                     *   • PacketTxCount
                     *
                     *   • TxErrCount
                     *
                     *   • CollisionCount
                     *
                     *   • OverrunCount
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.7.1
                     */
                    readonly resetCounts: Command<void, void, any>;
                };
            };
        }, {
            readonly flags: {
                readonly errorCounts: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * This command is used to reset the count attributes.
                     *
                     * Reception of this command shall reset the following attributes to 0:
                     *
                     *   • PacketRxCount
                     *
                     *   • PacketTxCount
                     *
                     *   • TxErrCount
                     *
                     *   • CollisionCount
                     *
                     *   • OverrunCount
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.16.7.1
                     */
                    readonly resetCounts: Command<void, void, any>;
                };
            };
        }];
    }, []>;
    /**
     * The Ethernet Network Diagnostics Cluster provides 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 Ethernet Network
     * Diagnostics Cluster attempts to centralize all metrics that are relevant to a potential Ethernet connection to a
     * Node.
     *
     * EthernetNetworkDiagnosticsCluster supports optional features that you can enable with the
     * EthernetNetworkDiagnosticsCluster.with() factory method.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.16
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    /**
     * @see {@link Complete}
     */
    const CompleteInstance: MutableCluster<{
        readonly id: import("#general").Branded<55, "ClusterId">;
        readonly name: "EthernetNetworkDiagnostics";
        readonly revision: 1;
        readonly features: {
            /**
             * Node makes available the counts for the number of received and transmitted packets on the ethernet
             * interface.
             */
            readonly packetCounts: BitFlag;
            /**
             * Node makes available the counts for the number of errors that have occurred during the reception and
             * transmission of packets on the ethernet interface.
             */
            readonly errorCounts: BitFlag;
        };
        readonly attributes: {
            readonly packetRxCount: Attribute<number | bigint, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    packetCounts: boolean;
                }];
            };
            readonly packetTxCount: Attribute<number | bigint, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    packetCounts: boolean;
                }];
            };
            readonly txErrCount: Attribute<number | bigint, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    errorCounts: boolean;
                }];
            };
            readonly collisionCount: Attribute<number | bigint, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    errorCounts: boolean;
                }];
            };
            readonly overrunCount: Attribute<number | bigint, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    errorCounts: boolean;
                }];
            };
            readonly phyRate: OptionalAttribute<PhyRate | null, any>;
            readonly fullDuplex: OptionalAttribute<boolean | null, any>;
            readonly carrierDetect: OptionalAttribute<boolean | null, any>;
            readonly timeSinceReset: OptionalAttribute<number | bigint, any>;
            readonly clusterRevision: Attribute<number, never>;
            readonly featureMap: Attribute<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                /**
                 * Node makes available the counts for the number of received and transmitted packets on the ethernet
                 * interface.
                 */
                readonly packetCounts: BitFlag;
                /**
                 * Node makes available the counts for the number of errors that have occurred during the reception and
                 * transmission of packets on the ethernet interface.
                 */
                readonly errorCounts: BitFlag;
            }>, never>;
            readonly attributeList: Attribute<import("../index.js").AttributeId[], never>;
            readonly acceptedCommandList: Attribute<import("../index.js").CommandId[], never>;
            readonly generatedCommandList: Attribute<import("../index.js").CommandId[], never>;
        };
        readonly commands: {
            readonly resetCounts: Command<void, void, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    packetCounts: boolean;
                }, {
                    errorCounts: boolean;
                }];
            };
        };
    }, []>;
    /**
     * This cluster supports all EthernetNetworkDiagnostics 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 EthernetNetworkDiagnosticsCluster = EthernetNetworkDiagnostics.Cluster;
export declare const EthernetNetworkDiagnosticsCluster: EthernetNetworkDiagnostics.Cluster;
//# sourceMappingURL=ethernet-network-diagnostics.d.ts.map