import type { Request } from 'express'; import type { Method } from '../index.js'; import type { AuthResponse } from './Authenticator.js'; import type { Resource } from './Resource.js'; import type { User } from './User.js'; export interface Adapter { 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; getResource(url: URL, baseUrl: URL): Promise; newResource(url: URL, baseUrl: URL): Promise; newCollection(url: URL, baseUrl: URL): Promise; getMethod(method: string): typeof Method; }