export interface IPagination { currentPage: number; totalData: number; totalPages: number; hasNextPage: boolean; hasPrevPage: boolean; limit: number; } export interface IResponse { type: string; data?: T; timestamp: Date; pagination?: IPagination; relations?: any; debug?: any; } export interface IPaginateResult { docs: T[]; totalDocs: number; limit: number; hasPrevPage: boolean; hasNextPage: boolean; page?: number | undefined; totalPages: number; offset: number; prevPage?: number | null | undefined; nextPage?: number | null | undefined; pagingCounter: number; meta?: any; [customLabel: string]: T[] | number | boolean | null | undefined; }