import { type Nymph } from '@nymphjs/nymph';
import { Entity } from '@nymphjs/nymph';
import type { AccessControlData } from '@nymphjs/tilmeld';
export type ResourceData = {
    name: string;
    size: number;
    contentType: string;
    collection: boolean;
    hash: string;
    properties: {
        [k: string]: string;
    };
    parent: (Resource & ResourceData) | null;
} & AccessControlData;
export declare class Resource extends Entity<ResourceData> {
    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();
    $getUniques(): Promise<string[]>;
    $setNymph(nymph: Nymph): void;
    $copy(destinationParent: Resource & ResourceData, name: string, existingResource?: Resource & ResourceData): Promise<void>;
    $move(destinationParent: Resource & ResourceData, name: string, existingResource?: Resource & ResourceData): Promise<void>;
    $save(): Promise<boolean>;
    $saveSkipAC(): Promise<boolean>;
    $tilmeldSaveSkipAC(): boolean;
    $delete(): Promise<boolean>;
    $deleteSkipAC(): Promise<boolean>;
    $tilmeldDeleteSkipAC(): boolean;
}
