/**
 * Copyright (C) 2024 Hedera Hashgraph, LLC
 *
 * Licensed under the Apache License, Version 2.0 (the ""License"");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an ""AS IS"" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */
import { type ListrTaskWrapper } from 'listr2';
import { type Lease } from './lease.js';
/**
 * A utility class for managing lease acquisition tasks in Listr2 based workflows.
 */
export declare class ListrLease {
    /**
     * The default number of attempts to try acquiring the lease before failing.
     */
    static readonly DEFAULT_LEASE_ACQUIRE_ATTEMPTS = 10;
    /**
     * The title of the lease acquisition task used by Listr2.
     */
    static readonly ACQUIRE_LEASE_TASK_TITLE = "Acquire lease";
    /**
     * Prevents instantiation of this utility class.
     */
    private constructor();
    /**
     * Creates a new Listr2 task for acquiring a lease with retry logic.
     * @param lease - the lease to be acquired.
     * @param task - the parent task to which the lease acquisition task will be added.
     * @returns a new Listr2 task for acquiring a lease with retry logic.
     */
    static newAcquireLeaseTask(lease: Lease, task: ListrTaskWrapper<any, any, any>): import("listr2").Listr<any, any, any>;
    /**
     * Acquires a lease with retry logic and appropriate Listr2 status updates. This method is called by the Listr2 task
     * created by the newAcquireLeaseTask() method.
     *
     * @param lease - the lease to be acquired.
     * @param task - the task to be updated with the lease acquisition status.
     * @throws LeaseAcquisitionError if the lease could not be acquired after the maximum number of attempts or an unexpected error occurred.
     */
    private static acquireWithRetry;
}
