/**
 * Promise-based async mutex for serializing concurrent async operations.
 * No external dependencies — uses a simple FIFO queue of pending resolvers.
 */
export declare class AsyncMutex {
    /** Default timeout for lock-held operations: 30 seconds */
    private static readonly DEFAULT_TIMEOUT_MS;
    private _locked;
    private _queue;
    isLocked(): boolean;
    runExclusive<T>(fn: () => Promise<T>, timeoutMs?: number): Promise<T>;
    private _acquire;
    private _release;
}
