import type { FilterSchema } from '../types'; import type { PlaceholderStyle } from '../dialects/type'; /** * Convert params object to ordered array based on param keys * Supports keys like: $1, $2, p1, p2, @p1, @p2 */ export declare function paramsToArray(params: Record): unknown[]; export interface PaginationOptions { page?: number; pageSize?: number; offset?: number; limit?: number; /** Placeholder style for SQL parameters (default: 'dollar') */ placeholderStyle?: PlaceholderStyle; } export interface PaginationResult { sql: string; params: Record; /** Params as ordered array for Knex/MySQL style queries */ paramsArray: unknown[]; meta: { page: number; pageSize: number; offset: number; }; /** Next param index to use (for chaining with other SQL builders) */ nextParamIndex: number; } /** * Build pagination SQL clause (LIMIT/OFFSET) * @param options - Pagination options (page/pageSize or offset/limit) * @param maxPageSize - Maximum allowed page size (default: 100) * @param startIndex - Starting parameter index for $N placeholders (default: 1) */ export declare function buildPagination(options: PaginationOptions, maxPageSize?: number, startIndex?: number): PaginationResult; export interface SortOptions { field: string; direction?: 'asc' | 'desc'; } export interface SortResult { sql: string; } /** * Build ORDER BY clause from sort options */ export declare function buildSort(sorts: SortOptions[], schema: FilterSchema): SortResult; //# sourceMappingURL=pagination.d.ts.map