/**
 * @module Lock
 */
import { type IReadableContext } from "../../../../execution-context/contracts/_module.js";
import { type IDatabaseLockAdapter, type ILockAdapter, type ILockAdapterState } from "../../../../lock/contracts/_module.js";
import { type TimeSpan } from "../../../../time-span/implementations/_module.js";
/**
 * @internal
 */
export declare class DatabaseLockAdapter implements ILockAdapter {
    private readonly adapter;
    constructor(adapter: IDatabaseLockAdapter);
    acquire(context: IReadableContext, key: string, lockId: string, ttl: TimeSpan | null): Promise<boolean>;
    release(context: IReadableContext, key: string, lockId: string): Promise<boolean>;
    forceRelease(context: IReadableContext, key: string): Promise<boolean>;
    refresh(context: IReadableContext, key: string, lockId: string, ttl: TimeSpan): Promise<boolean>;
    getState(context: IReadableContext, key: string): Promise<ILockAdapterState | null>;
}
