/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { PartsBehavior } from "../behavior/system/parts/PartsBehavior.js";
import { IndexBehavior } from "../behavior/system/index/IndexBehavior.js";
import { BasicInformationServer as BaseBasicInformationServer } from "../behaviors/basic-information/BasicInformationServer.js";
import { AccessControlServer as BaseAccessControlServer } from "../behaviors/access-control/AccessControlServer.js";
import { GroupKeyManagementServer as BaseGroupKeyManagementServer } from "../behaviors/group-key-management/GroupKeyManagementServer.js";
import { GeneralCommissioningServer as BaseGeneralCommissioningServer } from "../behaviors/general-commissioning/GeneralCommissioningServer.js";
import { AdministratorCommissioningServer as BaseAdministratorCommissioningServer } from "../behaviors/administrator-commissioning/AdministratorCommissioningServer.js";
import { OperationalCredentialsServer as BaseOperationalCredentialsServer } from "../behaviors/operational-credentials/OperationalCredentialsServer.js";
import { GeneralDiagnosticsServer as BaseGeneralDiagnosticsServer } from "../behaviors/general-diagnostics/GeneralDiagnosticsServer.js";
import { PowerSourceConfigurationServer as BasePowerSourceConfigurationServer } from "../behaviors/power-source-configuration/PowerSourceConfigurationServer.js";
import { TimeSynchronizationServer as BaseTimeSynchronizationServer } from "../behaviors/time-synchronization/TimeSynchronizationServer.js";
import { NetworkCommissioningServer as BaseNetworkCommissioningServer } from "../behaviors/network-commissioning/NetworkCommissioningServer.js";
import { LocalizationConfigurationServer as BaseLocalizationConfigurationServer } from "../behaviors/localization-configuration/LocalizationConfigurationServer.js";
import { TimeFormatLocalizationServer as BaseTimeFormatLocalizationServer } from "../behaviors/time-format-localization/TimeFormatLocalizationServer.js";
import { UnitLocalizationServer as BaseUnitLocalizationServer } from "../behaviors/unit-localization/UnitLocalizationServer.js";
import { DiagnosticLogsServer as BaseDiagnosticLogsServer } from "../behaviors/diagnostic-logs/DiagnosticLogsServer.js";
import { SoftwareDiagnosticsServer as BaseSoftwareDiagnosticsServer } from "../behaviors/software-diagnostics/SoftwareDiagnosticsServer.js";
import { EthernetNetworkDiagnosticsServer as BaseEthernetNetworkDiagnosticsServer } from "../behaviors/ethernet-network-diagnostics/EthernetNetworkDiagnosticsServer.js";
import { WiFiNetworkDiagnosticsServer as BaseWiFiNetworkDiagnosticsServer } from "../behaviors/wi-fi-network-diagnostics/WiFiNetworkDiagnosticsServer.js";
import { ThreadNetworkDiagnosticsServer as BaseThreadNetworkDiagnosticsServer } from "../behaviors/thread-network-diagnostics/ThreadNetworkDiagnosticsServer.js";
import { IcdManagementServer as BaseIcdManagementServer } from "../behaviors/icd-management/IcdManagementServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { DeviceClassification } from "#model";
import { Identity } from "#general";
/**
 * This defines conformance for a root node endpoint (see System Model specification). This endpoint is akin to a "read
 * me first" endpoint that describes itself and the other endpoints that make up the node.
 *
 *   • Device types with Endpoint scope shall NOT be supported on the same endpoint as this device type.
 *
 *   • Clusters with an Application role shall NOT be supported on the same endpoint as this device type.
 *
 *   • Other device types with Node scope may be supported on the same endpoint as this device type.
 *
 * @see {@link MatterSpecification.v142.Device} § 2.1
 */
export interface RootEndpoint extends Identity<typeof RootEndpointDefinition> {
}
export declare namespace RootRequirements {
    /**
     * The BasicInformation cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link BasicInformationServer} for convenience.
     */
    const BasicInformationServer: typeof BaseBasicInformationServer;
    /**
     * The AccessControl cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link AccessControlServer} for convenience.
     */
    const AccessControlServer: typeof BaseAccessControlServer;
    /**
     * The GroupKeyManagement cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link GroupKeyManagementServer} for convenience.
     */
    const GroupKeyManagementServer: typeof BaseGroupKeyManagementServer;
    /**
     * The GeneralCommissioning cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link GeneralCommissioningServer} for convenience.
     */
    const GeneralCommissioningServer: typeof BaseGeneralCommissioningServer;
    /**
     * The AdministratorCommissioning cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link AdministratorCommissioningServer} for convenience.
     */
    const AdministratorCommissioningServer: typeof BaseAdministratorCommissioningServer;
    /**
     * The OperationalCredentials cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link OperationalCredentialsServer} for convenience.
     */
    const OperationalCredentialsServer: typeof BaseOperationalCredentialsServer;
    /**
     * The GeneralDiagnostics cluster is required by the Matter specification.
     *
     * We provide this alias to the default implementation {@link GeneralDiagnosticsServer} for convenience.
     */
    const GeneralDiagnosticsServer: typeof BaseGeneralDiagnosticsServer;
    /**
     * The PowerSourceConfiguration cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link PowerSourceConfigurationServer} for convenience.
     */
    const PowerSourceConfigurationServer: typeof BasePowerSourceConfigurationServer;
    /**
     * The TimeSynchronization cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link TimeSynchronizationServer} for convenience.
     */
    const TimeSynchronizationServer: typeof BaseTimeSynchronizationServer;
    /**
     * The NetworkCommissioning cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link NetworkCommissioningServer} for convenience.
     */
    const NetworkCommissioningServer: typeof BaseNetworkCommissioningServer;
    /**
     * The LocalizationConfiguration cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link LocalizationConfigurationServer} for convenience.
     */
    const LocalizationConfigurationServer: typeof BaseLocalizationConfigurationServer;
    /**
     * The TimeFormatLocalization cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link TimeFormatLocalizationServer} for convenience.
     */
    const TimeFormatLocalizationServer: typeof BaseTimeFormatLocalizationServer;
    /**
     * The UnitLocalization cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link UnitLocalizationServer} for convenience.
     */
    const UnitLocalizationServer: typeof BaseUnitLocalizationServer;
    /**
     * The DiagnosticLogs cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link DiagnosticLogsServer} for convenience.
     */
    const DiagnosticLogsServer: typeof BaseDiagnosticLogsServer;
    /**
     * The SoftwareDiagnostics cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link SoftwareDiagnosticsServer} for convenience.
     */
    const SoftwareDiagnosticsServer: typeof BaseSoftwareDiagnosticsServer;
    /**
     * The EthernetNetworkDiagnostics cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link EthernetNetworkDiagnosticsServer} for convenience.
     */
    const EthernetNetworkDiagnosticsServer: typeof BaseEthernetNetworkDiagnosticsServer;
    /**
     * The WiFiNetworkDiagnostics cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link WiFiNetworkDiagnosticsServer} for convenience.
     */
    const WiFiNetworkDiagnosticsServer: typeof BaseWiFiNetworkDiagnosticsServer;
    /**
     * The ThreadNetworkDiagnostics cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link ThreadNetworkDiagnosticsServer} for convenience.
     */
    const ThreadNetworkDiagnosticsServer: typeof BaseThreadNetworkDiagnosticsServer;
    /**
     * The IcdManagement cluster is optional per the Matter specification.
     *
     * We provide this alias to the default implementation {@link IcdManagementServer} for convenience.
     */
    const IcdManagementServer: typeof BaseIcdManagementServer;
    /**
     * An implementation for each server cluster supported by the endpoint per the Matter specification.
     */
    const server: {
        mandatory: {
            Parts: typeof PartsBehavior;
            Index: typeof IndexBehavior;
            BasicInformation: typeof BaseBasicInformationServer;
            AccessControl: typeof BaseAccessControlServer;
            GroupKeyManagement: typeof BaseGroupKeyManagementServer;
            GeneralCommissioning: typeof BaseGeneralCommissioningServer;
            AdministratorCommissioning: typeof BaseAdministratorCommissioningServer;
            OperationalCredentials: typeof BaseOperationalCredentialsServer;
            GeneralDiagnostics: typeof BaseGeneralDiagnosticsServer;
        };
        optional: {
            PowerSourceConfiguration: typeof BasePowerSourceConfigurationServer;
            TimeSynchronization: typeof BaseTimeSynchronizationServer;
            NetworkCommissioning: typeof BaseNetworkCommissioningServer;
            LocalizationConfiguration: typeof BaseLocalizationConfigurationServer;
            TimeFormatLocalization: typeof BaseTimeFormatLocalizationServer;
            UnitLocalization: typeof BaseUnitLocalizationServer;
            DiagnosticLogs: typeof BaseDiagnosticLogsServer;
            SoftwareDiagnostics: typeof BaseSoftwareDiagnosticsServer;
            EthernetNetworkDiagnostics: typeof BaseEthernetNetworkDiagnosticsServer;
            WiFiNetworkDiagnostics: typeof BaseWiFiNetworkDiagnosticsServer;
            ThreadNetworkDiagnostics: typeof BaseThreadNetworkDiagnosticsServer;
            IcdManagement: typeof BaseIcdManagementServer;
        };
    };
}
export declare const RootEndpointDefinition: MutableEndpoint.With<import("../index.js").EndpointType.For<{
    readonly name: "RootNode";
    readonly deviceType: 22;
    readonly deviceRevision: 3;
    readonly deviceClass: DeviceClassification.Node;
    readonly requirements: typeof RootRequirements;
    readonly behaviors: {
        readonly parts: typeof PartsBehavior;
    } & {
        readonly index: typeof IndexBehavior;
    } & {
        readonly basicInformation: typeof BaseBasicInformationServer;
    } & {
        readonly accessControl: typeof BaseAccessControlServer;
    } & {
        readonly groupKeyManagement: typeof BaseGroupKeyManagementServer;
    } & {
        readonly generalCommissioning: typeof BaseGeneralCommissioningServer;
    } & {
        readonly administratorCommissioning: typeof BaseAdministratorCommissioningServer;
    } & {
        readonly operationalCredentials: typeof BaseOperationalCredentialsServer;
    } & {
        readonly generalDiagnostics: typeof BaseGeneralDiagnosticsServer;
    };
}>, {
    readonly parts: typeof PartsBehavior;
} & {
    readonly index: typeof IndexBehavior;
} & {
    readonly basicInformation: typeof BaseBasicInformationServer;
} & {
    readonly accessControl: typeof BaseAccessControlServer;
} & {
    readonly groupKeyManagement: typeof BaseGroupKeyManagementServer;
} & {
    readonly generalCommissioning: typeof BaseGeneralCommissioningServer;
} & {
    readonly administratorCommissioning: typeof BaseAdministratorCommissioningServer;
} & {
    readonly operationalCredentials: typeof BaseOperationalCredentialsServer;
} & {
    readonly generalDiagnostics: typeof BaseGeneralDiagnosticsServer;
}>;
export declare const RootEndpoint: RootEndpoint;
//# sourceMappingURL=root.d.ts.map