/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Duration, Timer } from "@matter/general";
import { AdministratorCommissioning } from "@matter/types/clusters/administrator-commissioning";
declare const AdministratorCommissioningBase: import("../../index.js").ClusterBehavior.Type<import("./AdministratorCommissioningBehavior.js").AdministratorCommissioningBehaviorConstructor, AdministratorCommissioning, typeof AdministratorCommissioning, new () => {}, "administratorCommissioning"> & {
    readonly id: "administratorCommissioning";
};
/**
 * This is the default server implementation of AdministratorCommissioningBehavior.
 *
 * This implementation includes all features of AdministratorCommissioning.Cluster. You should use
 * AdministratorCommissioningServer.with to specialize the class for the features your implementation supports.
 */
export declare class AdministratorCommissioningServer extends AdministratorCommissioningBase {
    #private;
    internal: AdministratorCommissioningServer.Internal;
    readonly state: AdministratorCommissioningServer.State;
    static lockOnInvoke: boolean;
    /**
     * This method opens an Enhanced Commissioning Window (a dynamic passcode is used which was provided by the caller).
     */
    openCommissioningWindow({ pakePasscodeVerifier, discriminator, iterations, salt, commissioningTimeout }: AdministratorCommissioning.OpenCommissioningWindowRequest): Promise<void>;
    /** This method opens a Basic Commissioning Window. The default passcode is used. */
    openBasicCommissioningWindow({ commissioningTimeout }: AdministratorCommissioning.OpenBasicCommissioningWindowRequest): Promise<void>;
    /**
     * This method is used to revoke a commissioning window.
     *
     * Spec 1.5.1 requires Step 1 cleanup to run regardless of window state before checking the window.
     */
    revokeCommissioning(): Promise<void>;
    /**
     * Clean up resources and stop the timer when the behavior is destroyed.
     */
    [Symbol.asyncDispose](): void;
}
export declare namespace AdministratorCommissioningServer {
    class Internal {
        commissioningWindowTimeout?: Timer;
        stopMonitoringFabricForRemoval?: () => void;
        /**
         * Mandated by spec; should only be modified in testing.
         */
        minimumCommissioningTimeout: Duration;
        /**
         * Commissioning beyond the standard 15-minute window is "extended commissioning" and has limitations on
         * advertisement.  We default to the standard window.
         */
        maximumCommissioningTimeout: Duration;
    }
    class State extends AdministratorCommissioningBase.State {
        windowStatus: AdministratorCommissioning.CommissioningWindowStatus;
    }
}
export {};
//# sourceMappingURL=AdministratorCommissioningServer.d.ts.map