import { AcquireOptions, LockLostCallback, LockOptions } from './types'; export declare abstract class Lock { protected abstract _kind: string; protected abstract _key: string; protected _identifier: string; protected _acquireOptions: AcquireOptions; protected _refreshTimeInterval: number; protected _refreshInterval?: ReturnType; protected _refreshing: boolean; protected _acquired: boolean; protected _acquiredExternally: boolean; protected _onLockLost: LockLostCallback; protected abstract _refresh(): Promise; protected abstract _acquire(): Promise; protected abstract _release(): Promise; constructor({ lockTimeout, acquireTimeout, acquireAttemptsLimit, retryInterval, refreshInterval, onLockLost, externallyAcquiredIdentifier, identifierSuffix, identifier, acquiredExternally }?: LockOptions); get identifier(): string; get isAcquired(): boolean; private getIdentifier; private _startRefresh; stopRefresh(): void; private _processRefresh; acquire(): Promise; tryAcquire(): Promise; release(): Promise; }