/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Resource } from "./Resource.js";
import type { Transaction } from "./Transaction.js";
/**
 * An internal set of resources supporting bulk operations for {@link Transaction}.
 */
export declare class ResourceSet {
    #private;
    constructor(transaction: Transaction, resources?: Iterable<Resource>);
    /**
     * Wait until the resources have no exclusive transactions and then lock.
     */
    acquireLocks(): Promise<Set<Resource>>;
    /**
     * Acquire locks synchronously.
     *
     * Throws an error if resources aren't lockable.
     */
    acquireLocksSync(): Set<Resource>;
    /**
     * Release locks.
     */
    releaseLocks(): Set<Resource>;
    /**
     * Ensure that a transaction that is committing or rolling back has all resources locked.
     *
     * This is just a sanity check.
     */
    assertResourcesAreLocked(transaction: Transaction, why: string): void;
    [Symbol.iterator](): SetIterator<Resource>;
}
//# sourceMappingURL=ResourceSet.d.ts.map