import { ApiResponse, PaginatedResponse, PaginationMeta } from './types'; /** * Pagination extraction configuration */ export interface PaginationConfig { /** Response field containing items array */ itemsField?: string; /** Response field containing total count */ totalField?: string; /** Response field containing page number */ pageField?: string; /** Response field containing page size */ pageSizeField?: string; /** Response field containing next cursor */ nextCursorField?: string; /** Response field containing previous cursor */ prevCursorField?: string; /** Header containing total count */ totalHeader?: string; /** Header containing link relations */ linkHeader?: string; } /** * Extract pagination metadata from response * * @param response - API response * @param config - Extraction configuration * @returns Extracted pagination metadata * * @example * ```typescript * const pagination = extractPagination(response); * console.log(pagination.total); // Total items * console.log(pagination.hasMore); // More pages available * ``` */ export declare function extractPagination(response: ApiResponse, config?: PaginationConfig): PaginatedResponse; /** * Create a paginated response wrapper * * @example * ```typescript * const paginated = createPaginatedResponse(users, { * total: 100, * page: 1, * pageSize: 20, * }); * ``` */ export declare function createPaginatedResponse(items: T[], meta: Partial): PaginatedResponse; /** * Merge paginated responses (for infinite scroll) * * @example * ```typescript * const combined = mergePaginatedResponses(page1, page2, page3); * ``` */ export declare function mergePaginatedResponses(...responses: PaginatedResponse[]): PaginatedResponse;