import * as React from 'react';
import { type PaginationPageType } from '../../hooks/usePagination';
import type { HasComponent, HTMLAttributesWithRootRef } from '../../types';
import { type CustomPaginationNavigationButton, type PaginationNavigationButtonProps } from './PaginationNavigationButton/PaginationNavigationButton';
import { type CustomPaginationPageButtonProps } from './PaginationPage/PaginationPageButton';
export interface PaginationProps extends Omit<HTMLAttributesWithRootRef<HTMLElement>, 'onChange'> {
    /**
     * Текущая страница.
     */
    currentPage?: number;
    /**
     * Кол-во всегда видимых страниц по краям текущей страницы.
     */
    siblingCount?: number;
    /**
     * Кол-во всегда видимых страниц в начале и в конце.
     */
    boundaryCount?: number;
    /**
     * Общее кол-во страниц.
     */
    totalPages?: number;
    /**
     * Блокировка взаимодействия с компонентом.
     */
    disabled?: boolean;
    /**
     * Декоративный текст для кнопки навигации назад.
     *
     * > Note: Экранные дикторы будут использовать `prevButtonLabel`.
     */
    prevButtonCaption?: string;
    /**
     * Декоративный текст для кнопки навигации вперёд.
     *
     * > Note: Экранные дикторы будут использовать `nextButtonLabel`.
     */
    nextButtonCaption?: string;
    /**
     * Задаёт стиль отображения кнопок навигации.
     *
     * - `icon` – показывать только иконку;
     * - `caption` – показывать только подпись;
     * - `both` – показывать и иконку, и подпись.
     */
    navigationButtonsStyle?: PaginationNavigationButtonProps['style'];
    /**
     * [a11y] Метка для обозначения блока навигации.
     */
    navigationLabel?: string;
    /**
     * Тип элемента отрисовки блока навигации.
     */
    navigationLabelComponent?: HasComponent['Component'];
    /**
     * [a11y] Метка для кнопки навигации назад.
     */
    prevButtonLabel?: string;
    /**
     * [a11y] Метка для кнопки навигации вперёд.
     */
    nextButtonLabel?: string;
    /**
     * [a11y] Функция для переопределения и/или локализации метки кнопки страницы.
     *
     * > Note: По возможности лучше не использовать,
     * так как компонент и так проставляет номер страницы в разметку,
     * что достаточно для пользователей скринридеров.
     * Дополнительная информация скорее будет избыточна,
     * так как будет зачитываться для каждой кнопки при перемещении по списку.
     */
    getPageLabel?: (isCurrent: boolean) => string;
    /**
     * Обработчик изменения выбранной страницы.
     */
    onChange?: (page: number, event: React.MouseEvent<HTMLElement>) => void;
    /**
     * Функция для кастомного рендера кнопок страниц.
     *
     * > Note: `CustomPaginationPageButtonProps` наследует API [Tappable](https://vkui.io/components/tappable).
     */
    renderPageButton?: (props: CustomPaginationPageButtonProps) => React.ReactNode;
    /**
     Функция для кастомного рендера кнопок навигации `prev` и `next`.
     *
     * > Note: `CustomPaginationNavigationButton` наследует API [Button](https://vkui.io/components/button).
     */
    renderNavigationButton?: (props: CustomPaginationNavigationButton) => React.ReactNode;
    /**
     * Передает атрибут `data-testid` для кнопок страниц.
     */
    pageButtonTestId?: (day: PaginationPageType, active: boolean) => string;
    /**
     * Передает атрибут `data-testid` для кнопки `prev`.
     */
    prevButtonTestId?: string;
    /**
     * Передает атрибут `data-testid` для кнопки `next`.
     */
    nextButtonTestId?: string;
}
/**
 * @see https://vkui.io/components/pagination
 */
export declare const Pagination: ({ currentPage, siblingCount, boundaryCount, totalPages, disabled, prevButtonCaption, nextButtonCaption, navigationButtonsStyle, getPageLabel, navigationLabel, navigationLabelComponent, prevButtonLabel, nextButtonLabel, onChange, renderPageButton, pageButtonTestId, prevButtonTestId, nextButtonTestId, renderNavigationButton, ...resetProps }: PaginationProps) => React.ReactNode;
//# sourceMappingURL=Pagination.d.ts.map