/** * @category Utils */ class PaginatedResponse { items: IsArray extends true ? Array : T; declare previous: (() => Promise>) | null; declare next: (() => Promise>) | null; declare total: number | undefined; declare partial: boolean; constructor( items: IsArray extends true ? Array : T, info: Partial, 'items'>> = {}, ) { this.items = items; Object.defineProperties(this, { items: { value: items, writable: true, enumerable: true, configurable: true }, previous: { value: info.previous ?? null, writable: true, enumerable: false, configurable: true, }, next: { value: info.next ?? null, writable: true, enumerable: false, configurable: true, }, total: { value: info.total, writable: true, enumerable: false, configurable: true }, partial: { value: info.partial ?? false, writable: true, enumerable: false, configurable: true, }, }); } } export { PaginatedResponse };