import { $Lock } from "./$types.js"; export declare class AtomLock { key: K; readonly uid: number; constructor(key: K); is_finished: boolean; private _cbs; then(cb: Function): void; after_unlock?: () => any; unlock(): void; } export declare function isAtomLockKey(key: unknown): key is $Lock.AtomLockKey; export declare class AtomLocksRef { cur_job_map: Map>; pre_job_map: Map>; uid: number; cur_index: Map>; pre_index: Map>; constructor(cur_job_map: Map>, pre_job_map: Map>, cur_index?: Map>, pre_index?: Map>); finish(ids: Iterable | K): void; finishAll(): void; getPreJobsDone(): Promise; getJobsDone(): Promise; } export declare class AtomLocksManager { private _map; constructor(); static isLockKey(id: unknown): boolean; appendLocksWithDetail(ids: Iterable): { locksRef: AtomLocksRef; pre_lock_index_list: number[]; is_over_uint8: boolean; is_over_uint16: boolean; }; appendLocks(ids: Iterable): AtomLocksRef; getLocks(ids: K[]): AtomLocksRef; }