export type PageItem = {
    index: number;
    number: number;
    active: boolean;
};
export interface UsePaginationOptions {
    pageRange?: number;
    initialPage?: number;
    itemsPerPage?: number;
}
export interface UsePaginationBaseResult {
    pages: PageItem[];
    goToPage: (page: number) => void;
    pageCount: number;
    currentPage: number;
    goToLastPage: () => void;
    goToFirstPage: () => void;
    goToNextPage: () => void;
    goToPreviousPage: () => void;
    isNextPageAvailable: boolean;
    isPreviousPageAvailable: boolean;
    hiddenNextPages: boolean;
}
export interface UsePaginationResult<T> extends UsePaginationBaseResult {
    pageItems: T[];
}
/**
 * Custom hook for pagination.
 *
 * @template T - The type of items in the pagination.
 * @param {T[]} items - The array of items to paginate.
 * @param {UsePaginationOptions} [options] - The pagination options.
 * @returns {{
 *   pages: PageItem[]; - The array of page items.
 *   goToPage: (page: number) => void; - The function to go to a specific page.
 *   pageItems: T[]; - The array of items for the current page.
 *   pageCount: number; - The total number of pages.
 *   currentPage: number; - The current page index.
 *   goToLastPage: () => void; - The function to go to the last page.
 *   goToFirstPage: () => void; - The function to go to the first page.
 *   goToNextPage: () => void; - The function to go to the next page.
 *   goToPreviousPage: () => void; - The function to go to the previous page.
 *   isNextPageAvailable: boolean; - The flag to indicate if the next page is available.
 *   isPreviousPageAvailable: boolean; - The flag to indicate if the previous page is available.
 * }} - The pagination object with various functions and properties.
 */
export declare function usePagination<T>(items: T[], options?: UsePaginationOptions): UsePaginationResult<T>;
//# sourceMappingURL=usePagination.d.ts.map