import type IDriver from '../driver/i-driver'; import type { NSApplicator } from '../base/util'; import type { CallOptions } from '../base/options'; export declare class Lock { private readonly driver; private readonly namespace; private readonly key; private leaseTTL; private lease; private callOptions; constructor(driver: IDriver, namespace: NSApplicator, key: string | Buffer); ttl(seconds: number): this; options(options: CallOptions): this; acquire(): Promise; leaseId(): Promise; release(): Promise; do(fn: () => T | Promise): Promise; }