export interface PaginatedResult { data: T[]; meta: { total: number; lastPage: number; currentPage: number; perPage: number; prev: number | null; next: number | null; }; } export type PaginateOptions = { page?: number | string; perPage?: number | string; orderByTieBreakerPropertyName?: string; }; export type PaginateFunction = (model: any, args?: K, options?: PaginateOptions) => Promise>; export type SearchPaginateOptions = { page?: number | string; perPage?: number | string; skip?: number | string; searchColumns?: string[]; searchValue?: string; }; export type SearchPaginateFunction = (model: any, modelName: string, options?: SearchPaginateOptions) => Promise>; export interface Pagination { page: number; perPage: number; sort?: string; order?: 'asc' | 'desc'; }