export declare function useKeyedMutex(): { runExclusive: (key: string | number, fn: () => Promise | T) => Promise; lock: (key: string | number) => Promise<() => void>; unlock: (key: string | number) => void; tryLock: (key: string | number) => (() => void) | null; runExclusiveOrThrow: (key: string | number, fn: () => Promise | T, errorMessage?: string) => Promise; isLocked: (key: string | number) => boolean; clearLock: (key: string | number) => void; };