/**
 * Copyright IBM Corp. 2020, 2025
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */
import React from 'react';
import type { TranslateWithId } from '../../types/common';
type TooltipAlignment = 'start' | 'center' | 'end';
type TooltipPosition = 'top' | 'right' | 'bottom' | 'left';
declare const translationIds: {
    readonly 'carbon.pagination-nav.next': "carbon.pagination-nav.next";
    readonly 'carbon.pagination-nav.previous': "carbon.pagination-nav.previous";
    readonly 'carbon.pagination-nav.item': "carbon.pagination-nav.item";
    readonly 'carbon.pagination-nav.active': "carbon.pagination-nav.active";
    readonly 'carbon.pagination-nav.of': "carbon.pagination-nav.of";
};
type TranslationKey = keyof typeof translationIds;
export interface DirectionButtonProps {
    /**
     * The direction this button represents ("forward" or "backward").
     */
    direction?: 'forward' | 'backward';
    /**
     * Whether or not the button should be disabled.
     */
    disabled?: boolean;
    /**
     * The label shown in the button's tooltip.
     */
    label?: string;
    /**
     * The callback function called when the button is clicked.
     */
    onClick?: React.MouseEventHandler;
    /**
     * Specify the alignment of the tooltip for the icon-only next/prev buttons.
     */
    tooltipAlignment?: TooltipAlignment;
    /**
     * Specify the position of the tooltip for the icon-only next/prev buttons.
     */
    tooltipPosition?: TooltipPosition;
}
export interface PaginationItemProps extends TranslateWithId<'carbon.pagination-nav.item' | 'carbon.pagination-nav.active'> {
    /**
     * Whether or not this is the currently active page.
     */
    isActive?: boolean;
    /**
     * The callback function called when the item is clicked.
     */
    onClick?: React.MouseEventHandler;
    /**
     * The page number this item represents.
     */
    page?: number;
}
export interface PaginationOverflowProps extends TranslateWithId<'carbon.pagination-nav.item' | 'carbon.pagination-nav.active'> {
    /**
     * How many items to display in this overflow.
     */
    count?: number;
    /**
     * From which index on this overflow should start displaying pages.
     */
    fromIndex?: number;
    /**
     * The callback function called when the user selects a page from the overflow.
     */
    onSelect?: (id: number) => void;
    /**
     * If true, the '...' pagination overflow will not render page links between the first and last rendered buttons.
     * Set this to true if you are having performance problems with large data sets.
     */
    disableOverflow?: boolean;
}
export interface PaginationNavProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange'>, TranslateWithId<TranslationKey> {
    /**
     * Additional CSS class names.
     */
    className?: string;
    /**
     * If true, the '...' pagination overflow will not render page links between the first and last rendered buttons.
     * Set this to true if you are having performance problems with large data sets.
     */
    disableOverflow?: boolean;
    /**
     * The number of items to be shown (minimum of 4 unless props.items < 4).
     */
    itemsShown?: number;
    /**
     * Whether user should be able to loop through the items when reaching first / last.
     */
    loop?: boolean;
    /**
     * The callback function called when the current page changes.
     */
    onChange?: (data: number) => void;
    /**
     * The index of current page.
     */
    page?: number;
    /**
     * Specify the size of the PaginationNav.
     */
    size?: 'sm' | 'md' | 'lg';
    /**
     * Specify the alignment of the tooltip for the icon-only next/prev buttons.
     * Can be one of: start, center, or end.
     */
    tooltipAlignment?: TooltipAlignment;
    /**
     * Specify the position of the tooltip for the icon-only next/prev buttons.
     * Can be one of: top, right, bottom, or left.
     */
    tooltipPosition?: TooltipPosition;
    /**
     * The total number of items.
     */
    totalItems?: number;
}
declare const PaginationNav: React.ForwardRefExoticComponent<PaginationNavProps & React.RefAttributes<HTMLElement>>;
export default PaginationNav;
