import { DetailedHTMLProps, HTMLAttributes, ReactNode } from 'react';
import { PaginationItemProps } from './PaginationItem';
import { PaginationPageSizeProps } from './PaginationPageSize';
export interface PaginationProps extends Omit, HTMLElement>, 'onChange'> {
/**
* Number of always visible pages at the beginning and end.
* @default 1
*/
boundaryCount?: number;
/**
* The text displayed in the jumper `button` content.
*/
buttonText?: string;
/**
* The current page number.
* @default 1
*/
current?: number;
/**
* If `true`, the fields are disabled.
*/
disabled?: true;
/**
* The hint text displayed in front of jumper `input`.
*/
hintText?: string;
/**
* The placeholder displayed in the jumper input before the user enters a value.
*/
inputPlaceholder?: string;
/**
* Render the item.
* @param {PaginationItemProps} item The props to spread on a PaginationItem.
* @returns {ReactNode}
* @default (item) =>
*/
itemRender?: (item: PaginationItemProps) => ReactNode;
/**
* Callback fired when the page is changed.
* @param {number} page The active page number.
*/
onChange?: (page: number) => void;
/**
* Callback fired when the page size is changed.
* @param {number} pageSize The new page size.
*/
onChangePageSize?: PaginationPageSizeProps['onChange'];
/**
* Number of items per page.
* @default 10
*/
pageSize?: PaginationPageSizeProps['value'];
/**
* Label displayed before page size selector.
*/
pageSizeLabel?: PaginationPageSizeProps['label'];
/**
* Page size options to render.
*/
pageSizeOptions?: PaginationPageSizeProps['options'];
/**
* Render custom result summary.
* @param {number} from Start index of current page.
* @param {number} to End index of current page.
* @param {number} total Total number of items.
* @returns {string}
* @example (from, to, total) => `目前顯示 ${from}-${to} 筆,共 ${total} 筆資料`
*/
renderResultSummary?: (from: number, to: number, total: number) => string;
/**
* Render custom page size option name.
*/
renderPageSizeOptionName?: PaginationPageSizeProps['renderOptionName'];
/**
* If `true`, show jumper.
* @default false
*/
showJumper?: boolean;
/**
* If `true`, show page size options.
* @default false
*/
showPageSizeOptions?: boolean;
/**
* Number of always visible pages before and after the current page.
* @default 1
*/
siblingCount?: number;
/**
* Total number of items.
* @default 0
*/
total?: number;
}
/**
* 分頁導覽元件,提供頁碼切換、頁碼跳轉輸入框以及每頁筆數選擇器。
*
* 傳入 `total` 與 `pageSize` 自動計算總頁數並渲染頁碼列表;`boundaryCount` 控制首尾
* 始終顯示的頁數,`siblingCount` 控制當前頁兩側的頁數。啟用 `showJumper` 可直接輸入頁碼跳轉,
* 啟用 `showPageSizeOptions` 可讓使用者選擇每頁顯示筆數。
*
* @example
* ```tsx
* import Pagination from '@mezzanine-ui/react/Pagination';
*
* // 基本用法
*
*
* // 顯示結果摘要與每頁筆數選擇器
* `顯示 ${from}–${to} 筆,共 ${total} 筆`}
* />
*
* // 顯示頁碼跳轉輸入框
*
* ```
*
* @see {@link Table} 搭配 Table 元件的 `pagination` prop 使用
* @see {@link usePagination} 獨立使用分頁邏輯的 hook
*/
declare const Pagination: import("react").ForwardRefExoticComponent & import("react").RefAttributes>;
export default Pagination;