/**
 * Simple mutex implementation for async operations
 */
export declare class Mutex {
    private isLocked;
    private waitQueue;
    /**
     * Acquire the lock
     */
    acquire(): Promise<void>;
    /**
     * Release the lock
     */
    release(): void;
    /**
     * Run a function exclusively with the lock
     */
    runExclusive<T>(fn: () => Promise<T>): Promise<T>;
}
