import { type ElementType, type FC, type HTMLAttributes, type MouseEvent } from 'react'; type CommonProps = { /** 全ページ数 */ total: number; /** 現在のページ */ current: number; /** 現在のページの前後に表示するページ番号のボタンの数 */ padding?: number; /** `true` のとき、ページ番号のボタンを表示しない */ withoutNumbers?: boolean; }; type ButtonProps = CommonProps & { /** ボタンを押下したときに発火するコールバック関数 */ onClick: (pageNumber: number, e: MouseEvent) => void; /** href属性生成用関数。設定した場合、番号やarrowがbuttonからa要素に置き換わります */ hrefTemplate?: undefined; /** next/linkなどのカスタムコンポーネントを指定します。指定がない場合はデフォルトで `a` タグが使用されます。 */ linkAs?: undefined; }; type AnchorProps = CommonProps & { /** リンクを押下したときに発火するコールバック関数 */ onClick?: (href: string, e: MouseEvent) => void; /** href属性生成用関数。設定した場合、番号やarrowがbuttonからa要素に置き換わります */ hrefTemplate: (pageNumber: number) => string; /** next/linkなどのカスタムコンポーネントを指定します。指定がない場合はデフォルトで `a` タグが使用されます。 */ linkAs?: ElementType; }; type AbstractProps = ButtonProps | AnchorProps; type Props = AbstractProps & Omit, keyof AbstractProps>; export declare const Pagination: FC; export {};