/**
 * Paginator helpers
 * Creates consistent pagination metadata for list responses.
 */
export type PaginationQueryValue = string | number | boolean | null | undefined;
export type PaginationQuery = Record<string, PaginationQueryValue>;
export type PaginationLinks = {
    first?: string;
    last?: string;
    prev?: string;
    next?: string;
};
export type Paginator<T> = {
    items: T[];
    total: number;
    perPage: number;
    currentPage: number;
    lastPage: number;
    from: number;
    to: number;
    links: PaginationLinks;
};
export type CreatePaginatorInput<T> = {
    items: T[];
    total: number;
    perPage: number;
    currentPage: number;
    baseUrl?: string;
    query?: PaginationQuery;
};
export declare const Paginator: Readonly<{
    create<T>(input: CreatePaginatorInput<T>): Paginator<T>;
}>;
export declare const createPaginator: <T>(input: CreatePaginatorInput<T>) => Paginator<T>;
export declare const getNextPageUrl: (paginator: Paginator<unknown>, baseUrl: string, query?: PaginationQuery) => string | undefined;
export declare const getPrevPageUrl: (paginator: Paginator<unknown>, baseUrl: string, query?: PaginationQuery) => string | undefined;
//# sourceMappingURL=Paginator.d.ts.map