/**
 * Atomic claim lock — exactly one worker claims a ready job.
 *
 * Uses SQLite's serialised writes (single-writer model) to guarantee
 * atomicity without explicit transactions: the UPDATE ... RETURNING
 * pattern fails silently for any second caller.
 */
import type { WorkforceDb, Claim } from './types.js';
/** Attempt atomic claim. Returns Claim on success, null if already claimed. */
export declare function claimJob(db: WorkforceDb, jobId: string, workerId: string, leaseMs?: number): Claim | null;
/** Renew lease. Returns updated claim or null if worker no longer holds it. */
export declare function renewClaim(db: WorkforceDb, jobId: string, workerId: string, leaseMs?: number): Claim | null;
/** Release claim (job moves to done/failed/blocked by caller). */
export declare function releaseClaim(db: WorkforceDb, jobId: string, workerId: string): void;
/** Reclaim expired locks — return job to 'ready', release claim. */
export declare function reclaimExpiredLocks(db: WorkforceDb): number;
