/**
 * A simple promise-based mutual exclusion lock. Callers acquire the lock and receive a release function;
 * subsequent acquire() calls queue behind the current holder until it releases.
 */
export declare class Mutex {
    private queue;
    /**
     * Wait until the lock is available, then acquire it.
     * @returns a release function that MUST be called (typically in a finally block) to let the next waiter proceed.
     */
    acquire(): Promise<() => void>;
}
