/**
 * @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 } from "../cluster/Cluster.js";
import { TypeFromSchema } from "../tlv/TlvSchema.js";
import { BitFlag } from "../schema/BitmapSchema.js";
import { StatusResponseError } from "../common/StatusResponseError.js";
import { Status } from "../globals/Status.js";
import { Identity } from "#general";
export declare namespace AdministratorCommissioning {
    /**
     * These are optional features supported by AdministratorCommissioningCluster.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.19.4
     */
    enum Feature {
        /**
         * Basic (BC)
         *
         * Node supports Basic Commissioning Method.
         */
        Basic = "Basic"
    }
    /**
     * Input to the AdministratorCommissioning openBasicCommissioningWindow command
     *
     * @see {@link MatterSpecification.v142.Core} § 11.19.8.2
     */
    const TlvOpenBasicCommissioningWindowRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall specify the time in seconds during which commissioning session establishment is allowed by
         * the Node. This timeout shall follow guidance as specified in the initial Announcement Duration.
         *
         * When a Node receives the OpenBasicCommissioningWindow command, it shall begin advertising on DNS-SD as
         * described in Section 4.3.1, “Commissionable Node Discovery” and for a time period as
         * describedinCommissioningTimeout. When the command is received by a ICD, it shall enter into active mode. The
         * ICD shall remain in Active Mode as long as one of these conditions is met:
         *
         *   - A commissioning window is open.
         *
         *   - There is an armed fail-safe timer.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.19.8.2.1
         */
        commissioningTimeout: import("../tlv/TlvObject.js").FieldType<number>;
    }>;
    /**
     * Input to the AdministratorCommissioning openBasicCommissioningWindow command
     *
     * @see {@link MatterSpecification.v142.Core} § 11.19.8.2
     */
    interface OpenBasicCommissioningWindowRequest extends TypeFromSchema<typeof TlvOpenBasicCommissioningWindowRequest> {
    }
    /**
     * @see {@link MatterSpecification.v142.Core} § 11.19.5.1
     */
    enum CommissioningWindowStatus {
        /**
         * Commissioning window not open
         */
        WindowNotOpen = 0,
        /**
         * An Enhanced Commissioning Method window is open
         */
        EnhancedWindowOpen = 1,
        /**
         * A Basic Commissioning Method window is open
         */
        BasicWindowOpen = 2
    }
    /**
     * Input to the AdministratorCommissioning openCommissioningWindow command
     *
     * @see {@link MatterSpecification.v142.Core} § 11.19.8.1
     */
    const TlvOpenCommissioningWindowRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall specify the time in seconds during which commissioning session establishment is allowed by
         * the Node. This timeout value shall follow guidance as specified in the initial Announcement Duration. The
         * CommissioningTimeout applies only to cessation of any announcements and to accepting of new commissioning
         * sessions; it does not apply to abortion of connections, i.e., a commissioning session SHOULD NOT abort
         * prematurely upon expiration of this timeout.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.1
         */
        commissioningTimeout: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall specify an ephemeral PAKE passcode verifier (see Section 3.10, “Password-Authenticated Key
         * Exchange (PAKE)”) computed by the existing Administrator to be used for this commissioning. The field is
         * concatenation of two values (w0 || L) shall be (CRYPTO_GROUP_SIZE_BYTES +
         * CRYPTO_PUBLIC_KEY_SIZE_BYTES)-octets long as detailed in Crypto_PAKEValues_Responder. It shall be derived
         * from an ephemeral passcode (See PAKE). It shall be deleted by the Node at the end of commissioning or
         * expiration of the OpenCommissioningWindow command, and shall be deleted by the existing Administrator after
         * sending it to the Node(s).
         *
         * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.2
         */
        pakePasscodeVerifier: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
        /**
         * This field shall be used by the Node as the long discriminator for DNS-SD advertisement (see Section 4.3.1.5,
         * “TXT key for discriminator (D)”) for discovery by the new Administrator. The new Administrator can find and
         * filter DNS-SD records by long discriminator to locate and initiate commissioning with the appropriate Node.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.3
         */
        discriminator: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall be used by the Node as the PAKE iteration count associated with the ephemeral PAKE passcode
         * verifier to be used for this commissioning, which shall be sent by the Node to the new Administrator’s
         * software as response to the PBKDFParamRequest during PASE negotiation. The permitted range of values shall
         * match the range specified in Section 3.9, “Password-Based Key Derivation Function (PBKDF)”, within the
         * definition of the Crypto_PBKDFParameterSet.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.4
         */
        iterations: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall be used by the Node as the PAKE Salt associated with the ephemeral PAKE passcode verifier to
         * be used for this commissioning, which shall be sent by the Node to the new Administrator’s software as
         * response to the PBKDFParamRequest during PASE negotiation. The constraints on the value shall match those
         * specified in Section 3.9, “Password-Based Key Derivation Function (PBKDF)”, within the definition of the
         * Crypto_PBKDFParameterSet.
         *
         * When a Node receives the OpenCommissioningWindow command, it shall begin advertising on DNS-SD as described
         * in Section 4.3.1, “Commissionable Node Discovery” and for a time period as described in CommissioningTimeout.
         *
         * When the command is received by a ICD, it shall enter into active mode. The ICD shall remain in Active Mode
         * as long as one of these conditions is met:
         *
         *   - A commissioning window is open.
         *
         *   - There is an armed fail-safe timer.
         *
         * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.5
         */
        salt: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
    }>;
    /**
     * Input to the AdministratorCommissioning openCommissioningWindow command
     *
     * @see {@link MatterSpecification.v142.Core} § 11.19.8.1
     */
    interface OpenCommissioningWindowRequest extends TypeFromSchema<typeof TlvOpenCommissioningWindowRequest> {
    }
    /**
     * @see {@link MatterSpecification.v142.Core} § 11.19.6.1
     */
    enum StatusCode {
        /**
         * Could not be completed because another commissioning is in progress
         */
        Busy = 2,
        /**
         * Provided PAKE parameters were incorrectly formatted or otherwise invalid
         */
        PakeParameterError = 3,
        /**
         * No commissioning window was currently open
         */
        WindowNotOpen = 4
    }
    /**
     * Thrown for cluster status code {@link StatusCode.Busy}.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.19.6.1
     */
    class BusyError extends StatusResponseError {
        constructor(message?: string, code?: Status, clusterCode?: StatusCode);
    }
    /**
     * Thrown for cluster status code {@link StatusCode.PakeParameterError}.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.19.6.1
     */
    class PakeParameterError extends StatusResponseError {
        constructor(message?: string, code?: Status, clusterCode?: StatusCode);
    }
    /**
     * Thrown for cluster status code {@link StatusCode.WindowNotOpen}.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.19.6.1
     */
    class WindowNotOpenError extends StatusResponseError {
        constructor(message?: string, code?: Status, clusterCode?: StatusCode);
    }
    /**
     * A AdministratorCommissioningCluster supports these elements if it supports feature Basic.
     */
    const BasicComponent: {
        readonly commands: {
            /**
             * This command may be used by a current Administrator to instruct a Node to go into commissioning mode, if
             * the node supports the Basic Commissioning Method. The Basic Commissioning Method specifies a window of
             * time during which an already commissioned Node accepts PASE sessions. The current Administrator shall
             * specify a timeout value for the duration of the OpenBasicCommissioningWindow command.
             *
             * If a commissioning window is already currently open, this command shall fail with a cluster specific
             * status code of Busy.
             *
             * If the fail-safe timer is currently armed, this command shall fail with a cluster specific status code of
             * Busy, since it is likely that concurrent commissioning operations from multiple separate Commissioners
             * are about to take place.
             *
             * In case of any other parameter error, this command shall fail with a status code of COMMAND_INVALID.
             *
             * The commissioning into a new Fabric completes when the Node successfully receives a CommissioningComplete
             * command, see Section 5.5, “Commissioning Flows”. The new Administrator shall discover the Node on the IP
             * network using DNS-based Service Discovery (DNS-SD) for commissioning.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.8.2
             */
            readonly openBasicCommissioningWindow: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall specify the time in seconds during which commissioning session establishment is allowed by
                 * the Node. This timeout shall follow guidance as specified in the initial Announcement Duration.
                 *
                 * When a Node receives the OpenBasicCommissioningWindow command, it shall begin advertising on DNS-SD as
                 * described in Section 4.3.1, “Commissionable Node Discovery” and for a time period as
                 * describedinCommissioningTimeout. When the command is received by a ICD, it shall enter into active mode. The
                 * ICD shall remain in Active Mode as long as one of these conditions is met:
                 *
                 *   - A commissioning window is open.
                 *
                 *   - There is an armed fail-safe timer.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.2.1
                 */
                commissioningTimeout: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any>;
        };
    };
    /**
     * These elements and properties are present in all AdministratorCommissioning clusters.
     */
    const Base: {
        readonly id: 60;
        readonly name: "AdministratorCommissioning";
        readonly revision: 1;
        readonly features: {
            /**
             * Node supports Basic Commissioning Method.
             */
            readonly basic: BitFlag;
        };
        readonly attributes: {
            /**
             * Indicates whether a new Commissioning window has been opened by an Administrator, using either the
             * OpenCommissioningWindow command or the OpenBasicCommissioningWindow command.
             *
             * This attribute shall revert to WindowNotOpen upon expiry of a commissioning window.
             *
             * > [!NOTE]
             *
             * > An initial commissioning window is not opened using either the OpenCommissioningWindow command or the
             *   OpenBasicCommissioningWindow command, and therefore this attribute shall be set to WindowNotOpen on
             *   initial commissioning.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.7.1
             */
            readonly windowStatus: Attribute<CommissioningWindowStatus, any>;
            /**
             * When the WindowStatus attribute is not set to WindowNotOpen, this attribute shall indicate the
             * FabricIndex associated with the Fabric scoping of the Administrator that opened the window. This may be
             * used to cross-reference in the Fabrics attribute of the Operational Credentials cluster.
             *
             * If, during an open commissioning window, the fabric for the Administrator that opened the window is
             * removed, then this attribute shall be set to null.
             *
             * When the WindowStatus attribute is set to WindowNotOpen, this attribute shall be set to null.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.7.2
             */
            readonly adminFabricIndex: Attribute<import("../datatype/FabricIndex.js").FabricIndex | null, any>;
            /**
             * When the WindowStatus attribute is not set to WindowNotOpen, this attribute shall indicate the Vendor ID
             * associated with the Fabric scoping of the Administrator that opened the window. This field shall match
             * the VendorID field of the Fabrics attribute list entry associated with the Administrator having opened
             * the window, at the time of window opening. If the fabric for the Administrator that opened the window is
             * removed from the node while the commissioning window is still open, this attribute shall NOT be updated.
             *
             * When the WindowStatus attribute is set to WindowNotOpen, this attribute shall be set to null.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.7.3
             */
            readonly adminVendorId: Attribute<import("../datatype/VendorId.js").VendorId | null, any>;
        };
        readonly commands: {
            /**
             * This command is used by a current Administrator to instruct a Node to go into commissioning mode. The
             * Enhanced Commissioning Method specifies a window of time during which an already commissioned Node
             * accepts PASE sessions. The current Administrator MUST specify a timeout value for the duration of the
             * OpenCommissioningWindow command.
             *
             * When the OpenCommissioningWindow command expires or commissioning completes, the Node shall remove the
             * Passcode by deleting the PAKE passcode verifier as well as stop publishing the DNS-SD record
             * corresponding to this command as described in Section 4.3.1, “Commissionable Node Discovery”. The
             * commissioning into a new Fabric completes when the Node successfully receives a CommissioningComplete
             * command, see Section 5.5, “Commissioning Flows”.
             *
             * The parameters for OpenCommissioningWindow command are as follows:
             *
             * A current Administrator may invoke this command to put a node in commissioning mode for
             * thenextAdministrator. On completion, the command shall return a cluster specific status code from the
             * Section 11.19.6, “Status Codes” below reflecting success or reasons for failure of the operation. The new
             * Administrator shall discover the Node on the IP network using DNS-based Service Discovery (DNS-SD) for
             * commissioning.
             *
             * If any format or validity errors related to the PAKEPasscodeVerifier, Iterations or Salt arguments arise,
             * this command shall fail with a cluster specific status code of PAKEParameterError.
             *
             * If a commissioning window is already currently open, this command shall fail with a cluster specific
             * status code of Busy.
             *
             * If the fail-safe timer is currently armed, this command shall fail with a cluster specific status code of
             * Busy, since it is likely that concurrent commissioning operations from multiple separate Commissioners
             * are about to take place.
             *
             * In case of any other parameter error, this command shall fail with a status code of COMMAND_INVALID.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.8.1
             */
            readonly openCommissioningWindow: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall specify the time in seconds during which commissioning session establishment is allowed by
                 * the Node. This timeout value shall follow guidance as specified in the initial Announcement Duration. The
                 * CommissioningTimeout applies only to cessation of any announcements and to accepting of new commissioning
                 * sessions; it does not apply to abortion of connections, i.e., a commissioning session SHOULD NOT abort
                 * prematurely upon expiration of this timeout.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.1
                 */
                commissioningTimeout: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall specify an ephemeral PAKE passcode verifier (see Section 3.10, “Password-Authenticated Key
                 * Exchange (PAKE)”) computed by the existing Administrator to be used for this commissioning. The field is
                 * concatenation of two values (w0 || L) shall be (CRYPTO_GROUP_SIZE_BYTES +
                 * CRYPTO_PUBLIC_KEY_SIZE_BYTES)-octets long as detailed in Crypto_PAKEValues_Responder. It shall be derived
                 * from an ephemeral passcode (See PAKE). It shall be deleted by the Node at the end of commissioning or
                 * expiration of the OpenCommissioningWindow command, and shall be deleted by the existing Administrator after
                 * sending it to the Node(s).
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.2
                 */
                pakePasscodeVerifier: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall be used by the Node as the long discriminator for DNS-SD advertisement (see Section 4.3.1.5,
                 * “TXT key for discriminator (D)”) for discovery by the new Administrator. The new Administrator can find and
                 * filter DNS-SD records by long discriminator to locate and initiate commissioning with the appropriate Node.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.3
                 */
                discriminator: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall be used by the Node as the PAKE iteration count associated with the ephemeral PAKE passcode
                 * verifier to be used for this commissioning, which shall be sent by the Node to the new Administrator’s
                 * software as response to the PBKDFParamRequest during PASE negotiation. The permitted range of values shall
                 * match the range specified in Section 3.9, “Password-Based Key Derivation Function (PBKDF)”, within the
                 * definition of the Crypto_PBKDFParameterSet.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.4
                 */
                iterations: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall be used by the Node as the PAKE Salt associated with the ephemeral PAKE passcode verifier to
                 * be used for this commissioning, which shall be sent by the Node to the new Administrator’s software as
                 * response to the PBKDFParamRequest during PASE negotiation. The constraints on the value shall match those
                 * specified in Section 3.9, “Password-Based Key Derivation Function (PBKDF)”, within the definition of the
                 * Crypto_PBKDFParameterSet.
                 *
                 * When a Node receives the OpenCommissioningWindow command, it shall begin advertising on DNS-SD as described
                 * in Section 4.3.1, “Commissionable Node Discovery” and for a time period as described in CommissioningTimeout.
                 *
                 * When the command is received by a ICD, it shall enter into active mode. The ICD shall remain in Active Mode
                 * as long as one of these conditions is met:
                 *
                 *   - A commissioning window is open.
                 *
                 *   - There is an armed fail-safe timer.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.5
                 */
                salt: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
            }>, void, any>;
            /**
             * This command is used by a current Administrator to instruct a Node to revoke any active
             * OpenCommissioningWindow or OpenBasicCommissioningWindow command. This is an idempotent command and the
             * Node shall (for ECM) delete the temporary PAKEPasscodeVerifier and associated data, and stop publishing
             * the DNS-SD record associated with the OpenCommissioningWindow or OpenBasicCommissioningWindow command,
             * see Section 4.3.1, “Commissionable Node Discovery”.
             *
             * If no commissioning window was open at time of receipt, this command shall fail with a cluster specific
             * status code of WindowNotOpen.
             *
             * If the commissioning window was open and the fail-safe was armed when this command is received, the
             * device shall immediately expire the fail-safe and perform the cleanup steps outlined in Section
             * 11.10.7.2.2, “Behavior on expiry of Fail-Safe timer”.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.8.3
             */
            readonly revokeCommissioning: Command<void, void, any>;
        };
        /**
         * This metadata controls which AdministratorCommissioningCluster elements matter.js activates for specific
         * feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly basic: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * This command may be used by a current Administrator to instruct a Node to go into commissioning mode, if
                     * the node supports the Basic Commissioning Method. The Basic Commissioning Method specifies a window of
                     * time during which an already commissioned Node accepts PASE sessions. The current Administrator shall
                     * specify a timeout value for the duration of the OpenBasicCommissioningWindow command.
                     *
                     * If a commissioning window is already currently open, this command shall fail with a cluster specific
                     * status code of Busy.
                     *
                     * If the fail-safe timer is currently armed, this command shall fail with a cluster specific status code of
                     * Busy, since it is likely that concurrent commissioning operations from multiple separate Commissioners
                     * are about to take place.
                     *
                     * In case of any other parameter error, this command shall fail with a status code of COMMAND_INVALID.
                     *
                     * The commissioning into a new Fabric completes when the Node successfully receives a CommissioningComplete
                     * command, see Section 5.5, “Commissioning Flows”. The new Administrator shall discover the Node on the IP
                     * network using DNS-based Service Discovery (DNS-SD) for commissioning.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.19.8.2
                     */
                    readonly openBasicCommissioningWindow: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall specify the time in seconds during which commissioning session establishment is allowed by
                         * the Node. This timeout shall follow guidance as specified in the initial Announcement Duration.
                         *
                         * When a Node receives the OpenBasicCommissioningWindow command, it shall begin advertising on DNS-SD as
                         * described in Section 4.3.1, “Commissionable Node Discovery” and for a time period as
                         * describedinCommissioningTimeout. When the command is received by a ICD, it shall enter into active mode. The
                         * ICD shall remain in Active Mode as long as one of these conditions is met:
                         *
                         *   - A commissioning window is open.
                         *
                         *   - There is an armed fail-safe timer.
                         *
                         * @see {@link MatterSpecification.v142.Core} § 11.19.8.2.1
                         */
                        commissioningTimeout: import("../tlv/TlvObject.js").FieldType<number>;
                    }>, void, any>;
                };
            };
        }];
    };
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster<{
        readonly id: 60;
        readonly name: "AdministratorCommissioning";
        readonly revision: 1;
        readonly features: {
            /**
             * Node supports Basic Commissioning Method.
             */
            readonly basic: BitFlag;
        };
        readonly attributes: {
            /**
             * Indicates whether a new Commissioning window has been opened by an Administrator, using either the
             * OpenCommissioningWindow command or the OpenBasicCommissioningWindow command.
             *
             * This attribute shall revert to WindowNotOpen upon expiry of a commissioning window.
             *
             * > [!NOTE]
             *
             * > An initial commissioning window is not opened using either the OpenCommissioningWindow command or the
             *   OpenBasicCommissioningWindow command, and therefore this attribute shall be set to WindowNotOpen on
             *   initial commissioning.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.7.1
             */
            readonly windowStatus: Attribute<CommissioningWindowStatus, any>;
            /**
             * When the WindowStatus attribute is not set to WindowNotOpen, this attribute shall indicate the
             * FabricIndex associated with the Fabric scoping of the Administrator that opened the window. This may be
             * used to cross-reference in the Fabrics attribute of the Operational Credentials cluster.
             *
             * If, during an open commissioning window, the fabric for the Administrator that opened the window is
             * removed, then this attribute shall be set to null.
             *
             * When the WindowStatus attribute is set to WindowNotOpen, this attribute shall be set to null.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.7.2
             */
            readonly adminFabricIndex: Attribute<import("../datatype/FabricIndex.js").FabricIndex | null, any>;
            /**
             * When the WindowStatus attribute is not set to WindowNotOpen, this attribute shall indicate the Vendor ID
             * associated with the Fabric scoping of the Administrator that opened the window. This field shall match
             * the VendorID field of the Fabrics attribute list entry associated with the Administrator having opened
             * the window, at the time of window opening. If the fabric for the Administrator that opened the window is
             * removed from the node while the commissioning window is still open, this attribute shall NOT be updated.
             *
             * When the WindowStatus attribute is set to WindowNotOpen, this attribute shall be set to null.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.7.3
             */
            readonly adminVendorId: Attribute<import("../datatype/VendorId.js").VendorId | null, any>;
        };
        readonly commands: {
            /**
             * This command is used by a current Administrator to instruct a Node to go into commissioning mode. The
             * Enhanced Commissioning Method specifies a window of time during which an already commissioned Node
             * accepts PASE sessions. The current Administrator MUST specify a timeout value for the duration of the
             * OpenCommissioningWindow command.
             *
             * When the OpenCommissioningWindow command expires or commissioning completes, the Node shall remove the
             * Passcode by deleting the PAKE passcode verifier as well as stop publishing the DNS-SD record
             * corresponding to this command as described in Section 4.3.1, “Commissionable Node Discovery”. The
             * commissioning into a new Fabric completes when the Node successfully receives a CommissioningComplete
             * command, see Section 5.5, “Commissioning Flows”.
             *
             * The parameters for OpenCommissioningWindow command are as follows:
             *
             * A current Administrator may invoke this command to put a node in commissioning mode for
             * thenextAdministrator. On completion, the command shall return a cluster specific status code from the
             * Section 11.19.6, “Status Codes” below reflecting success or reasons for failure of the operation. The new
             * Administrator shall discover the Node on the IP network using DNS-based Service Discovery (DNS-SD) for
             * commissioning.
             *
             * If any format or validity errors related to the PAKEPasscodeVerifier, Iterations or Salt arguments arise,
             * this command shall fail with a cluster specific status code of PAKEParameterError.
             *
             * If a commissioning window is already currently open, this command shall fail with a cluster specific
             * status code of Busy.
             *
             * If the fail-safe timer is currently armed, this command shall fail with a cluster specific status code of
             * Busy, since it is likely that concurrent commissioning operations from multiple separate Commissioners
             * are about to take place.
             *
             * In case of any other parameter error, this command shall fail with a status code of COMMAND_INVALID.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.8.1
             */
            readonly openCommissioningWindow: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall specify the time in seconds during which commissioning session establishment is allowed by
                 * the Node. This timeout value shall follow guidance as specified in the initial Announcement Duration. The
                 * CommissioningTimeout applies only to cessation of any announcements and to accepting of new commissioning
                 * sessions; it does not apply to abortion of connections, i.e., a commissioning session SHOULD NOT abort
                 * prematurely upon expiration of this timeout.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.1
                 */
                commissioningTimeout: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall specify an ephemeral PAKE passcode verifier (see Section 3.10, “Password-Authenticated Key
                 * Exchange (PAKE)”) computed by the existing Administrator to be used for this commissioning. The field is
                 * concatenation of two values (w0 || L) shall be (CRYPTO_GROUP_SIZE_BYTES +
                 * CRYPTO_PUBLIC_KEY_SIZE_BYTES)-octets long as detailed in Crypto_PAKEValues_Responder. It shall be derived
                 * from an ephemeral passcode (See PAKE). It shall be deleted by the Node at the end of commissioning or
                 * expiration of the OpenCommissioningWindow command, and shall be deleted by the existing Administrator after
                 * sending it to the Node(s).
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.2
                 */
                pakePasscodeVerifier: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall be used by the Node as the long discriminator for DNS-SD advertisement (see Section 4.3.1.5,
                 * “TXT key for discriminator (D)”) for discovery by the new Administrator. The new Administrator can find and
                 * filter DNS-SD records by long discriminator to locate and initiate commissioning with the appropriate Node.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.3
                 */
                discriminator: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall be used by the Node as the PAKE iteration count associated with the ephemeral PAKE passcode
                 * verifier to be used for this commissioning, which shall be sent by the Node to the new Administrator’s
                 * software as response to the PBKDFParamRequest during PASE negotiation. The permitted range of values shall
                 * match the range specified in Section 3.9, “Password-Based Key Derivation Function (PBKDF)”, within the
                 * definition of the Crypto_PBKDFParameterSet.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.4
                 */
                iterations: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall be used by the Node as the PAKE Salt associated with the ephemeral PAKE passcode verifier to
                 * be used for this commissioning, which shall be sent by the Node to the new Administrator’s software as
                 * response to the PBKDFParamRequest during PASE negotiation. The constraints on the value shall match those
                 * specified in Section 3.9, “Password-Based Key Derivation Function (PBKDF)”, within the definition of the
                 * Crypto_PBKDFParameterSet.
                 *
                 * When a Node receives the OpenCommissioningWindow command, it shall begin advertising on DNS-SD as described
                 * in Section 4.3.1, “Commissionable Node Discovery” and for a time period as described in CommissioningTimeout.
                 *
                 * When the command is received by a ICD, it shall enter into active mode. The ICD shall remain in Active Mode
                 * as long as one of these conditions is met:
                 *
                 *   - A commissioning window is open.
                 *
                 *   - There is an armed fail-safe timer.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.5
                 */
                salt: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
            }>, void, any>;
            /**
             * This command is used by a current Administrator to instruct a Node to revoke any active
             * OpenCommissioningWindow or OpenBasicCommissioningWindow command. This is an idempotent command and the
             * Node shall (for ECM) delete the temporary PAKEPasscodeVerifier and associated data, and stop publishing
             * the DNS-SD record associated with the OpenCommissioningWindow or OpenBasicCommissioningWindow command,
             * see Section 4.3.1, “Commissionable Node Discovery”.
             *
             * If no commissioning window was open at time of receipt, this command shall fail with a cluster specific
             * status code of WindowNotOpen.
             *
             * If the commissioning window was open and the fail-safe was armed when this command is received, the
             * device shall immediately expire the fail-safe and perform the cleanup steps outlined in Section
             * 11.10.7.2.2, “Behavior on expiry of Fail-Safe timer”.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.8.3
             */
            readonly revokeCommissioning: Command<void, void, any>;
        };
        /**
         * This metadata controls which AdministratorCommissioningCluster elements matter.js activates for specific
         * feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly basic: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * This command may be used by a current Administrator to instruct a Node to go into commissioning mode, if
                     * the node supports the Basic Commissioning Method. The Basic Commissioning Method specifies a window of
                     * time during which an already commissioned Node accepts PASE sessions. The current Administrator shall
                     * specify a timeout value for the duration of the OpenBasicCommissioningWindow command.
                     *
                     * If a commissioning window is already currently open, this command shall fail with a cluster specific
                     * status code of Busy.
                     *
                     * If the fail-safe timer is currently armed, this command shall fail with a cluster specific status code of
                     * Busy, since it is likely that concurrent commissioning operations from multiple separate Commissioners
                     * are about to take place.
                     *
                     * In case of any other parameter error, this command shall fail with a status code of COMMAND_INVALID.
                     *
                     * The commissioning into a new Fabric completes when the Node successfully receives a CommissioningComplete
                     * command, see Section 5.5, “Commissioning Flows”. The new Administrator shall discover the Node on the IP
                     * network using DNS-based Service Discovery (DNS-SD) for commissioning.
                     *
                     * @see {@link MatterSpecification.v142.Core} § 11.19.8.2
                     */
                    readonly openBasicCommissioningWindow: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall specify the time in seconds during which commissioning session establishment is allowed by
                         * the Node. This timeout shall follow guidance as specified in the initial Announcement Duration.
                         *
                         * When a Node receives the OpenBasicCommissioningWindow command, it shall begin advertising on DNS-SD as
                         * described in Section 4.3.1, “Commissionable Node Discovery” and for a time period as
                         * describedinCommissioningTimeout. When the command is received by a ICD, it shall enter into active mode. The
                         * ICD shall remain in Active Mode as long as one of these conditions is met:
                         *
                         *   - A commissioning window is open.
                         *
                         *   - There is an armed fail-safe timer.
                         *
                         * @see {@link MatterSpecification.v142.Core} § 11.19.8.2.1
                         */
                        commissioningTimeout: import("../tlv/TlvObject.js").FieldType<number>;
                    }>, void, any>;
                };
            };
        }];
    }, []>;
    /**
     * This cluster is used to trigger a Node to allow a new Administrator to commission it. It defines Attributes,
     * Commands and Responses needed for this purpose.
     *
     * There are two methods of commissioning, Basic Commissioning which may be supported and is described in Section
     * 5.6.2, “Basic Commissioning Method (BCM)” and Enhanced Commissioning which shall be supported and is described in
     * Section 5.6.3, “Enhanced Commissioning Method (ECM)”.
     *
     * For the management of Operational Credentials and Trusted Root Certificates, the Operational Credentials cluster
     * is used.
     *
     * If the Administrator Commissioning Cluster server instance is present on an endpoint with the Root Node device
     * type in the Descriptor cluster DeviceTypeList, then:
     *
     *   - The Commissioning Window shall be opened or closed on the node that the Root Node endpoint is on.
     *
     *   - The attributes shall indicate the state of the node that the Root Node endpoint is on.
     *
     * If the Administrator Commissioning Cluster server instance is present on an endpoint with the Bridged Node device
     * type in the Descriptor cluster DeviceTypeList, then:
     *
     *   - The Commissioning Window shall be opened or closed on the node represented by the Bridged Node.
     *
     *   - The attributes shall indicate the state of the node that is represented by the Bridged Node.
     *
     * AdministratorCommissioningCluster supports optional features that you can enable with the
     * AdministratorCommissioningCluster.with() factory method.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.19
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    /**
     * @see {@link Complete}
     */
    const CompleteInstance: MutableCluster<{
        readonly id: import("#general").Branded<60, "ClusterId">;
        readonly name: "AdministratorCommissioning";
        readonly revision: 1;
        readonly features: {
            /**
             * Node supports Basic Commissioning Method.
             */
            readonly basic: BitFlag;
        };
        readonly attributes: import("#general").Merge<{
            /**
             * Indicates whether a new Commissioning window has been opened by an Administrator, using either the
             * OpenCommissioningWindow command or the OpenBasicCommissioningWindow command.
             *
             * This attribute shall revert to WindowNotOpen upon expiry of a commissioning window.
             *
             * > [!NOTE]
             *
             * > An initial commissioning window is not opened using either the OpenCommissioningWindow command or the
             *   OpenBasicCommissioningWindow command, and therefore this attribute shall be set to WindowNotOpen on
             *   initial commissioning.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.7.1
             */
            readonly windowStatus: Attribute<CommissioningWindowStatus, any>;
            /**
             * When the WindowStatus attribute is not set to WindowNotOpen, this attribute shall indicate the
             * FabricIndex associated with the Fabric scoping of the Administrator that opened the window. This may be
             * used to cross-reference in the Fabrics attribute of the Operational Credentials cluster.
             *
             * If, during an open commissioning window, the fabric for the Administrator that opened the window is
             * removed, then this attribute shall be set to null.
             *
             * When the WindowStatus attribute is set to WindowNotOpen, this attribute shall be set to null.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.7.2
             */
            readonly adminFabricIndex: Attribute<import("../datatype/FabricIndex.js").FabricIndex | null, any>;
            /**
             * When the WindowStatus attribute is not set to WindowNotOpen, this attribute shall indicate the Vendor ID
             * associated with the Fabric scoping of the Administrator that opened the window. This field shall match
             * the VendorID field of the Fabrics attribute list entry associated with the Administrator having opened
             * the window, at the time of window opening. If the fabric for the Administrator that opened the window is
             * removed from the node while the commissioning window is still open, this attribute shall NOT be updated.
             *
             * When the WindowStatus attribute is set to WindowNotOpen, this attribute shall be set to null.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.7.3
             */
            readonly adminVendorId: Attribute<import("../datatype/VendorId.js").VendorId | null, any>;
        }, import("../cluster/Cluster.js").GlobalAttributes<{
            /**
             * Node supports Basic Commissioning Method.
             */
            readonly basic: BitFlag;
        }>>;
        readonly commands: {
            readonly openBasicCommissioningWindow: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall specify the time in seconds during which commissioning session establishment is allowed by
                 * the Node. This timeout shall follow guidance as specified in the initial Announcement Duration.
                 *
                 * When a Node receives the OpenBasicCommissioningWindow command, it shall begin advertising on DNS-SD as
                 * described in Section 4.3.1, “Commissionable Node Discovery” and for a time period as
                 * describedinCommissioningTimeout. When the command is received by a ICD, it shall enter into active mode. The
                 * ICD shall remain in Active Mode as long as one of these conditions is met:
                 *
                 *   - A commissioning window is open.
                 *
                 *   - There is an armed fail-safe timer.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.2.1
                 */
                commissioningTimeout: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    basic: boolean;
                }];
            };
            /**
             * This command is used by a current Administrator to instruct a Node to go into commissioning mode. The
             * Enhanced Commissioning Method specifies a window of time during which an already commissioned Node
             * accepts PASE sessions. The current Administrator MUST specify a timeout value for the duration of the
             * OpenCommissioningWindow command.
             *
             * When the OpenCommissioningWindow command expires or commissioning completes, the Node shall remove the
             * Passcode by deleting the PAKE passcode verifier as well as stop publishing the DNS-SD record
             * corresponding to this command as described in Section 4.3.1, “Commissionable Node Discovery”. The
             * commissioning into a new Fabric completes when the Node successfully receives a CommissioningComplete
             * command, see Section 5.5, “Commissioning Flows”.
             *
             * The parameters for OpenCommissioningWindow command are as follows:
             *
             * A current Administrator may invoke this command to put a node in commissioning mode for
             * thenextAdministrator. On completion, the command shall return a cluster specific status code from the
             * Section 11.19.6, “Status Codes” below reflecting success or reasons for failure of the operation. The new
             * Administrator shall discover the Node on the IP network using DNS-based Service Discovery (DNS-SD) for
             * commissioning.
             *
             * If any format or validity errors related to the PAKEPasscodeVerifier, Iterations or Salt arguments arise,
             * this command shall fail with a cluster specific status code of PAKEParameterError.
             *
             * If a commissioning window is already currently open, this command shall fail with a cluster specific
             * status code of Busy.
             *
             * If the fail-safe timer is currently armed, this command shall fail with a cluster specific status code of
             * Busy, since it is likely that concurrent commissioning operations from multiple separate Commissioners
             * are about to take place.
             *
             * In case of any other parameter error, this command shall fail with a status code of COMMAND_INVALID.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.8.1
             */
            readonly openCommissioningWindow: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall specify the time in seconds during which commissioning session establishment is allowed by
                 * the Node. This timeout value shall follow guidance as specified in the initial Announcement Duration. The
                 * CommissioningTimeout applies only to cessation of any announcements and to accepting of new commissioning
                 * sessions; it does not apply to abortion of connections, i.e., a commissioning session SHOULD NOT abort
                 * prematurely upon expiration of this timeout.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.1
                 */
                commissioningTimeout: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall specify an ephemeral PAKE passcode verifier (see Section 3.10, “Password-Authenticated Key
                 * Exchange (PAKE)”) computed by the existing Administrator to be used for this commissioning. The field is
                 * concatenation of two values (w0 || L) shall be (CRYPTO_GROUP_SIZE_BYTES +
                 * CRYPTO_PUBLIC_KEY_SIZE_BYTES)-octets long as detailed in Crypto_PAKEValues_Responder. It shall be derived
                 * from an ephemeral passcode (See PAKE). It shall be deleted by the Node at the end of commissioning or
                 * expiration of the OpenCommissioningWindow command, and shall be deleted by the existing Administrator after
                 * sending it to the Node(s).
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.2
                 */
                pakePasscodeVerifier: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
                /**
                 * This field shall be used by the Node as the long discriminator for DNS-SD advertisement (see Section 4.3.1.5,
                 * “TXT key for discriminator (D)”) for discovery by the new Administrator. The new Administrator can find and
                 * filter DNS-SD records by long discriminator to locate and initiate commissioning with the appropriate Node.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.3
                 */
                discriminator: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall be used by the Node as the PAKE iteration count associated with the ephemeral PAKE passcode
                 * verifier to be used for this commissioning, which shall be sent by the Node to the new Administrator’s
                 * software as response to the PBKDFParamRequest during PASE negotiation. The permitted range of values shall
                 * match the range specified in Section 3.9, “Password-Based Key Derivation Function (PBKDF)”, within the
                 * definition of the Crypto_PBKDFParameterSet.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.4
                 */
                iterations: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall be used by the Node as the PAKE Salt associated with the ephemeral PAKE passcode verifier to
                 * be used for this commissioning, which shall be sent by the Node to the new Administrator’s software as
                 * response to the PBKDFParamRequest during PASE negotiation. The constraints on the value shall match those
                 * specified in Section 3.9, “Password-Based Key Derivation Function (PBKDF)”, within the definition of the
                 * Crypto_PBKDFParameterSet.
                 *
                 * When a Node receives the OpenCommissioningWindow command, it shall begin advertising on DNS-SD as described
                 * in Section 4.3.1, “Commissionable Node Discovery” and for a time period as described in CommissioningTimeout.
                 *
                 * When the command is received by a ICD, it shall enter into active mode. The ICD shall remain in Active Mode
                 * as long as one of these conditions is met:
                 *
                 *   - A commissioning window is open.
                 *
                 *   - There is an armed fail-safe timer.
                 *
                 * @see {@link MatterSpecification.v142.Core} § 11.19.8.1.5
                 */
                salt: import("../tlv/TlvObject.js").FieldType<AllowSharedBufferSource>;
            }>, void, any>;
            /**
             * This command is used by a current Administrator to instruct a Node to revoke any active
             * OpenCommissioningWindow or OpenBasicCommissioningWindow command. This is an idempotent command and the
             * Node shall (for ECM) delete the temporary PAKEPasscodeVerifier and associated data, and stop publishing
             * the DNS-SD record associated with the OpenCommissioningWindow or OpenBasicCommissioningWindow command,
             * see Section 4.3.1, “Commissionable Node Discovery”.
             *
             * If no commissioning window was open at time of receipt, this command shall fail with a cluster specific
             * status code of WindowNotOpen.
             *
             * If the commissioning window was open and the fail-safe was armed when this command is received, the
             * device shall immediately expire the fail-safe and perform the cleanup steps outlined in Section
             * 11.10.7.2.2, “Behavior on expiry of Fail-Safe timer”.
             *
             * @see {@link MatterSpecification.v142.Core} § 11.19.8.3
             */
            readonly revokeCommissioning: Command<void, void, any>;
        };
    }, []>;
    /**
     * This cluster supports all AdministratorCommissioning 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 AdministratorCommissioningCluster = AdministratorCommissioning.Cluster;
export declare const AdministratorCommissioningCluster: AdministratorCommissioning.Cluster;
//# sourceMappingURL=administrator-commissioning.d.ts.map