import { AcquireParams, AcquireToken, DistributedMutexConstructorProps, IDistributedMutex, IReleaser } from "../types";
export declare class InMemoryDistributedMutex implements IDistributedMutex {
    private readonly _inMemoryDistributedSemaphore;
    constructor(props: DistributedMutexConstructorProps);
    get name(): string;
    get isDestroyed(): boolean;
    runExclusive<T>(fn: () => Promise<T> | T): Promise<T>;
    runExclusive<T>(params: AcquireParams, fn: () => Promise<T> | T): Promise<T>;
    readonly implementation: string;
    destroy(): Promise<void>;
    acquire(params?: {
        timeoutMs?: number;
    }, acquireToken?: AcquireToken): Promise<IReleaser>;
    cancel(errMessage?: string): Promise<void>;
    isLocked(): Promise<boolean>;
}
//# sourceMappingURL=in-memory-distributed-mutex.d.ts.map