interface ModelLike { toJSON(): Record; } interface CollectionLike { all(): T[]; } export declare abstract class ApiResource { protected model: ModelLike; constructor(model: ModelLike); abstract toArray(): Record; toJSON(): Record; static collection(models: CollectionLike | T[], ResourceClass: new (m: ModelLike) => ApiResource): Record[]; static from(model: T, ResourceClass: new (m: ModelLike) => ApiResource): Record; protected when(condition: boolean, value: unknown): unknown; protected mergeWhen(condition: boolean, data: Record): Record; } export declare class ResourceResponse { private data; private meta; constructor(data: Record | Record[]); setMeta(key: string, value: unknown): this; toJSON(): Record; } export {}; //# sourceMappingURL=resource.d.ts.map