import * as react_jsx_runtime from 'react/jsx-runtime';
import * as class_variance_authority_types from 'class-variance-authority/types';
import * as React from 'react';
import { VariantProps } from 'class-variance-authority';

declare const pageItemVariants: (props?: ({
    variant?: "default" | "dot" | null | undefined;
    state?: "default" | "active" | "hover" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
interface PageItemProps extends Omit<React.ComponentProps<"button">, "children">, VariantProps<typeof pageItemVariants> {
    label?: string;
}
declare function PageItem({ className, variant, state, label, ...props }: PageItemProps): react_jsx_runtime.JSX.Element;
declare const navButtonVariants: (props?: ({
    disabled?: boolean | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
interface NavButtonProps extends React.ComponentProps<"button"> {
    direction: "prev" | "next";
}
declare function NavButton({ className, direction, disabled, ...props }: NavButtonProps): react_jsx_runtime.JSX.Element;
type PaginatorVariant = "simple" | "inline" | "numbered" | "dots";
interface PaginatorProps extends React.ComponentProps<"nav"> {
    variant?: PaginatorVariant;
    currentPage: number;
    totalPages: number;
    /** Used by `simple` and `inline` – total item count */
    totalItems?: number;
    /** Used by `simple` and `inline` – items per page */
    pageSize?: number;
    onPageChange?: (page: number) => void;
    /** Max visible page numbers for numbered variant (excluding ellipsis and last page) */
    maxVisiblePages?: number;
}
declare function Paginator({ className, variant, currentPage, totalPages, totalItems, pageSize, onPageChange, maxVisiblePages, ...props }: PaginatorProps): react_jsx_runtime.JSX.Element;

export { NavButton, type NavButtonProps, PageItem, type PageItemProps, Paginator, type PaginatorProps, type PaginatorVariant, navButtonVariants, pageItemVariants };
