import { TReentrantLock } from "@effect/core/stm/TReentrantLock/definition";
import { HashMap } from "@tsplus/stdlib/collections/HashMap/definition";
import { FiberId } from "@effect/core/io/FiberId/definition";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
import { ReadLockSym } from "@effect/core/stm/TReentrantLock/definition/ReadLock";
export declare class InternalReadLock implements TReentrantLock.ReadLock {
    readonly readers: HashMap<FiberId, number>;
    readonly [ReadLockSym]: ReadLockSym;
    constructor(readers: HashMap<FiberId, number>);
    readonly writeLocks = 0;
    writeLocksHeld(fiberId: FiberId): number;
    get readLocks(): number;
    readLocksHeld(fiberId: FiberId): number;
}
/**
 * @tsplus macro remove
 */
export declare function concreteReadLock(_: TReentrantLock.ReadLock): asserts _ is InternalReadLock;
//# sourceMappingURL=InternalReadLock.d.ts.map