import { Readable } from 'node:stream'; import type { Request } from 'express'; import * as xml2js from 'xml2js'; import type { AuthResponse, Lock, PluginEvent, Resource, User } from '../Interfaces/index.js'; import type { Options } from '../Options.js'; export declare class Method { opts: Options; DEV: boolean; xmlParser: xml2js.Parser; xmlBuilder: xml2js.Builder; constructor(opts: Options); runPlugins(request: Request, response: AuthResponse, event: PluginEvent, data?: any): Promise; run(request: Request, _response: AuthResponse): Promise; checkAuthorization(request: Request, response: AuthResponse, method?: string, url?: URL): Promise; getAdapter(request: Request, response: AuthResponse, unencodedPath: string): Promise; getAdapterBaseUrl(response: AuthResponse, unencodedPath: string): Promise; pathsHaveSameAdapter(response: AuthResponse, unencodedPathA: string, unencodedPathB: string): Promise; isAdapterRoot(request: Request, response: AuthResponse, url: URL): Promise; getParentResource(request: Request, response: AuthResponse, resource: Resource): Promise; removeAndDeleteTimedOutLocks(locks: Lock[]): Promise; getCurrentResourceLocks(resource: Resource): Promise; getCurrentResourceLocksByUser(resource: Resource, user: User): Promise; private getLocksGeneral; getLocks(request: Request, response: AuthResponse, resource: Resource): Promise<{ all: Lock[]; resource: Lock[]; depthZero: Lock[]; depthInfinity: Lock[]; }>; getLocksByUser(request: Request, response: AuthResponse, resource: Resource, user: User): Promise<{ all: Lock[]; resource: Lock[]; depthZero: Lock[]; depthInfinity: Lock[]; }>; getProvisionalLocks(request: Request, response: AuthResponse, resource: Resource): Promise<{ all: Lock[]; resource: Lock[]; depthZero: Lock[]; depthInfinity: Lock[]; }>; getLockPermission(request: Request, response: AuthResponse, resource: Resource, user: User): Promise<0 | 1 | 2 | 3>; getRequestLockTockens(request: Request): string[]; private checkIfHeader; checkConditionalHeaders(request: Request, response: AuthResponse): Promise; getRequestUrl(request: Request): URL; getRequestedEncoding(request: Request, response: AuthResponse): "gzip" | "x-gzip" | "deflate" | "br" | "identity"; getCacheControl(request: Request): { [k: string]: number | true; }; getRequestData(request: Request, response: AuthResponse): { url: URL; encoding: "gzip" | "deflate" | "br" | "identity" | "x-gzip"; cacheControl: { [k: string]: number | true; }; }; getRequestDestination(request: Request): URL | undefined; getBodyStream(request: Request, response: AuthResponse): Promise; sendBodyContent(response: AuthResponse, content: string, encoding: 'gzip' | 'x-gzip' | 'deflate' | 'br' | 'identity'): Promise; getBodyXML(request: Request, response: AuthResponse): Promise; parseXml(xml: string): Promise<{ output: any; prefixes: { [k: string]: string; }; }>; renderXml(xml: any, prefixes?: { [k: string]: string; }): Promise; formatLocks(locks: Lock[]): Promise<{}>; }