import type { Request } from 'express'; import { Nymph } from '@nymphjs/nymph'; import type { Adapter as AdapterInterface, AuthResponse, Method, User } from 'nephele'; import { Lock as NymphLock } from './entities/Lock.js'; import { Resource as NymphResource, ResourceData as NymphResourceData } from './entities/Resource.js'; import Resource from './Resource.js'; export type AdapterConfig = { root: string; nymph?: Nymph; getRootResource?: () => Promise; }; export default class Adapter implements AdapterInterface { root: string; nymph: Nymph; getRootResource: () => Promise; NymphLock: typeof NymphLock; NymphResource: typeof NymphResource; _rootResource: (NymphResource & NymphResourceData) | null; get tempRoot(): string; get blobRoot(): string; constructor({ nymph, root, getRootResource }: AdapterConfig); urlToPathParts(url: URL, baseUrl: URL): string[] | null; pathPartsToUrl(pathParts: string[], baseUrl: URL): URL; getComplianceClasses(_url: URL, _request: Request, _response: AuthResponse): Promise; getAllowedMethods(_url: URL, _request: Request, _response: AuthResponse): Promise; getOptionsResponseCacheControl(_url: URL, _request: Request, _response: AuthResponse): Promise; isAuthorized(url: URL, method: string, baseUrl: URL, user: User): Promise; getNymphResource(pathParts: string[], rootResource: NymphResource & NymphResourceData): Promise<(NymphResource & { name: string; size: number; contentType: string; collection: boolean; hash: string; properties: { [k: string]: string; }; parent: (NymphResource & NymphResourceData) | null; } & import("@nymphjs/tilmeld").AccessControlData) | null>; getNymphParent(pathParts: string[], rootResource: NymphResource & NymphResourceData): Promise; getResource(url: URL, baseUrl: URL): Promise; newResource(url: URL, baseUrl: URL): Promise; newCollection(url: URL, baseUrl: URL): Promise; getMethod(method: string): typeof Method; }