import { Repository, SelectQueryBuilder, FindOperator, FindOptionsWhere, ObjectLiteral } from 'typeorm'; import { PaginateQuery } from './decorator'; import { Column, RelationColumn, SortBy } from './helper'; export declare class Paginated { data: T[]; meta: { itemsPerPage: number; totalItems: number; currentPage: number; totalPages: number; sortBy: SortBy; searchBy: Column[]; search: string; filter?: { [column: string]: string | string[]; }; }; links: { first?: string; previous?: string; current: string; next?: string; last?: string; }; } export interface PaginateConfig { relations?: RelationColumn[]; sortableColumns: Column[]; nullSort?: 'first' | 'last'; searchableColumns?: Column[]; select?: Column[]; maxLimit?: number; defaultSortBy?: SortBy; defaultLimit?: number; where?: FindOptionsWhere | FindOptionsWhere[]; filterableColumns?: { [key in Column]?: FilterOperator[]; }; withDeleted?: boolean; relativePath?: boolean; origin?: string; rawResults?: boolean; } export declare enum FilterOperator { EQ = "$eq", GT = "$gt", GTE = "$gte", IN = "$in", NULL = "$null", LT = "$lt", LTE = "$lte", BTW = "$btw", NOT = "$not", ILIKE = "$ilike" } export declare function isOperator(value: unknown): value is FilterOperator; export declare const OperatorSymbolToFunction: Map FindOperator>; export declare function getFilterTokens(raw: string): string[]; export declare function paginate(query: PaginateQuery, repo: Repository | SelectQueryBuilder, config: PaginateConfig): Promise>;