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 {};