/**
 * Pagination utilities for mock responses
 */
import type { PaginatedResponse, PaginatedMockOptions } from './types';
/**
 * Create a paginated response from items
 */
export declare function createPaginatedResponse<T = any>(options: PaginatedMockOptions<T>): {
    data: PaginatedResponse<T>;
    items: T[];
};
/**
 * Create pagination metadata only
 */
export declare function createPaginationMeta(page: number, pageSize: number, total: number): PaginatedResponse<any>['meta'];
/**
 * Parse pagination parameters from URL search params
 */
export declare function parsePaginationParams(searchParams: URLSearchParams, defaults?: {
    page: number;
    pageSize: number;
    maxPageSize: number;
}): {
    page: number;
    pageSize: number;
};
/**
 * Create cursor-based pagination response
 */
export declare function createCursorPaginatedResponse<T = any>(items: T[], cursor: string | null, limit: number, getCursor: (item: T) => string): {
    data: T[];
    meta: {
        hasNextPage: boolean;
        hasPreviousPage: boolean;
        nextCursor: string | null;
        previousCursor: string | null;
        limit: number;
    };
};
/**
 * Create offset-based pagination response
 */
export declare function createOffsetPaginatedResponse<T = any>(items: T[], offset: number, limit: number): {
    data: T[];
    meta: {
        offset: number;
        limit: number;
        total: number;
        hasMore: boolean;
    };
};
/**
 * Create infinite scroll pagination response
 */
export declare function createInfiniteScrollResponse<T = any>(items: T[], page: number, pageSize: number): {
    data: T[];
    meta: {
        page: number;
        pageSize: number;
        hasMore: boolean;
        nextPage: number | null;
    };
};
/**
 * Validate pagination parameters
 */
export declare function validatePaginationParams(page: number, pageSize: number, maxPageSize?: number): {
    valid: boolean;
    errors: string[];
};
/**
 * Calculate pagination ranges for UI
 */
export declare function calculatePaginationRanges(currentPage: number, totalPages: number, maxVisible?: number): {
    pages: number[];
    showFirst: boolean;
    showLast: boolean;
    showPrevious: boolean;
    showNext: boolean;
};
/**
 * Create pagination links for API responses
 */
export declare function createPaginationLinks(baseUrl: string, page: number, pageSize: number, totalPages: number): {
    first?: string;
    previous?: string;
    next?: string;
    last?: string;
};
/**
 * Create search and filter pagination
 */
export declare function createSearchPaginatedResponse<T = any>(items: T[], searchQuery: string, searchFields: (keyof T)[], filters: Record<string, any>, page: number, pageSize: number): {
    data: PaginatedResponse<T>;
    filteredCount: number;
    totalCount: number;
};
//# sourceMappingURL=pagination.d.ts.map