import type { PondoknusaRequest } from './request.js'; export type ResourcePayload = Record; export interface PaginatorLike { items: unknown[]; toArray(): ResourcePayload & { data: unknown[]; }; } export declare function isPaginatorLike(value: unknown): value is PaginatorLike; export type ConditionalValue = T | null | undefined | false; export declare abstract class JsonResource { protected readonly resource: T; static wrap: string | null; constructor(resource: T); protected when(condition: unknown, value: ResourcePayload | (() => ResourcePayload)): ResourcePayload | undefined; protected whenLoaded(relation: string, value: ResourcePayload | (() => ResourcePayload)): ResourcePayload | undefined; protected mergeWhen(condition: unknown, value: ResourcePayload): ResourcePayload; static make(this: new (resource: never) => TResource, resource: unknown): TResource; static collection(this: new (resource: never) => TResource, resources: unknown): ResourceCollection; abstract toArray(request?: PondoknusaRequest): ResourcePayload | Promise; resolve(request?: PondoknusaRequest): Promise; } export declare class ResourceCollection { private readonly resourceClass; private readonly collection; static wrap: string | null; constructor(resourceClass: new (resource: unknown) => TResource, collection: unknown); resolve(request?: PondoknusaRequest): Promise; private transformItems; } export declare function isJsonResource(value: unknown): value is JsonResource; export declare function isResourceCollection(value: unknown): value is ResourceCollection; //# sourceMappingURL=api-resource.d.ts.map