export declare enum State {
    Idle = 0,
    Reading = 1,
    Writing = 2
}
export declare const ErrNotLocked: Error;
export declare const ErrTimeout: Error;
export declare class RWLock {
    private pendingReaders;
    private pendingWriters;
    private numReaders;
    private state;
    constructor();
    getState(): State;
    readLock(timeout?: number): Promise<void>;
    writeLock(timeout?: number): Promise<void>;
    unlock(): void;
    private pend;
    private allowWrite;
    private allowRead;
}
