/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Duration, MatterFlowError } from "#general";
import { MessageExchange } from "#protocol/MessageExchange.js";
import { Fabric } from "../fabric/Fabric.js";
export declare class MatterFabricConflictError extends MatterFlowError {
}
/**
 * Manages the failsafe timer associated with a {@link FailsafeContext}.
 */
export declare class FailsafeTimer {
    #private;
    associatedFabric: Fabric | undefined;
    constructor(associatedFabric: Fabric | undefined, expiryLength: Duration, maxCumulativeFailsafe: Duration, expiryCallback: (currentExchange?: MessageExchange) => Promise<void>);
    close(): Promise<void>;
    /** Handle "Re-Arming" an existing FailSafe context to extend the timer, expire or fail if not allowed. */
    reArm(associatedFabric: Fabric | undefined, expiry: Duration, currentExchange?: MessageExchange): Promise<void>;
    /** Returns whether the FailSafe context is currently armed. */
    get completed(): boolean;
    /** Expire the FailSafe context. This is called by the timer and can also be called manually if needed. */
    expire(currentExchange?: MessageExchange): Promise<void>;
    /** Complete the FailSafe context. This is called when the commissioning is completed. */
    complete(): void;
}
//# sourceMappingURL=FailsafeTimer.d.ts.map