import { type Lock as LockInterface } from 'nephele';
import { Lock as NymphLock, LockData as NymphLockData } from './entities/Lock.js';
import Resource from './Resource.js';
export default class Lock implements LockInterface {
    resource: Resource;
    nymphLock: NymphLock & NymphLockData;
    get token(): string;
    set token(value: string);
    get date(): Date;
    set date(value: Date);
    get timeout(): number;
    set timeout(value: number);
    get scope(): "exclusive" | "shared";
    set scope(value: 'exclusive' | 'shared');
    get depth(): "0" | "infinity";
    set depth(value: '0' | 'infinity');
    get provisional(): boolean;
    set provisional(value: boolean);
    get owner(): any;
    set owner(value: any);
    get username(): string;
    set username(value: string);
    constructor({ resource, nymphLock, }: {
        resource: Resource;
        nymphLock: NymphLock & NymphLockData;
    });
    save(): Promise<void>;
    delete(): Promise<void>;
}
