import type { MailboxPath } from '../../types/common'; export type Lock = { readonly lockId: string; readonly path: MailboxPath; readonly release: () => void; }; export type LockOptions = { readonly timeout?: number; }; export declare class MailboxLock implements AsyncDisposable { private lockCounter; private currentLock; private readonly waitQueue; private disposed; get isDisposed(): boolean; get isLocked(): boolean; get currentPath(): MailboxPath | null; get currentLockId(): string | null; get queueLength(): number; acquire(path: MailboxPath, options?: LockOptions): Promise; tryAcquire(path: MailboxPath): Lock | null; release(lockId: string): boolean; forceRelease(): boolean; dispose(): void; [Symbol.asyncDispose](): Promise; private createLock; private processQueue; } export declare const createMailboxLock: () => MailboxLock; //# sourceMappingURL=mailbox-lock.d.ts.map