import { ObjectType, SelectQueryBuilder } from 'typeorm'; export declare enum Order { ASC = "ASC", DESC = "DESC" } export declare type EscapeFn = (name: string) => string; export interface CursorParam { [key: string]: any; } export interface Cursor { beforeCursor: string | null; afterCursor: string | null; } export interface PagingResult { data: Entity[]; cursor: Cursor; } export default class Paginator { private entity; private paginationKeys; private afterCursor; private beforeCursor; private nextAfterCursor; private nextBeforeCursor; private alias; private limit; private order; constructor(entity: ObjectType, paginationKeys: Extract[]); setAlias(alias: string): void; setAfterCursor(cursor: string): void; setBeforeCursor(cursor: string): void; setLimit(limit: number): void; setOrder(order: Order): void; paginate(builder: SelectQueryBuilder): Promise>; private getCursor; private appendPagingQuery; private buildCursorQuery; private getOperator; private buildOrder; private hasAfterCursor; private hasBeforeCursor; private encode; private decode; private getEntityPropertyType; private flipOrder; private toPagingResult; }