/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { AdministratorCommissioning } from "#clusters/administrator-commissioning";
import { Duration, Timer } from "#general";
import { AdministratorCommissioningBehavior } from "./AdministratorCommissioningBehavior.js";
/**
 * 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 AdministratorCommissioningBehavior {
    #private;
    internal: AdministratorCommissioningServer.Internal;
    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. */
    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 AdministratorCommissioningBehavior.State {
        windowStatus: AdministratorCommissioning.CommissioningWindowStatus;
    }
}
//# sourceMappingURL=AdministratorCommissioningServer.d.ts.map