import { AbstractPaginator } from './AbstractPaginator.js'; import type { PaginatedResponse, PaginationOptions } from './PaginationMeta.js'; /** * Offset paginator with total count and `lastPage` (two-query pagination). */ export declare class LengthAwarePaginator extends AbstractPaginator { private readonly totalCount; private readonly currentPageNumber; private static currentPageResolver; private static currentPathResolver; /** * Merge an explicit path with the optional global path resolver. */ static resolvePath(path?: string): string; /** Default page size when none is passed to `paginate()`. */ static defaultPerPage: number; /** * @param items - Rows for the requested page (may be empty when page is out of range). * @param total - Total rows matching the query (all pages). * @param perPage - Page size. * @param currentPage - 1-based current page index stored in meta (may be invalid). * @param options - Path, query, fragment overrides. */ constructor(items: T[], total: number, perPage: number, currentPage: number, options?: PaginationOptions); /** @inheritdoc */ static resolveCurrentPage(resolver: (pageName?: string) => number): void; /** @inheritdoc */ static resolveCurrentPath(resolver: () => string): void; /** Resolve default page from static resolver or `1`. */ static resolveDefaultPage(pageName?: string): number; total(): number; currentPage(): number; lastPage(): number; from(): number | null; to(): number | null; hasMorePages(): boolean; hasPages(): boolean; onFirstPage(): boolean; onLastPage(): boolean; url(page: number): string; previousPageUrl(): string | null; nextPageUrl(): string | null; firstPageUrl(): string; lastPageUrl(): string; toJSON(): PaginatedResponse; } //# sourceMappingURL=LengthAwarePaginator.d.ts.map