import type { Nymph } from '@nymphjs/nymph';
import { Entity } from '@nymphjs/nymph';
import type { AccessControlData } from '@nymphjs/tilmeld';
import { Resource, type ResourceData } from './Resource.js';
export type LockData = {
    token: string;
    date: number;
    timeout: number;
    scope: 'exclusive' | 'shared';
    depth: '0' | 'infinity';
    provisional: boolean;
    owner: any;
    username: string;
    resource: Resource & ResourceData;
} & AccessControlData;
export declare class Lock extends Entity<LockData> {
    static ETYPE: string;
    static class: string;
    static clientEnabledStaticMethods: never[];
    protected $clientEnabledMethods: never[];
    protected $allowlistData: never[];
    protected $allowlistTags: never[];
    protected $privateData: never[];
    private $skipAcWhenSaving;
    private $skipAcWhenDeleting;
    constructor();
    $setNymph(nymph: Nymph): void;
    $save(): Promise<boolean>;
    $saveSkipAC(): Promise<boolean>;
    $tilmeldSaveSkipAC(): boolean;
    $deleteSkipAC(): Promise<boolean>;
    $tilmeldDeleteSkipAC(): boolean;
}
