import type { Request } from 'express'; import { ResourceCollection } from './ResourceCollection.js'; export type JsonResourceObject = Record; /** * JSON resource transformer for HTTP responses. * * By default serialized output is wrapped under a `data` key; set `wrap = null` on a subclass to disable. */ export declare abstract class JsonResource { static wrap: string | null; protected readonly resource: TResource; constructor(resource: TResource); /** * Transform the underlying resource into a plain object. */ abstract toArray(req: Request): JsonResourceObject; /** * Resolve the resource using the current request context (or an explicit `req`). */ resolve(req?: Request): JsonResourceObject; /** * Resolve with wrapping (`{ data: ... }` by default). */ toResponseObject(req?: Request): unknown; /** * Create a collection wrapper for an array of items. */ static collection(this: new (resource: TItem) => JsonResource, items: readonly TItem[]): ResourceCollection; } //# sourceMappingURL=JsonResource.d.ts.map