import { MutexInterface } from 'async-mutex';

declare class Locks {
    #private;
    /**
     * For a given key, get or create a new lock
     *
     * @param key Key to get or create a lock for
     * @param timeout Time to wait to acquire the lock
     */
    getOrCreateForKey(key: string, timeout?: number): MutexInterface;
    release(key: string, releaser: MutexInterface.Releaser): void;
}

export { Locks };
