/** * Cursor-based Pagination Helper * High-performance pagination for large datasets */ export interface CursorPaginationParams { cursor?: string; limit?: number; sortBy?: string; sortOrder?: 'asc' | 'desc'; } export interface CursorPaginationResult { data: T[]; pagination: { limit: number; hasMore: boolean; nextCursor?: string; prevCursor?: string; sortBy: string; sortOrder: 'asc' | 'desc'; }; } export declare class CursorPagination { /** * Encode cursor from item data */ static encodeCursor(item: any, sortBy?: string): string; /** * Decode cursor to get item data */ static decodeCursor(cursor: string): any; /** * Generate SQL WHERE clause for cursor pagination * Example: WHERE id > lastId */ static generateWhereClause(cursor?: string, sortBy?: string, sortOrder?: 'asc' | 'desc'): { where: string; values: any[]; }; /** * Generate MongoDB query for cursor pagination */ static generateMongoQuery(cursor?: string, sortBy?: string, sortOrder?: 'asc' | 'desc'): Record; /** * Create pagination result with cursors */ static createResult(data: T[], limit: number, sortBy: string, sortOrder: 'asc' | 'desc', getCursorValue?: (item: T) => any): CursorPaginationResult; } export default CursorPagination;